From 18235d8e5f37c0e65b5f1e3cacb6e3d27c3e05eb Mon Sep 17 00:00:00 2001 From: Karen Arutyunov Date: Fri, 28 Oct 2016 00:50:02 +0300 Subject: Add support of paths cleanups to testscript runner --- tests/test/script/runner/buildfile | 4 +++- tests/test/script/runner/cleanup.test | 10 ++++++++++ tests/test/script/runner/driver.cxx | 15 +++++++++++++++ 3 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 tests/test/script/runner/cleanup.test (limited to 'tests/test/script') 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 #include +#include +#include +#include + using namespace std; +using namespace butl; int main (int argc, char* argv[]) { // Usage: driver [-i ] [-s ] (-o )* (-e )* + // (-f )* (-d )* // 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); } -- cgit v1.1