aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2018-06-14 16:20:34 +0200
committerChristian Kandeler <christian.kandeler@qt.io>2018-06-18 12:10:46 +0000
commit3ff9066ebc46547ad9e8afa2bb515d10a69b5391 (patch)
tree988eb18c170cc99d0a8f96e964fdb31fa1e019e7
parent69218a9739306d0e8dc7ee1508381fe1cb7f1b74 (diff)
Fix lex_yacc autotests for winbison
Change-Id: I3209a71c21ea1f91d232ab2bb607fa81c9751ad7 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
-rw-r--r--tests/auto/blackbox/testdata/lexyacc/lex_outfile/lex_outfile.qbs4
-rw-r--r--tests/auto/blackbox/testdata/lexyacc/lex_prefix/lex_prefix.qbs4
-rw-r--r--tests/auto/blackbox/testdata/lexyacc/modules/bisonhelper/bisonhelper.qbs19
-rw-r--r--tests/auto/blackbox/testdata/lexyacc/one-grammar/one-grammar.qbs4
-rw-r--r--tests/auto/blackbox/testdata/lexyacc/two-grammars/g1.l4
-rw-r--r--tests/auto/blackbox/testdata/lexyacc/two-grammars/two-grammars.qbs1
-rw-r--r--tests/auto/blackbox/testdata/lexyacc/unistd.h11
-rw-r--r--tests/auto/blackbox/testdata/lexyacc/yacc_output/yacc_output.qbs2
-rw-r--r--tests/auto/blackbox/tst_blackbox.cpp3
9 files changed, 47 insertions, 5 deletions
diff --git a/tests/auto/blackbox/testdata/lexyacc/lex_outfile/lex_outfile.qbs b/tests/auto/blackbox/testdata/lexyacc/lex_outfile/lex_outfile.qbs
index 677828906..3708140ad 100644
--- a/tests/auto/blackbox/testdata/lexyacc/lex_outfile/lex_outfile.qbs
+++ b/tests/auto/blackbox/testdata/lexyacc/lex_outfile/lex_outfile.qbs
@@ -1,10 +1,12 @@
import qbs
CppApplication {
+ qbsSearchPaths: ".."
+ Depends { name: "bisonhelper" }
Depends { name: "lex_yacc" }
lex_yacc.outputTag: "cpp"
lex_yacc.yaccFlags: ["-l"]
- cpp.includePaths: ["."]
+ cpp.includePaths: [".", ".."]
cpp.cxxLanguageVersion: "c++11"
cpp.minimumMacosVersion: "10.7"
consoleApplication: true
diff --git a/tests/auto/blackbox/testdata/lexyacc/lex_prefix/lex_prefix.qbs b/tests/auto/blackbox/testdata/lexyacc/lex_prefix/lex_prefix.qbs
index 677828906..3708140ad 100644
--- a/tests/auto/blackbox/testdata/lexyacc/lex_prefix/lex_prefix.qbs
+++ b/tests/auto/blackbox/testdata/lexyacc/lex_prefix/lex_prefix.qbs
@@ -1,10 +1,12 @@
import qbs
CppApplication {
+ qbsSearchPaths: ".."
+ Depends { name: "bisonhelper" }
Depends { name: "lex_yacc" }
lex_yacc.outputTag: "cpp"
lex_yacc.yaccFlags: ["-l"]
- cpp.includePaths: ["."]
+ cpp.includePaths: [".", ".."]
cpp.cxxLanguageVersion: "c++11"
cpp.minimumMacosVersion: "10.7"
consoleApplication: true
diff --git a/tests/auto/blackbox/testdata/lexyacc/modules/bisonhelper/bisonhelper.qbs b/tests/auto/blackbox/testdata/lexyacc/modules/bisonhelper/bisonhelper.qbs
new file mode 100644
index 000000000..449b130e2
--- /dev/null
+++ b/tests/auto/blackbox/testdata/lexyacc/modules/bisonhelper/bisonhelper.qbs
@@ -0,0 +1,19 @@
+import qbs
+import qbs.Process
+
+Module {
+ Depends { name: "lex_yacc" }
+ Probe {
+ id: bisonProbe
+ property string yaccBinary: lex_yacc.yaccBinary
+ configure: {
+ var p = Process();
+ found = p.exec(yaccBinary, ["-V"]) == 0 && p.readStdOut().contains("bison");
+ p.close();
+ }
+ }
+ Properties {
+ condition: bisonProbe.found
+ lex_yacc.yaccFlags: "-y"
+ }
+}
diff --git a/tests/auto/blackbox/testdata/lexyacc/one-grammar/one-grammar.qbs b/tests/auto/blackbox/testdata/lexyacc/one-grammar/one-grammar.qbs
index 677828906..3708140ad 100644
--- a/tests/auto/blackbox/testdata/lexyacc/one-grammar/one-grammar.qbs
+++ b/tests/auto/blackbox/testdata/lexyacc/one-grammar/one-grammar.qbs
@@ -1,10 +1,12 @@
import qbs
CppApplication {
+ qbsSearchPaths: ".."
+ Depends { name: "bisonhelper" }
Depends { name: "lex_yacc" }
lex_yacc.outputTag: "cpp"
lex_yacc.yaccFlags: ["-l"]
- cpp.includePaths: ["."]
+ cpp.includePaths: [".", ".."]
cpp.cxxLanguageVersion: "c++11"
cpp.minimumMacosVersion: "10.7"
consoleApplication: true
diff --git a/tests/auto/blackbox/testdata/lexyacc/two-grammars/g1.l b/tests/auto/blackbox/testdata/lexyacc/two-grammars/g1.l
index aebda993f..369f1c919 100644
--- a/tests/auto/blackbox/testdata/lexyacc/two-grammars/g1.l
+++ b/tests/auto/blackbox/testdata/lexyacc/two-grammars/g1.l
@@ -2,7 +2,11 @@
%{
#include <g1.tab.h>
+#ifdef _MSC_BUILD
+#pragma message("whatever")
+#else
#pragma whatever
+#endif
void g1error(const char *e) { }
%}
diff --git a/tests/auto/blackbox/testdata/lexyacc/two-grammars/two-grammars.qbs b/tests/auto/blackbox/testdata/lexyacc/two-grammars/two-grammars.qbs
index d70f733a9..fb1375598 100644
--- a/tests/auto/blackbox/testdata/lexyacc/two-grammars/two-grammars.qbs
+++ b/tests/auto/blackbox/testdata/lexyacc/two-grammars/two-grammars.qbs
@@ -3,6 +3,7 @@ import qbs
CppApplication {
Depends { name: "lex_yacc" }
consoleApplication: true
+ cpp.includePaths: ".."
files: [
"g1.l",
"g1.y",
diff --git a/tests/auto/blackbox/testdata/lexyacc/unistd.h b/tests/auto/blackbox/testdata/lexyacc/unistd.h
new file mode 100644
index 000000000..d9abd4d2a
--- /dev/null
+++ b/tests/auto/blackbox/testdata/lexyacc/unistd.h
@@ -0,0 +1,11 @@
+#ifndef MY_UNISTD_H
+#define MY_UNISTD_H
+
+#ifdef _MSC_BUILD
+#include <io.h>
+#define isatty _isatty
+#else
+#include_next <unistd.h>
+#endif
+
+#endif
diff --git a/tests/auto/blackbox/testdata/lexyacc/yacc_output/yacc_output.qbs b/tests/auto/blackbox/testdata/lexyacc/yacc_output/yacc_output.qbs
index 677828906..298190996 100644
--- a/tests/auto/blackbox/testdata/lexyacc/yacc_output/yacc_output.qbs
+++ b/tests/auto/blackbox/testdata/lexyacc/yacc_output/yacc_output.qbs
@@ -4,7 +4,7 @@ CppApplication {
Depends { name: "lex_yacc" }
lex_yacc.outputTag: "cpp"
lex_yacc.yaccFlags: ["-l"]
- cpp.includePaths: ["."]
+ cpp.includePaths: [".", ".."]
cpp.cxxLanguageVersion: "c++11"
cpp.minimumMacosVersion: "10.7"
consoleApplication: true
diff --git a/tests/auto/blackbox/tst_blackbox.cpp b/tests/auto/blackbox/tst_blackbox.cpp
index 6987ae662..83c00fa2f 100644
--- a/tests/auto/blackbox/tst_blackbox.cpp
+++ b/tests/auto/blackbox/tst_blackbox.cpp
@@ -4006,7 +4006,8 @@ void TestBlackbox::lexyacc()
params.arguments << "modules.lex_yacc.enableCompilerWarnings:true";
QCOMPARE(runQbs(params), 0);
QCOMPARE(runQbs(), 0);
- QVERIFY2(m_qbsStderr.contains("whatever"), m_qbsStderr.constData());
+ const QByteArray outputToCheck = m_qbsStdout + m_qbsStderr;
+ QVERIFY2(outputToCheck.contains("whatever"), outputToCheck.constData());
}
void TestBlackbox::lexyaccOutputs()