From 83c28bc98a3cb439c3dbb3824f4ede4eb14798a3 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Mon, 24 Oct 2016 15:38:22 +0200 Subject: Rename tests/test/script/ to tests/test/script/runner/ --- tests/test/script/buildfile | 6 +-- tests/test/script/driver.cxx | 76 ------------------------------------- tests/test/script/runner/buildfile | 7 ++++ tests/test/script/runner/driver.cxx | 76 +++++++++++++++++++++++++++++++++++++ tests/test/script/runner/testscript | 72 +++++++++++++++++++++++++++++++++++ tests/test/script/testscript | 72 ----------------------------------- 6 files changed, 158 insertions(+), 151 deletions(-) delete mode 100644 tests/test/script/driver.cxx create mode 100644 tests/test/script/runner/buildfile create mode 100644 tests/test/script/runner/driver.cxx create mode 100644 tests/test/script/runner/testscript delete mode 100644 tests/test/script/testscript (limited to 'tests') diff --git a/tests/test/script/buildfile b/tests/test/script/buildfile index bf69e27..2bc4780 100644 --- a/tests/test/script/buildfile +++ b/tests/test/script/buildfile @@ -2,6 +2,6 @@ # copyright : Copyright (c) 2014-2016 Code Synthesis Ltd # license : MIT; see accompanying LICENSE file -exe{driver}: cxx{driver} test{testscript} - -include ../../../../build2/ +d = runner/ +./: $d +include $d diff --git a/tests/test/script/driver.cxx b/tests/test/script/driver.cxx deleted file mode 100644 index b81172e..0000000 --- a/tests/test/script/driver.cxx +++ /dev/null @@ -1,76 +0,0 @@ -// file : tests/test/script/driver.cxx -*- C++ -*- -// copyright : Copyright (c) 2014-2016 Code Synthesis Ltd -// license : MIT; see accompanying LICENSE file - -#include // numeric_limits -#include -#include -#include // endl, *bit -#include -#include - -using namespace std; - -int -main (int argc, char* argv[]) -{ - // Usage: driver [-i ] [-s ] (-o )* (-e )* - // - int status (256); - int ifd (3); - - cout.exceptions (ostream::failbit | ostream::badbit); - cerr.exceptions (ostream::failbit | ostream::badbit); - - for (int i (1); i < argc; ++i) - { - string o (argv[i++]); - assert (i < argc); - - string v (argv[i]); - - auto toi = [] (const string& s) -> int - { - try - { - return stoi (s); - } - catch (const exception&) - { - assert (false); - } - }; - - if (o == "-i") - { - assert (ifd == 3); // Make sure is not set yet. - - ifd = toi (v); - assert (ifd >= 0 && ifd < 3); - - if (ifd == 0) - cin.ignore (numeric_limits::max ()); - else - (ifd == 1 ? cout : cerr) << cin.rdbuf (); - } - else if (o == "-o") - { - cout << v << endl; - } - else if (o == "-e") - { - cerr << v << endl; - } - else if (o == "-s") - { - assert (status == 256); // Make sure is not set yet. - - status = toi (v); - assert (status >= 0 && status < 256); - } - else - assert (false); - } - - return status == 256 ? 0 : status; -} diff --git a/tests/test/script/runner/buildfile b/tests/test/script/runner/buildfile new file mode 100644 index 0000000..c91f940 --- /dev/null +++ b/tests/test/script/runner/buildfile @@ -0,0 +1,7 @@ +# file : tests/test/script/runner/buildfile +# copyright : Copyright (c) 2014-2016 Code Synthesis Ltd +# license : MIT; see accompanying LICENSE file + +exe{driver}: cxx{driver} test{testscript} + +include ../../../../../build2/ diff --git a/tests/test/script/runner/driver.cxx b/tests/test/script/runner/driver.cxx new file mode 100644 index 0000000..940a68c --- /dev/null +++ b/tests/test/script/runner/driver.cxx @@ -0,0 +1,76 @@ +// file : tests/test/script/runner/driver.cxx -*- C++ -*- +// copyright : Copyright (c) 2014-2016 Code Synthesis Ltd +// license : MIT; see accompanying LICENSE file + +#include // numeric_limits +#include +#include +#include // endl, *bit +#include +#include + +using namespace std; + +int +main (int argc, char* argv[]) +{ + // Usage: driver [-i ] [-s ] (-o )* (-e )* + // + int status (256); + int ifd (3); + + cout.exceptions (ostream::failbit | ostream::badbit); + cerr.exceptions (ostream::failbit | ostream::badbit); + + for (int i (1); i < argc; ++i) + { + string o (argv[i++]); + assert (i < argc); + + string v (argv[i]); + + auto toi = [] (const string& s) -> int + { + try + { + return stoi (s); + } + catch (const exception&) + { + assert (false); + } + }; + + if (o == "-i") + { + assert (ifd == 3); // Make sure is not set yet. + + ifd = toi (v); + assert (ifd >= 0 && ifd < 3); + + if (ifd == 0) + cin.ignore (numeric_limits::max ()); + else + (ifd == 1 ? cout : cerr) << cin.rdbuf (); + } + else if (o == "-o") + { + cout << v << endl; + } + else if (o == "-e") + { + cerr << v << endl; + } + else if (o == "-s") + { + assert (status == 256); // Make sure is not set yet. + + status = toi (v); + assert (status >= 0 && status < 256); + } + else + assert (false); + } + + return status == 256 ? 0 : status; +} diff --git a/tests/test/script/runner/testscript b/tests/test/script/runner/testscript new file mode 100644 index 0000000..4d5d3b3 --- /dev/null +++ b/tests/test/script/runner/testscript @@ -0,0 +1,72 @@ +$* +$* -i 0 foo +$* -o foo >- +$* -e foo 2>- + +$* -o foo -o bar >>EOO +foo +bar +EOO + +$* -i 1 <>EOO +foo +bar +EOI +foo +bar +EOO + +$* -i 2 <>EOE +foo +bar +EOI +foo +bar +EOE + +$* -i 2 -s 1 <>EOE != 0 +foo +bar +EOI +foo +bar +EOE + +$* -i 2 -o baz -s 10 <baz 2>>EOE == 10 +foo +bar +EOI +foo +bar +EOE + +# No-newline tests. +# +# @@ TMP Need does not compare test. +# +$* -i 1 <:"foo" >:"foo" # no-newline-str +#\ +$* -i 1 <:"foo" >!"foo" # no-newline-str-fail1 +$* -i 1 <"foo" >:!"foo" # no-newline-str-fail2 +#\ + +$* -i 1 <<:EOI >>:EOO # no-newline-doc +foo +EOI +foo +EOO + +#\ +$* -i 1 <<:EOI >>!EOO # no-newline-doc-fail1 +foo +EOI +foo +EOO + +$* -i 1 <>:!EOO # no-newline-doc-fail2 +foo +EOI +foo +EOO +#\ diff --git a/tests/test/script/testscript b/tests/test/script/testscript deleted file mode 100644 index 4d5d3b3..0000000 --- a/tests/test/script/testscript +++ /dev/null @@ -1,72 +0,0 @@ -$* -$* -i 0 foo -$* -o foo >- -$* -e foo 2>- - -$* -o foo -o bar >>EOO -foo -bar -EOO - -$* -i 1 <>EOO -foo -bar -EOI -foo -bar -EOO - -$* -i 2 <>EOE -foo -bar -EOI -foo -bar -EOE - -$* -i 2 -s 1 <>EOE != 0 -foo -bar -EOI -foo -bar -EOE - -$* -i 2 -o baz -s 10 <baz 2>>EOE == 10 -foo -bar -EOI -foo -bar -EOE - -# No-newline tests. -# -# @@ TMP Need does not compare test. -# -$* -i 1 <:"foo" >:"foo" # no-newline-str -#\ -$* -i 1 <:"foo" >!"foo" # no-newline-str-fail1 -$* -i 1 <"foo" >:!"foo" # no-newline-str-fail2 -#\ - -$* -i 1 <<:EOI >>:EOO # no-newline-doc -foo -EOI -foo -EOO - -#\ -$* -i 1 <<:EOI >>!EOO # no-newline-doc-fail1 -foo -EOI -foo -EOO - -$* -i 1 <>:!EOO # no-newline-doc-fail2 -foo -EOI -foo -EOO -#\ -- cgit v1.1