X-Git-Url: https://scm.cri.ensmp.fr/git/Faustine.git/blobdiff_plain/992d59159547267e1491fcd1c5123765b4c452b8..63cf293f572ae7d5c1c83b9dffb31e7d774f8854:/interpretor/lib/src/libsndfile-1.0.25/tests/external_libs_test.c diff --git a/interpretor/lib/src/libsndfile-1.0.25/tests/external_libs_test.c b/interpretor/lib/src/libsndfile-1.0.25/tests/external_libs_test.c new file mode 100644 index 0000000..86b0290 --- /dev/null +++ b/interpretor/lib/src/libsndfile-1.0.25/tests/external_libs_test.c @@ -0,0 +1,149 @@ +/* +** Copyright (C) 2008-2011 Erik de Castro Lopo +** +** This program is free software ; you can redistribute it and/or modify +** it under the terms of the GNU General Public License as published by +** the Free Software Foundation ; either version 2 of the License, or +** (at your option) any later version. +** +** This program is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY ; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +** GNU General Public License for more details. +** +** You should have received a copy of the GNU General Public License +** along with this program ; if not, write to the Free Software +** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +*/ + +#include "sfconfig.h" + +#include +#include +#include +#include + +#include + +#include "utils.h" + +static void major_format_test (void) ; +static void subtype_format_test (void) ; +static void simple_format_test (void) ; + +int +main (void) +{ + major_format_test () ; + subtype_format_test () ; + simple_format_test () ; + + return 0 ; +} /* main */ + +static void +major_format_test (void) +{ SF_FORMAT_INFO info ; + int have_ogg = 0, have_flac = 0 ; + int m, major_count ; + + print_test_name (__func__, NULL) ; + + sf_command (NULL, SFC_GET_FORMAT_MAJOR_COUNT, &major_count, sizeof (int)) ; + + for (m = 0 ; m < major_count ; m++) + { info.format = m ; + sf_command (NULL, SFC_GET_FORMAT_MAJOR, &info, sizeof (info)) ; + + have_flac = info.format == SF_FORMAT_FLAC ? 1 : have_flac ; + have_ogg = info.format == SF_FORMAT_OGG ? 1 : have_ogg ; + } ; + + if (HAVE_EXTERNAL_LIBS) + { exit_if_true (have_flac == 0, "\n\nLine %d : FLAC should be available.\n\n", __LINE__) ; + exit_if_true (have_ogg == 0, "\n\nLine %d : Ogg/Vorbis should be available.\n\n", __LINE__) ; + } + else + { exit_if_true (have_flac, "\n\nLine %d : FLAC should not be available.\n\n", __LINE__) ; + exit_if_true (have_ogg, "\n\nLine %d : Ogg/Vorbis should not be available.\n\n", __LINE__) ; + } ; + + puts ("ok") ; +} /* major_format_test */ + +static void +subtype_format_test (void) +{ SF_FORMAT_INFO info ; + int have_vorbis = 0 ; + int s, subtype_count ; + + print_test_name (__func__, NULL) ; + + sf_command (NULL, SFC_GET_FORMAT_SUBTYPE_COUNT, &subtype_count, sizeof (int)) ; + + for (s = 0 ; s < subtype_count ; s++) + { info.format = s ; + sf_command (NULL, SFC_GET_FORMAT_SUBTYPE, &info, sizeof (info)) ; + + have_vorbis = info.format == SF_FORMAT_VORBIS ? 1 : have_vorbis ; + } ; + + if (HAVE_EXTERNAL_LIBS) + exit_if_true (have_vorbis == 0, "\n\nLine %d : Ogg/Vorbis should be available.\n\n", __LINE__) ; + else + exit_if_true (have_vorbis, "\n\nLine %d : Ogg/Vorbis should not be available.\n\n", __LINE__) ; + + puts ("ok") ; +} /* subtype_format_test */ + +static void +simple_format_test (void) +{ SF_FORMAT_INFO info ; + int have_flac = 0, have_ogg = 0, have_vorbis = 0 ; + int s, simple_count ; + + print_test_name (__func__, NULL) ; + + sf_command (NULL, SFC_GET_SIMPLE_FORMAT_COUNT, &simple_count, sizeof (int)) ; + + for (s = 0 ; s < simple_count ; s++) + { info.format = s ; + sf_command (NULL, SFC_GET_SIMPLE_FORMAT, &info, sizeof (info)) ; + + switch (info.format & SF_FORMAT_TYPEMASK) + { case SF_FORMAT_FLAC : + have_flac = 1 ; + break ; + + case SF_FORMAT_OGG : + have_ogg = 1 ; + break ; + + default : + break ; + } ; + + switch (info.format & SF_FORMAT_SUBMASK) + { case SF_FORMAT_VORBIS : + have_vorbis = 1 ; + break ; + + default : + break ; + } ; + + } ; + + if (HAVE_EXTERNAL_LIBS) + { exit_if_true (have_flac == 0, "\n\nLine %d : FLAC should be available.\n\n", __LINE__) ; + exit_if_true (have_ogg == 0, "\n\nLine %d : Ogg/Vorbis should be available.\n\n", __LINE__) ; + exit_if_true (have_vorbis == 0, "\n\nLine %d : Ogg/Vorbis should be available.\n\n", __LINE__) ; + } + else + { exit_if_true (have_flac, "\n\nLine %d : FLAC should not be available.\n\n", __LINE__) ; + exit_if_true (have_ogg, "\n\nLine %d : Ogg/Vorbis should not be available.\n\n", __LINE__) ; + exit_if_true (have_vorbis, "\n\nLine %d : Ogg/Vorbis should not be available.\n\n", __LINE__) ; + } ; + + puts ("ok") ; +} /* simple_format_test */