From fae2e1bc2da4c6526362f70791108893f36a1393 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= Date: Sat, 12 Mar 2011 17:51:41 +0000 Subject: [PATCH] tests: add libscpp unit test to make sure g++ likes our library headers --- configure.ac | 18 +++-- tests/check/Makefile.am | 16 +++- tests/check/libs/.gitignore | 1 + tests/check/libs/gstlibscpp.cc | 139 +++++++++++++++++++++++++++++++++ 4 files changed, 165 insertions(+), 9 deletions(-) create mode 100644 tests/check/libs/gstlibscpp.cc diff --git a/configure.ac b/configure.ac index bacd07a46e..c8d8597750 100644 --- a/configure.ac +++ b/configure.ac @@ -135,18 +135,20 @@ dnl *** checks for programs *** dnl find a compiler AC_PROG_CC AC_PROG_CC_STDC -AC_PROG_CXX - -dnl determine if c++ is available on this system -AC_CHECK_PROG(HAVE_CXX, $CXX, yes, no) - -dnl determine c++ preprocessor -dnl FIXME: do we need this ? -AC_PROG_CXXCPP dnl check if the compiler supports '-c' and '-o' options AM_PROG_CC_C_O +dnl determine if c++ is available on this system +AC_PROG_CXX +dnl CXX may be set to some default even if no c++ compiler is available +dnl (thanks autotools!), so just try to compile some c++ code to make sure +AC_LANG_PUSH([C++]) +AC_TRY_COMPILE([ class Foo { int bar; };], , working_cxx=yes, working_cxx=no) +AC_LANG_POP([C++]) +AC_MSG_NOTICE([working c++ compiler found: $working_cxx]) +AM_CONDITIONAL(HAVE_CXX, test "x$working_cxx" = "xyes") + AC_PATH_PROG(VALGRIND_PATH, valgrind, no) AM_CONDITIONAL(HAVE_VALGRIND, test ! "x$VALGRIND_PATH" = "xno") diff --git a/tests/check/Makefile.am b/tests/check/Makefile.am index f496787d35..ee9981916f 100644 --- a/tests/check/Makefile.am +++ b/tests/check/Makefile.am @@ -99,6 +99,12 @@ else check_orc = endif +if HAVE_CXX +cxx_checks = libs/gstlibscpp +else +cxx_checks = +endif + check_PROGRAMS = \ $(check_alsa) \ $(check_gnomevfs) \ @@ -144,6 +150,7 @@ check_PROGRAMS = \ libs/rtsp \ libs/tag \ libs/video \ + $(cxx_checks) \ $(check_orc) \ pipelines/simple-launch-lines \ pipelines/streamheader \ @@ -170,7 +177,12 @@ noinst_HEADERS = \ # libs/struct_sparc.h \ # libs/struct_x86_64.h -AM_CFLAGS = $(GST_CFLAGS) $(GST_CHECK_CFLAGS) \ +AM_CFLAGS = -I$(top_srcdir)/gst-libs -I$(top_builddir)/gst-libs \ + $(GST_CFLAGS) $(GST_CHECK_CFLAGS) \ + -DGST_TEST_FILES_PATH="\"$(TEST_FILES_DIRECTORY)\"" \ + -UG_DISABLE_ASSERT -UG_DISABLE_CAST_CHECKS +AM_CXXFLAGS = -I$(top_srcdir)/gst-libs -I$(top_builddir)/gst-libs \ + $(GST_CXXFLAGS) $(GST_CHECK_CFLAGS) \ -DGST_TEST_FILES_PATH="\"$(TEST_FILES_DIRECTORY)\"" \ -UG_DISABLE_ASSERT -UG_DISABLE_CAST_CHECKS LDADD = $(GST_LIBS) $(GST_CHECK_LIBS) @@ -295,6 +307,8 @@ libs_profile_CFLAGS = \ libs_profile_LDADD = \ $(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-@GST_MAJORMINOR@.la $(LDADD) +libs_gstlibscpp_SOURCES = libs/gstlibscpp.cc + elements_appsink_CFLAGS = \ $(GST_PLUGINS_BASE_CFLAGS) \ $(AM_CFLAGS) diff --git a/tests/check/libs/.gitignore b/tests/check/libs/.gitignore index f0e5c928e7..5e807df6a9 100644 --- a/tests/check/libs/.gitignore +++ b/tests/check/libs/.gitignore @@ -2,6 +2,7 @@ audio cddabasesrc fft +gstlibscpp mixer navigation netbuffer diff --git a/tests/check/libs/gstlibscpp.cc b/tests/check/libs/gstlibscpp.cc new file mode 100644 index 0000000000..aa80624cc4 --- /dev/null +++ b/tests/check/libs/gstlibscpp.cc @@ -0,0 +1,139 @@ +/* GStreamer + * Copyright (C) 2011 Tim-Philipp Müller + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library 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 + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include +#include + +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include +#include +#include +#include +#include + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include + +#include +#include +#include +#include + +/* we mostly just want to make sure that our library headers don't + * contain anything a C++ compiler might not like */ +GST_START_TEST (test_nothing) +{ + gst_init (NULL, NULL); +} + +GST_END_TEST; + +static Suite * +libscpp_suite (void) +{ + Suite *s = suite_create ("GstLibsCpp"); + TCase *tc_chain = tcase_create ("C++ libs header tests"); + + suite_add_tcase (s, tc_chain); + tcase_add_test (tc_chain, test_nothing); + + return s; +} + +GST_CHECK_MAIN (libscpp);