diff options
Diffstat (limited to 'tests/test/script/runner')
-rw-r--r-- | tests/test/script/runner/buildfile | 4 | ||||
-rw-r--r-- | tests/test/script/runner/cleanup.test | 10 | ||||
-rw-r--r-- | tests/test/script/runner/driver.cxx | 15 |
3 files changed, 28 insertions, 1 deletions
diff --git a/tests/test/script/runner/buildfile b/tests/test/script/runner/buildfile index ddab8a5..e5f2761 100644 --- a/tests/test/script/runner/buildfile +++ b/tests/test/script/runner/buildfile @@ -2,6 +2,8 @@ # copyright : Copyright (c) 2014-2016 Code Synthesis Ltd # license : MIT; see accompanying LICENSE file -exe{driver}: cxx{driver} test{redirect status} +import libs = libbutl%lib{butl} + +exe{driver}: cxx{driver} $libs test{cleanup redirect status} include ../../../../../build2/ diff --git a/tests/test/script/runner/cleanup.test b/tests/test/script/runner/cleanup.test new file mode 100644 index 0000000..76cff63 --- /dev/null +++ b/tests/test/script/runner/cleanup.test @@ -0,0 +1,10 @@ +# file : tests/test/script/runner/cleanup.test +# copyright : Copyright (c) 2014-2016 Code Synthesis Ltd +# license : MIT; see accompanying LICENSE file + +$* -f a &a # file +$* -d a &a/ # dir1 +$* -d a/b &a/ &a/b/ # dir2 +$* -d a/b -f a/b/c &a/ &a/b/ &a/b/c # file-dir +$* -f a &a &a # file-dup +$* -d a/b &a/ &a/b/ &a/b/../b/ # dir-dup diff --git a/tests/test/script/runner/driver.cxx b/tests/test/script/runner/driver.cxx index fdada73..10d5857 100644 --- a/tests/test/script/runner/driver.cxx +++ b/tests/test/script/runner/driver.cxx @@ -10,12 +10,18 @@ #include <iostream> #include <exception> +#include <butl/path> +#include <butl/fdstream> +#include <butl/filesystem> + using namespace std; +using namespace butl; int main (int argc, char* argv[]) { // Usage: driver [-i <int>] [-s <int>] (-o <string>)* (-e <string>)* + // (-f <file>)* (-d <dir>)* // int status (256); int ifd (3); @@ -72,6 +78,15 @@ main (int argc, char* argv[]) status = toi (v); assert (status >= 0 && status < 256); } + else if (o == "-f") + { + ofdstream os (v); + os.close (); + } + else if (o == "-d") + { + try_mkdir_p (dir_path (v)); + } else assert (false); } |