diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2018-02-05 14:39:47 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2018-02-05 14:39:47 +0200 |
commit | 36ec90018e1a6337d23fc5286ed926c2134bde1f (patch) | |
tree | 40710bf9555076689d1ee7726ec3e29317dba00a /tests | |
parent | 3954be70024fd60c20c658f08025eff7654a8943 (diff) |
Add tests for auto-generated test inputs/outputs
Diffstat (limited to 'tests')
-rw-r--r-- | tests/test/script/generated/buildfile | 8 | ||||
-rw-r--r-- | tests/test/script/generated/driver.cxx | 11 | ||||
-rw-r--r-- | tests/test/script/generated/testscript | 34 | ||||
-rw-r--r-- | tests/test/script/generated/testscript.in | 5 | ||||
-rw-r--r-- | tests/test/script/integration/buildfile (renamed from tests/test/script-integration/buildfile) | 2 | ||||
-rw-r--r-- | tests/test/script/integration/testscript (renamed from tests/test/script-integration/testscript) | 6 | ||||
-rw-r--r-- | tests/test/simple/generated/buildfile | 8 | ||||
-rw-r--r-- | tests/test/simple/generated/driver.cxx | 11 | ||||
-rw-r--r-- | tests/test/simple/generated/output.in | 1 | ||||
-rw-r--r-- | tests/test/simple/generated/testscript | 42 | ||||
-rw-r--r-- | tests/test/simple/generated/utility.cxx | 28 |
11 files changed, 153 insertions, 3 deletions
diff --git a/tests/test/script/generated/buildfile b/tests/test/script/generated/buildfile new file mode 100644 index 0000000..c27b49d --- /dev/null +++ b/tests/test/script/generated/buildfile @@ -0,0 +1,8 @@ +# file : tests/test/script/generated/buildfile +# copyright : Copyright (c) 2014-2017 Code Synthesis Ltd +# license : MIT; see accompanying LICENSE file + +# Test generated testscripts. +# + +./: test{testscript} $b file{*.cxx +*.in} diff --git a/tests/test/script/generated/driver.cxx b/tests/test/script/generated/driver.cxx new file mode 100644 index 0000000..e155462 --- /dev/null +++ b/tests/test/script/generated/driver.cxx @@ -0,0 +1,11 @@ +// file : tests/test/script/generated/driver.cxx -*- C++ -*- +// copyright : Copyright (c) 2014-2017 Code Synthesis Ltd +// license : MIT; see accompanying LICENSE file + +#include <iostream> + +int +main () +{ + std::cout << "1.2.3" << std::endl; +} diff --git a/tests/test/script/generated/testscript b/tests/test/script/generated/testscript new file mode 100644 index 0000000..572c73f --- /dev/null +++ b/tests/test/script/generated/testscript @@ -0,0 +1,34 @@ +# file : tests/test/script/generated/testscript +# copyright : Copyright (c) 2014-2017 Code Synthesis Ltd +# license : MIT; see accompanying LICENSE file + +test.arguments = test clean + +# Note: using common.test from test/, not script/. +# +.include ../../common.test + +# @@ in module +# ++cat <<EOI >+build/bootstrap.build +using version +EOI ++cat <<EOI >=manifest +: 1 +name: test +version: 1.2.3 +EOI + ++cat <<EOI >=build/root.build +using cxx +EOI + +: testscript +: +ln -s $src_base/driver.cxx ./; +ln -s $src_base/testscript.in ./; +$* <<EOI +exe{driver}: cxx{driver} test{testscript} +test{testscript}: in{testscript} $src_root/file{manifest} #@@ in module +test{testscript}: in.symbol = '@' +EOI diff --git a/tests/test/script/generated/testscript.in b/tests/test/script/generated/testscript.in new file mode 100644 index 0000000..b030b39 --- /dev/null +++ b/tests/test/script/generated/testscript.in @@ -0,0 +1,5 @@ +# file : tests/test/script/generated/testscript.in +# copyright : Copyright (c) 2014-2017 Code Synthesis Ltd +# license : MIT; see accompanying LICENSE file + +$* >'@version@' diff --git a/tests/test/script-integration/buildfile b/tests/test/script/integration/buildfile index 4249e1f..1cc1e30 100644 --- a/tests/test/script-integration/buildfile +++ b/tests/test/script/integration/buildfile @@ -1,4 +1,4 @@ -# file : tests/test/script-integration/buildfile +# file : tests/test/script/integration/buildfile # copyright : Copyright (c) 2014-2017 Code Synthesis Ltd # license : MIT; see accompanying LICENSE file diff --git a/tests/test/script-integration/testscript b/tests/test/script/integration/testscript index faade22..7074e36 100644 --- a/tests/test/script-integration/testscript +++ b/tests/test/script/integration/testscript @@ -1,8 +1,10 @@ -# file : tests/test/script-integration/testscript +# file : tests/test/script/integration/testscript # copyright : Copyright (c) 2014-2017 Code Synthesis Ltd # license : MIT; see accompanying LICENSE file -.include ../common.test +# Note: using common.test from test/, not script/. +# +.include ../../common.test : script-files : diff --git a/tests/test/simple/generated/buildfile b/tests/test/simple/generated/buildfile new file mode 100644 index 0000000..af97abd --- /dev/null +++ b/tests/test/simple/generated/buildfile @@ -0,0 +1,8 @@ +# file : tests/test/simple/generated/buildfile +# copyright : Copyright (c) 2014-2017 Code Synthesis Ltd +# license : MIT; see accompanying LICENSE file + +# Test generated test inputs/outputs. +# + +./: test{testscript} $b file{*.cxx +*.in} diff --git a/tests/test/simple/generated/driver.cxx b/tests/test/simple/generated/driver.cxx new file mode 100644 index 0000000..fb3ab8f --- /dev/null +++ b/tests/test/simple/generated/driver.cxx @@ -0,0 +1,11 @@ +// file : tests/test/simple/generated/driver.cxx -*- C++ -*- +// copyright : Copyright (c) 2014-2017 Code Synthesis Ltd +// license : MIT; see accompanying LICENSE file + +#include <iostream> + +int +main () +{ + std::cout << "1.2.3" << std::endl; +} diff --git a/tests/test/simple/generated/output.in b/tests/test/simple/generated/output.in new file mode 100644 index 0000000..36d79d4 --- /dev/null +++ b/tests/test/simple/generated/output.in @@ -0,0 +1 @@ +$version$ diff --git a/tests/test/simple/generated/testscript b/tests/test/simple/generated/testscript new file mode 100644 index 0000000..9ec5220 --- /dev/null +++ b/tests/test/simple/generated/testscript @@ -0,0 +1,42 @@ +# file : tests/test/simple/generated/testscript +# copyright : Copyright (c) 2014-2017 Code Synthesis Ltd +# license : MIT; see accompanying LICENSE file + +test.arguments = test clean + +.include ../../common.test + +# @@ in module +# ++cat <<EOI >+build/bootstrap.build +using version +EOI ++cat <<EOI >=manifest +: 1 +name: test +version: 1.2.3 +EOI + ++cat <<EOI >=build/root.build +using cxx +EOI + +: input +: +ln -s $src_base/driver.cxx ./; +ln -s $src_base/utility.cxx ./; +$* <<EOI +exe{utility}: cxx{utility} +exe{utility}: exe{driver}: test.input = true +exe{driver}: cxx{driver} +EOI + +: output +: +ln -s $src_base/driver.cxx ./; +ln -s $src_base/output.in ./; +$* <<EOI +exe{driver}: cxx{driver} +exe{driver}: file{output}: test.stdout = true +file{output}: in{output} $src_root/file{manifest} #@@ in module +EOI diff --git a/tests/test/simple/generated/utility.cxx b/tests/test/simple/generated/utility.cxx new file mode 100644 index 0000000..e2113bd --- /dev/null +++ b/tests/test/simple/generated/utility.cxx @@ -0,0 +1,28 @@ +// file : tests/test/simple/generated/utility.cxx -*- C++ -*- +// copyright : Copyright (c) 2014-2017 Code Synthesis Ltd +// license : MIT; see accompanying LICENSE file + +#include <iostream> +#include <fstream> + +using namespace std; + +int +main (int argc, char* argv[]) +{ + if (argc != 2) + { + cerr << "usage: " << argv[0] << " <file>" << endl; + return 1; + } + + ifstream ifs (argv[1], ifstream::in | ifstream::binary | ifstream::ate); + + if (!ifs.is_open ()) + cerr << "unable to open " << argv[1] << endl; + + if (ifs.tellg () == 0) + cerr << argv[1] << " is empty" << endl; + + return 0; +} |