summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2015-09-17 20:05:04 (GMT)
committerBrad King <brad.king@kitware.com>2015-09-18 20:12:28 (GMT)
commit48a1d8e17359a65977cd8b3a6d535ad26ceaf9ea (patch)
tree045373d10f52d502784bccbdf673c77129b16399 /test
parent926ea9574ef8adc7d81db6b57b0ad83707b90fcd (diff)
downloadCastXML-48a1d8e17359a65977cd8b3a6d535ad26ceaf9ea.zip
CastXML-48a1d8e17359a65977cd8b3a6d535ad26ceaf9ea.tar.gz
CastXML-48a1d8e17359a65977cd8b3a6d535ad26ceaf9ea.tar.bz2
castxml: Allow --castxml-cc-<id> to detect C language settings
If the "<id>" is "gnu-c" or "msvc-c" then run the given compiler command line on a C source file instead of C++. This allows C language settings of the given compiler to be detected.
Diffstat (limited to 'test')
-rw-r--r--test/CMakeLists.txt6
-rw-r--r--test/cc-gnu.c9
-rw-r--r--test/cc-msvc.c11
-rw-r--r--test/expect/cmd.cc-gnu-c-bad-cmd.result.txt1
-rw-r--r--test/expect/cmd.cc-gnu-c-bad-cmd.stderr.txt3
-rw-r--r--test/expect/cmd.cc-gnu-c-src-c-E.stdout.txt2
-rw-r--r--test/expect/cmd.cc-gnu-c-src-c-cmd.stderr.txt1
-rw-r--r--test/expect/cmd.cc-msvc-c-bad-cmd.result.txt1
-rw-r--r--test/expect/cmd.cc-msvc-c-bad-cmd.stderr.txt3
-rw-r--r--test/expect/cmd.cc-msvc-c-src-c-E.stdout.txt2
-rw-r--r--test/expect/cmd.cc-msvc-c-src-c-cmd.stderr.txt1
11 files changed, 38 insertions, 2 deletions
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index 29fcecf..9744919 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -160,6 +160,9 @@ castxml_test_cmd(cc-gnu-tgt-i386 --castxml-cc-gnu "(" $<TARGET_FILE:cc-gnu> --cc
castxml_test_cmd(cc-gnu-tgt-mingw --castxml-cc-gnu "(" $<TARGET_FILE:cc-gnu> --cc-define=_WIN32 --cc-define=__MINGW32__ ")" ${empty_cxx} "-###")
castxml_test_cmd(cc-gnu-tgt-win --castxml-cc-gnu "(" $<TARGET_FILE:cc-gnu> --cc-define=_WIN32 ")" ${empty_cxx} "-###")
castxml_test_cmd(cc-gnu-tgt-x86_64 --castxml-cc-gnu "(" $<TARGET_FILE:cc-gnu> --cc-define=__x86_64__ ")" ${empty_cxx} "-###")
+castxml_test_cmd(cc-gnu-c-bad-cmd --castxml-cc-gnu-c "(" cc-gnu-c-bad-cmd ")" ${empty_c})
+castxml_test_cmd(cc-gnu-c-src-c-E --castxml-cc-gnu-c $<TARGET_FILE:cc-gnu> ${empty_c} -E -dM)
+castxml_test_cmd(cc-gnu-c-src-c-cmd --castxml-cc-gnu-c $<TARGET_FILE:cc-gnu> ${empty_c} "-###")
# Test --castxml-cc-msvc detection.
add_executable(cc-msvc cc-msvc.c)
@@ -174,6 +177,9 @@ castxml_test_cmd(cc-msvc-tgt-explicit --castxml-cc-msvc "(" $<TARGET_FILE:cc-msv
castxml_test_cmd(cc-msvc-tgt-i386 --castxml-cc-msvc "(" $<TARGET_FILE:cc-msvc> --cc-define=_M_IX86 ")" ${empty_cxx} "-###")
castxml_test_cmd(cc-msvc-tgt-win --castxml-cc-msvc "(" $<TARGET_FILE:cc-msvc> --cc-define=_WIN32 ")" ${empty_cxx} "-###")
castxml_test_cmd(cc-msvc-tgt-x86_64 --castxml-cc-msvc "(" $<TARGET_FILE:cc-msvc> --cc-define=_M_X64 ")" ${empty_cxx} "-###")
+castxml_test_cmd(cc-msvc-c-bad-cmd --castxml-cc-msvc-c "(" cc-msvc-c-bad-cmd ")" ${empty_c})
+castxml_test_cmd(cc-msvc-c-src-c-E --castxml-cc-msvc-c $<TARGET_FILE:cc-msvc> ${empty_c} -E -dM)
+castxml_test_cmd(cc-msvc-c-src-c-cmd --castxml-cc-msvc-c $<TARGET_FILE:cc-msvc> ${empty_c} "-###")
unset(castxml_test_cmd_extra_arguments)
castxml_test_gccxml(ArrayType)
diff --git a/test/cc-gnu.c b/test/cc-gnu.c
index bd49475..b3f7400 100644
--- a/test/cc-gnu.c
+++ b/test/cc-gnu.c
@@ -3,14 +3,21 @@
int main(int argc, const char* argv[])
{
+ int cpp = 0;
int i;
for (i = 1; i < argc; ++i) {
if (strncmp(argv[i], "--cc-define=", 12) == 0) {
fprintf(stdout, "#define %s 1\n", argv[i]+12);
+ } else if (strstr(argv[i], ".cpp")) {
+ cpp = 1;
}
}
+ if (cpp) {
+ fprintf(stdout,
+ "#define __cplusplus 199711L\n"
+ );
+ }
fprintf(stdout,
- "#define __cplusplus 199711L\n"
"#define __GNUC__ 1\n"
"#define __has_include(x) x\n"
"#define __has_include_next(x) x\n"
diff --git a/test/cc-msvc.c b/test/cc-msvc.c
index 3d2cd58..9838a5e 100644
--- a/test/cc-msvc.c
+++ b/test/cc-msvc.c
@@ -3,15 +3,24 @@
int main(int argc, const char* argv[])
{
+ int cpp = 0;
int i;
for (i = 1; i < argc; ++i) {
if (strncmp(argv[i], "--cc-define=", 12) == 0) {
fprintf(stdout, "\n#define %s 1", argv[i]+12);
+ } else if (strstr(argv[i], ".cpp")) {
+ cpp = 1;
}
}
fprintf(stdout,
"\n"
- "#define __cplusplus 199711L\n"
+ );
+ if (cpp) {
+ fprintf(stdout,
+ "#define __cplusplus 199711L\n"
+ );
+ }
+ fprintf(stdout,
"#define _MSC_VER 1600\n"
"#define __has_include(x) x\n"
"#define __has_include_next(x) x\n"
diff --git a/test/expect/cmd.cc-gnu-c-bad-cmd.result.txt b/test/expect/cmd.cc-gnu-c-bad-cmd.result.txt
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/test/expect/cmd.cc-gnu-c-bad-cmd.result.txt
@@ -0,0 +1 @@
+1
diff --git a/test/expect/cmd.cc-gnu-c-bad-cmd.stderr.txt b/test/expect/cmd.cc-gnu-c-bad-cmd.stderr.txt
new file mode 100644
index 0000000..117a4c5
--- /dev/null
+++ b/test/expect/cmd.cc-gnu-c-bad-cmd.stderr.txt
@@ -0,0 +1,3 @@
+^error: '--castxml-cc-gnu-c' compiler command failed:
+
+ 'cc-gnu-c-bad-cmd' '-E' '-dM' '-v' '.*/share/castxml/empty.c'
diff --git a/test/expect/cmd.cc-gnu-c-src-c-E.stdout.txt b/test/expect/cmd.cc-gnu-c-src-c-E.stdout.txt
new file mode 100644
index 0000000..0a0cc7e
--- /dev/null
+++ b/test/expect/cmd.cc-gnu-c-src-c-E.stdout.txt
@@ -0,0 +1,2 @@
+^#define __GNUC_MINOR__ 1
+#define __GNUC__ 1$
diff --git a/test/expect/cmd.cc-gnu-c-src-c-cmd.stderr.txt b/test/expect/cmd.cc-gnu-c-src-c-cmd.stderr.txt
new file mode 100644
index 0000000..175c3bd
--- /dev/null
+++ b/test/expect/cmd.cc-gnu-c-src-c-cmd.stderr.txt
@@ -0,0 +1 @@
+"clang" .* "-[^i][^"]*" "[^-"][^"]*" "-isystem" "/some/include" "-isystem" "[^"]*/include" "-iframework" "/some/Frameworks" "-iframework" "/some/CustomFW" "-[^i]
diff --git a/test/expect/cmd.cc-msvc-c-bad-cmd.result.txt b/test/expect/cmd.cc-msvc-c-bad-cmd.result.txt
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/test/expect/cmd.cc-msvc-c-bad-cmd.result.txt
@@ -0,0 +1 @@
+1
diff --git a/test/expect/cmd.cc-msvc-c-bad-cmd.stderr.txt b/test/expect/cmd.cc-msvc-c-bad-cmd.stderr.txt
new file mode 100644
index 0000000..fca19b3
--- /dev/null
+++ b/test/expect/cmd.cc-msvc-c-bad-cmd.stderr.txt
@@ -0,0 +1,3 @@
+^error: '--castxml-cc-msvc-c' compiler command failed:
+
+ 'cc-msvc-c-bad-cmd' '-c' '-FoNUL' '.*/share/castxml/detect_vs.c
diff --git a/test/expect/cmd.cc-msvc-c-src-c-E.stdout.txt b/test/expect/cmd.cc-msvc-c-src-c-E.stdout.txt
new file mode 100644
index 0000000..04ac327
--- /dev/null
+++ b/test/expect/cmd.cc-msvc-c-src-c-E.stdout.txt
@@ -0,0 +1,2 @@
+^#define _MSC_VER 1600
+#define _WIN32 1$
diff --git a/test/expect/cmd.cc-msvc-c-src-c-cmd.stderr.txt b/test/expect/cmd.cc-msvc-c-src-c-cmd.stderr.txt
new file mode 100644
index 0000000..fb9ae02
--- /dev/null
+++ b/test/expect/cmd.cc-msvc-c-src-c-cmd.stderr.txt
@@ -0,0 +1 @@
+"clang" .* "-[^i][^"]*" "[^-"][^"]*" "-isystem" "/some/include" "-isystem" "/some/other/include" "-[^i]