summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/Makefile.am95
-rw-r--r--tests/test-pedantic-compilation.c6
-rw-r--r--tests/test-pedantic-compilation.cxx4
3 files changed, 103 insertions, 2 deletions
diff --git a/tests/Makefile.am b/tests/Makefile.am
index c20c0e9f8..6c3d4449c 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -144,6 +144,101 @@ test_pedantic_cxx_LDADD = \
########################################################################
+# Test pendantic compilation for multiple language standard
+########################################################################
+
+generic_pedantic_cppflags =
+generic_pedantic_cppflags += -I$(top_srcdir)/libgphoto2_port
+generic_pedantic_cppflags += -I$(top_srcdir)
+
+if GP_HAVE_PEDANTIC_FLAGS_C90
+TESTS += test-pedantic-c90
+check_PROGRAMS += test-pedantic-c90
+test_pedantic_c90_SOURCES = test-pedantic-compilation.c
+test_pedantic_c90_CPPFLAGS = $(generic_pedantic_cppflags)
+test_pedantic_c90_CFLAGS = $(GP_PEDANTIC_CFLAGS_C90)
+test_pedantic_c90_LDADD =
+test_pedantic_c90_LDFLAGS =
+endif
+
+if GP_HAVE_PEDANTIC_FLAGS_C99
+TESTS += test-pedantic-c99
+check_PROGRAMS += test-pedantic-c99
+test_pedantic_c99_SOURCES = test-pedantic-compilation.c
+test_pedantic_c99_CPPFLAGS = $(generic_pedantic_cppflags)
+test_pedantic_c99_CFLAGS = $(GP_PEDANTIC_CFLAGS_C99)
+test_pedantic_c99_LDADD =
+test_pedantic_c99_LDFLAGS =
+endif
+
+if GP_HAVE_PEDANTIC_FLAGS_C11
+TESTS += test-pedantic-c11
+check_PROGRAMS += test-pedantic-c11
+test_pedantic_c11_SOURCES = test-pedantic-compilation.c
+test_pedantic_c11_CPPFLAGS = $(generic_pedantic_cppflags)
+test_pedantic_c11_CFLAGS = $(GP_PEDANTIC_CFLAGS_C11)
+test_pedantic_c11_LDADD =
+test_pedantic_c11_LDFLAGS =
+endif
+
+if GP_HAVE_PEDANTIC_FLAGS_CXX98
+if HAVE_CXX
+TESTS += test-pedantic-cxx98
+check_PROGRAMS += test-pedantic-cxx98
+else
+EXTRA_PROGRAMS += test-pedantic-cxx98
+endif
+test_pedantic_cxx98_SOURCES = test-pedantic-compilation.cxx
+test_pedantic_cxx98_CPPFLAGS = $(generic_pedantic_cppflags)
+test_pedantic_cxx98_CXXFLAGS = $(GP_PEDANTIC_CXXFLAGS_CXX98)
+test_pedantic_cxx98_LDADD =
+test_pedantic_cxx98_LDFLAGS =
+endif
+
+if GP_HAVE_PEDANTIC_FLAGS_CXX11
+if HAVE_CXX
+TESTS += test-pedantic-cxx11
+check_PROGRAMS += test-pedantic-cxx11
+else
+EXTRA_PROGRAMS += test-pedantic-cxx11
+endif
+test_pedantic_cxx11_SOURCES = test-pedantic-compilation.cxx
+test_pedantic_cxx11_CPPFLAGS = $(generic_pedantic_cppflags)
+test_pedantic_cxx11_CXXFLAGS = $(GP_PEDANTIC_CXXFLAGS_CXX11)
+test_pedantic_cxx11_LDADD =
+test_pedantic_cxx11_LDFLAGS =
+endif
+
+if GP_HAVE_PEDANTIC_FLAGS_CXX14
+if HAVE_CXX
+TESTS += test-pedantic-cxx14
+check_PROGRAMS += test-pedantic-cxx14
+else
+EXTRA_PROGRAMS += test-pedantic-cxx14
+endif
+test_pedantic_cxx14_SOURCES = test-pedantic-compilation.cxx
+test_pedantic_cxx14_CPPFLAGS = $(generic_pedantic_cppflags)
+test_pedantic_cxx14_CXXFLAGS = $(GP_PEDANTIC_CXXFLAGS_CXX14)
+test_pedantic_cxx14_LDADD =
+test_pedantic_cxx14_LDFLAGS =
+endif
+
+if GP_HAVE_PEDANTIC_FLAGS_CXX17
+if HAVE_CXX
+TESTS += test-pedantic-cxx17
+check_PROGRAMS += test-pedantic-cxx17
+else
+EXTRA_PROGRAMS += test-pedantic-cxx17
+endif
+test_pedantic_cxx17_SOURCES = test-pedantic-compilation.cxx
+test_pedantic_cxx17_CPPFLAGS = $(generic_pedantic_cppflags)
+test_pedantic_cxx17_CXXFLAGS = $(GP_PEDANTIC_CXXFLAGS_CXX17)
+test_pedantic_cxx17_LDADD =
+test_pedantic_cxx17_LDFLAGS =
+endif
+
+
+########################################################################
# Implement the checks for the installed library
########################################################################
diff --git a/tests/test-pedantic-compilation.c b/tests/test-pedantic-compilation.c
index 269ea080d..bb88d1a82 100644
--- a/tests/test-pedantic-compilation.c
+++ b/tests/test-pedantic-compilation.c
@@ -17,10 +17,16 @@
#include <stdio.h>
+#ifdef __STDC_VERSION__
unsigned long stdc_version = __STDC_VERSION__;
+#endif
int main()
{
+#ifdef __STDC_VERSION__
printf("stdc_version = %lu\n", stdc_version);
+#else
+ printf("stdc_version = undefined\n");
+#endif
return 0;
}
diff --git a/tests/test-pedantic-compilation.cxx b/tests/test-pedantic-compilation.cxx
index 70bac2f2b..5dbe12083 100644
--- a/tests/test-pedantic-compilation.cxx
+++ b/tests/test-pedantic-compilation.cxx
@@ -15,12 +15,12 @@
#include <gphoto2/gphoto2-port-result.h>
#include <gphoto2/gphoto2-port-version.h>
-#include <stdio.h>
+#include <iostream>
unsigned long cxx_version = __cplusplus;
int main()
{
- printf("cxx_version = %lu\n", cxx_version);
+ std::cout << "cxx_version = " << cxx_version << std::endl;
return 0;
}