int main (int argc, char *argv []) { int do_all = 0 ; int test_count = 0 ; if (argc != 2) { printf ("Usage : %s <test>\n", argv [0]) ; printf (" Where <test> is one of the following:\n") ; printf (" ver - test sf_command (SFC_GETLIB_VERSION)\n") ; printf (" norm - test floating point normalisation\n") ; printf (" format - test format string commands\n") ; printf (" peak - test peak calculation\n") ; printf (" trunc - test file truncation\n") ; printf (" inst - test set/get of SF_INSTRUMENT.\n") ; printf (" chanmap - test set/get of channel map data..\n") ; printf (" bext - test set/get of SF_BROADCAST_INFO.\n") ; printf (" bextch - test set/get of SF_BROADCAST_INFO coding_history.\n") ; printf (" rawend - test SFC_RAW_NEEDS_ENDSWAP.\n") ; printf (" all - perform all tests\n") ; exit (1) ; } ; do_all =! strcmp (argv [1], "all") ; if (do_all || strcmp (argv [1], "ver") == 0) { char buffer [128] ; print_test_name ("version_test", "(none)") ; buffer [0] = 0 ; sf_command (NULL, SFC_GET_LIB_VERSION, buffer, sizeof (buffer)) ; if (strlen (buffer) < 1) { printf ("Line %d: could not retrieve lib version.\n", __LINE__) ; exit (1) ; } ; puts ("ok") ; test_count ++ ; } ; if (do_all || strcmp (argv [1], "norm") == 0) { /* Preliminary float/double normalisation tests. More testing ** is done in the program 'floating_point_test'. */ float_norm_test ("float.wav") ; double_norm_test ("double.wav") ; test_count ++ ; } ; if (do_all || strcmp (argv [1], "peak") == 0) { calc_peak_test (SF_ENDIAN_BIG | SF_FORMAT_RAW, "be-peak.raw") ; calc_peak_test (SF_ENDIAN_LITTLE | SF_FORMAT_RAW, "le-peak.raw") ; test_count ++ ; } ; if (do_all || ! strcmp (argv [1], "format")) { format_tests () ; test_count ++ ; } ; if (do_all || strcmp (argv [1], "trunc") == 0) { truncate_test ("truncate.raw", SF_FORMAT_RAW | SF_FORMAT_PCM_32) ; truncate_test ("truncate.au" , SF_FORMAT_AU | SF_FORMAT_PCM_16) ; test_count ++ ; } ; if (do_all || strcmp (argv [1], "inst") == 0) { instrument_test ("instrument.wav", SF_FORMAT_WAV | SF_FORMAT_PCM_16) ; instrument_test ("instrument.aiff" , SF_FORMAT_AIFF | SF_FORMAT_PCM_24) ; /*-instrument_test ("instrument.xi", SF_FORMAT_XI | SF_FORMAT_DPCM_16) ;-*/ test_count ++ ; } ; if (do_all || strcmp (argv [1], "current_sf_info") == 0) { current_sf_info_test ("current.wav") ; test_count ++ ; } ; if (do_all || strcmp (argv [1], "bext") == 0) { broadcast_test ("broadcast.wav", SF_FORMAT_WAV | SF_FORMAT_PCM_16) ; broadcast_rdwr_test ("broadcast.wav", SF_FORMAT_WAV | SF_FORMAT_PCM_16) ; broadcast_test ("broadcast.wavex", SF_FORMAT_WAVEX | SF_FORMAT_PCM_16) ; broadcast_rdwr_test ("broadcast.wavex", SF_FORMAT_WAVEX | SF_FORMAT_PCM_16) ; broadcast_test ("broadcast.rf64", SF_FORMAT_RF64 | SF_FORMAT_PCM_16) ; broadcast_rdwr_test ("broadcast.rf64", SF_FORMAT_RF64 | SF_FORMAT_PCM_16) ; test_count ++ ; } ; if (do_all || strcmp (argv [1], "bextch") == 0) { broadcast_coding_history_test ("coding_history.wav") ; broadcast_coding_history_size ("coding_hist_size.wav") ; test_count ++ ; } ; if (do_all || strcmp (argv [1], "chanmap") == 0) { channel_map_test ("chanmap.wavex", SF_FORMAT_WAVEX | SF_FORMAT_PCM_16) ; channel_map_test ("chanmap.rf64", SF_FORMAT_RF64 | SF_FORMAT_PCM_16) ; channel_map_test ("chanmap.aifc" , SF_FORMAT_AIFF | SF_FORMAT_PCM_16) ; channel_map_test ("chanmap.caf" , SF_FORMAT_CAF | SF_FORMAT_PCM_16) ; test_count ++ ; } ; if (do_all || strcmp (argv [1], "rawend") == 0) { raw_needs_endswap_test ("raw_end.wav", SF_FORMAT_WAV) ; raw_needs_endswap_test ("raw_end.wavex", SF_FORMAT_WAVEX) ; raw_needs_endswap_test ("raw_end.rifx", SF_ENDIAN_BIG | SF_FORMAT_WAV) ; raw_needs_endswap_test ("raw_end.aiff", SF_FORMAT_AIFF) ; raw_needs_endswap_test ("raw_end.aiff_le", SF_ENDIAN_LITTLE | SF_FORMAT_AIFF) ; test_count ++ ; } ; if (test_count == 0) { printf ("Mono : ************************************\n") ; printf ("Mono : * No '%s' test defined.\n", argv [1]) ; printf ("Mono : ************************************\n") ; return 1 ; } ; return 0 ; } /* main */
int main (int argc, char *argv []) { int do_all = 0 ; int test_count = 0 ; if (argc != 2) { printf ("Usage : %s <test>\n", argv [0]) ; printf (" Where <test> is one of the following:\n") ; printf (" ver - test sf_command (SFC_GETLIB_VERSION)\n") ; printf (" norm - test floating point normalisation\n") ; printf (" format - test format string commands\n") ; printf (" peak - test peak calculation\n") ; printf (" trunc - test file truncation\n") ; printf (" inst - test set/get of SF_INSTRUMENT.\n") ; printf (" all - perform all tests\n") ; exit (1) ; } ; do_all =! strcmp (argv [1], "all") ; if (do_all || strcmp (argv [1], "ver") == 0) { char buffer [128] ; buffer [0] = 0 ; sf_command (NULL, SFC_GET_LIB_VERSION, buffer, sizeof (buffer)) ; if (strlen (buffer) < 1) { printf ("Line %d: could not retrieve lib version.\n", __LINE__) ; exit (1) ; } ; test_count++ ; } ; if (do_all || strcmp (argv [1], "norm") == 0) { /* Preliminary float/double normalisation tests. More testing ** is done in the program 'floating_point_test'. */ float_norm_test ("float.wav") ; double_norm_test ("double.wav") ; test_count++ ; } ; if (do_all || strcmp (argv [1], "peak") == 0) { calc_peak_test (SF_ENDIAN_BIG | SF_FORMAT_RAW, "be-peak.raw") ; calc_peak_test (SF_ENDIAN_LITTLE | SF_FORMAT_RAW, "le-peak.raw") ; test_count++ ; } ; if (do_all || ! strcmp (argv [1], "format")) { format_tests () ; test_count++ ; } ; if (do_all || strcmp (argv [1], "trunc") == 0) { truncate_test ("truncate.raw", SF_FORMAT_RAW | SF_FORMAT_PCM_32) ; truncate_test ("truncate.au" , SF_FORMAT_AU | SF_FORMAT_PCM_16) ; test_count++ ; } ; if (do_all || strcmp (argv [1], "inst") == 0) { instrument_test ("instrument.wav", SF_FORMAT_WAV | SF_FORMAT_PCM_16) ; instrument_test ("instrument.aiff" , SF_FORMAT_AIFF | SF_FORMAT_PCM_24) ; /*-instrument_test ("instrument.xi", SF_FORMAT_XI | SF_FORMAT_DPCM_16) ;-*/ test_count++ ; } ; if (do_all || strcmp (argv [1], "bext") == 0) { broadcast_test ("broadcast.wav", SF_FORMAT_WAV | SF_FORMAT_PCM_16) ; test_count++ ; } ; if (test_count == 0) { printf ("Mono : ************************************\n") ; printf ("Mono : * No '%s' test defined.\n", argv [1]) ; printf ("Mono : ************************************\n") ; return 1 ; } ; return 0 ; } /* main */