aboutsummaryrefslogtreecommitdiff
path: root/tests/test/script/runner
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test/script/runner')
-rw-r--r--tests/test/script/runner/buildfile4
-rw-r--r--tests/test/script/runner/cleanup.test10
-rw-r--r--tests/test/script/runner/driver.cxx15
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);
}