int main(){ // Variables int return_code; uhd_string_vector_handle string_vector; size_t size; char str_buffer[BUFFER_SIZE]; return_code = EXIT_SUCCESS; // Create string_vector UHD_TEST_EXECUTE_OR_GOTO(end_of_test, uhd_string_vector_make(&string_vector) ) // Add values UHD_TEST_EXECUTE_OR_GOTO(free_string_vector, uhd_string_vector_push_back(&string_vector, "foo") ) UHD_TEST_EXECUTE_OR_GOTO(free_string_vector, uhd_string_vector_push_back(&string_vector, "bar") ) // Check size UHD_TEST_EXECUTE_OR_GOTO(free_string_vector, uhd_string_vector_size(string_vector, &size) ) if(size != 2){ return_code = EXIT_FAILURE; fprintf(stderr, "%s:%d: Invalid size: %lu vs. 2", __FILE__, __LINE__, (unsigned long)size); goto free_string_vector; } // Make sure we get right value UHD_TEST_EXECUTE_OR_GOTO(free_string_vector, uhd_string_vector_at(string_vector, 1, str_buffer, BUFFER_SIZE) ) if(strcmp(str_buffer, "bar")){ return_code = EXIT_FAILURE; fprintf(stderr, "%s:%d: Mismatched daughterboard serial: \"%s\" vs. \"key3=value3,key4=value4\"\n", __FILE__, __LINE__, str_buffer); } free_string_vector: if(return_code){ uhd_string_vector_last_error(string_vector, str_buffer, BUFFER_SIZE); fprintf(stderr, "string_vector error: %s\n", str_buffer); } uhd_string_vector_free(&string_vector); end_of_test: if(!return_code){ printf("\nNo errors detected\n"); } return return_code; }
int main(){ // Variables int return_code; uhd_subdev_spec_pair_t subdev_spec_pair1, subdev_spec_pair2; uhd_subdev_spec_handle subdev_spec1, subdev_spec2; size_t size1, size2, i; bool pairs_equal; char str_buffer[BUFFER_SIZE]; printf("Testing subdevice specification...\n"); return_code = EXIT_SUCCESS; // Create subdev spec UHD_TEST_EXECUTE_OR_GOTO(end_of_test, uhd_subdev_spec_make(&subdev_spec1, "A:AB B:AB") ) // Convert to and from args string UHD_TEST_EXECUTE_OR_GOTO(free_subdev_spec1, uhd_subdev_spec_to_pp_string(subdev_spec1, str_buffer, BUFFER_SIZE) ) printf("Pretty Print:\n%s", str_buffer); UHD_TEST_EXECUTE_OR_GOTO(free_subdev_spec1, uhd_subdev_spec_to_string(subdev_spec1, str_buffer, BUFFER_SIZE) ) printf("Markup String: %s\n", str_buffer); // Make a second subdev spec from the first's markup string UHD_TEST_EXECUTE_OR_GOTO(free_subdev_spec2, uhd_subdev_spec_make(&subdev_spec2, str_buffer) ) // Make sure both subdev specs are equal UHD_TEST_EXECUTE_OR_GOTO(free_subdev_spec2, uhd_subdev_spec_size(subdev_spec1, &size1) ) UHD_TEST_EXECUTE_OR_GOTO(free_subdev_spec2, uhd_subdev_spec_size(subdev_spec2, &size2) ) if(size1 != size2){ printf("%s:%d: Sizes do not match. %lu vs. %lu\n", __FILE__, __LINE__, (unsigned long)size1, (unsigned long)size2); return_code = EXIT_FAILURE; goto free_subdev_spec2; } for(i = 0; i < size1; i++){ UHD_TEST_EXECUTE_OR_GOTO(free_subdev_spec_pair1, uhd_subdev_spec_at(subdev_spec1, i, &subdev_spec_pair1) ) UHD_TEST_EXECUTE_OR_GOTO(free_subdev_spec_pair2, uhd_subdev_spec_at(subdev_spec2, i, &subdev_spec_pair2) ) UHD_TEST_EXECUTE_OR_GOTO(free_subdev_spec_pair2, uhd_subdev_spec_pairs_equal(&subdev_spec_pair1, &subdev_spec_pair2, &pairs_equal) ) if(!pairs_equal){ printf("%s:%d: Subdev spec pairs are not equal.\n" " db_name: %s vs. %s\n" " sd_name: %s vs. %s\n", __FILE__, __LINE__, subdev_spec_pair1.db_name, subdev_spec_pair2.db_name, subdev_spec_pair1.sd_name, subdev_spec_pair2.sd_name ); return_code = EXIT_FAILURE; goto free_subdev_spec_pair2; } uhd_subdev_spec_pair_free(&subdev_spec_pair1); uhd_subdev_spec_pair_free(&subdev_spec_pair2); } // Cleanup (and error report, if needed) free_subdev_spec_pair2: uhd_subdev_spec_pair_free(&subdev_spec_pair2); free_subdev_spec_pair1: uhd_subdev_spec_pair_free(&subdev_spec_pair1); free_subdev_spec2: if(return_code){ uhd_subdev_spec_last_error(subdev_spec2, str_buffer, BUFFER_SIZE); fprintf(stderr, "subdev_spec2 error: %s\n", str_buffer); } uhd_subdev_spec_free(&subdev_spec2); free_subdev_spec1: if(return_code){ uhd_subdev_spec_last_error(subdev_spec1, str_buffer, BUFFER_SIZE); fprintf(stderr, "subdev_spec1 error: %s\n", str_buffer); } uhd_subdev_spec_free(&subdev_spec1); end_of_test: if(!return_code){ printf("\nNo errors detected.\n"); } return return_code; }
int main(){ // Variables int return_code; uhd_mboard_eeprom_handle mb_eeprom; uhd_dboard_eeprom_handle db_eeprom; int db_revision; char str_buffer[BUFFER_SIZE]; return_code = EXIT_SUCCESS; /* * Motherboard EEPROM test */ // Create EEPROM handle UHD_TEST_EXECUTE_OR_GOTO(end_of_test, uhd_mboard_eeprom_make(&mb_eeprom) ) // Set a value, retrieve it, and make sure it matches UHD_TEST_EXECUTE_OR_GOTO(free_mboard_eeprom, uhd_mboard_eeprom_set_value( mb_eeprom, "serial", "F12345" ) ) UHD_TEST_EXECUTE_OR_GOTO(free_mboard_eeprom, uhd_mboard_eeprom_get_value( mb_eeprom, "serial", str_buffer, BUFFER_SIZE ) ) if(strcmp(str_buffer, "F12345")){ return_code = EXIT_FAILURE; fprintf(stderr, "%s:%d: Mismatched EEPROM value: \"%s\" vs. \"F12345\"\n", __FILE__, __LINE__, str_buffer); goto free_mboard_eeprom; } /* * Daughterboard EEPROM test */ // Create EEPROM handle UHD_TEST_EXECUTE_OR_GOTO(free_mboard_eeprom, uhd_dboard_eeprom_make(&db_eeprom) ) // Set the ID, retrieve it, and make sure it matches UHD_TEST_EXECUTE_OR_GOTO(free_dboard_eeprom, uhd_dboard_eeprom_set_id(db_eeprom, "0x0067") ) UHD_TEST_EXECUTE_OR_GOTO(free_dboard_eeprom, uhd_dboard_eeprom_get_id( db_eeprom, str_buffer, BUFFER_SIZE ) ) if(strcmp(str_buffer, "0x0067")){ return_code = EXIT_FAILURE; fprintf(stderr, "%s:%d: Mismatched daughterboard ID: \"%s\" vs. \"0x0067\"\n", __FILE__, __LINE__, str_buffer); goto free_dboard_eeprom; } // Set the serial, retrieve it, and make sure it matches UHD_TEST_EXECUTE_OR_GOTO(free_dboard_eeprom, uhd_dboard_eeprom_set_serial(db_eeprom, "F12345") ) UHD_TEST_EXECUTE_OR_GOTO(free_dboard_eeprom, uhd_dboard_eeprom_get_serial( db_eeprom, str_buffer, BUFFER_SIZE ) ) if(strcmp(str_buffer, "F12345")){ return_code = EXIT_FAILURE; fprintf(stderr, "%s:%d: Mismatched daughterboard serial: \"%s\" vs. \"F12345\"\n", __FILE__, __LINE__, str_buffer); goto free_dboard_eeprom; } // Set the revision, retrieve it, and make sure it matches UHD_TEST_EXECUTE_OR_GOTO(free_dboard_eeprom, uhd_dboard_eeprom_set_revision(db_eeprom, 4) ) UHD_TEST_EXECUTE_OR_GOTO(free_dboard_eeprom, uhd_dboard_eeprom_get_revision(db_eeprom, &db_revision) ) if(db_revision != 4){ return_code = EXIT_FAILURE; fprintf(stderr, "%s:%d: Mismatched daughterboard revision: \"%d\" vs. 4\n", __FILE__, __LINE__, db_revision); goto free_dboard_eeprom; } free_dboard_eeprom: if(return_code){ uhd_dboard_eeprom_last_error(db_eeprom, str_buffer, BUFFER_SIZE); fprintf(stderr, "db_eeprom error: %s\n", str_buffer); } uhd_dboard_eeprom_free(&db_eeprom); free_mboard_eeprom: if(return_code){ uhd_mboard_eeprom_last_error(mb_eeprom, str_buffer, BUFFER_SIZE); fprintf(stderr, "mb_eeprom error: %s\n", str_buffer); } uhd_mboard_eeprom_free(&mb_eeprom); end_of_test: if(!return_code){ printf("\nNo errors detected\n"); } return return_code; }