summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaren Arutyunov <karen@codesynthesis.com>2019-03-06 23:06:30 +0300
committerKaren Arutyunov <karen@codesynthesis.com>2019-03-08 16:42:31 +0300
commit77410b0cdde47219d6c6a36533fcb9354f17c3dd (patch)
tree703c39f3bc81792fabaf81769035f01a08cf6a2f
parent8ca10194e206a181797ffb7a73dd2deee12ac753 (diff)
downloadbuild2-77410b0cdde47219d6c6a36533fcb9354f17c3dd.tar.gz
build2-77410b0cdde47219d6c6a36533fcb9354f17c3dd.tar.xz
build2-77410b0cdde47219d6c6a36533fcb9354f17c3dd.zip
Use new setup for unit tests
-rw-r--r--build/root.build6
-rw-r--r--build2/.gitignore5
-rw-r--r--build2/buildfile24
-rw-r--r--build2/cc/lexer+char-literal.test.testscript (renamed from unit-tests/cc/lexer/char-literal.testscript)2
-rw-r--r--build2/cc/lexer+comment.test.testscript (renamed from unit-tests/cc/lexer/comment.testscript)2
-rw-r--r--build2/cc/lexer+line.test.testscript (renamed from unit-tests/cc/lexer/line.testscript)2
-rw-r--r--build2/cc/lexer+number.test.testscript (renamed from unit-tests/cc/lexer/number.testscript)2
-rw-r--r--build2/cc/lexer+preprocessor.test.testscript (renamed from unit-tests/cc/lexer/preprocessor.testscript)2
-rw-r--r--build2/cc/lexer+raw-string-literal.test.testscript (renamed from unit-tests/cc/lexer/raw-string-literal.testscript)2
-rw-r--r--build2/cc/lexer+string-literal.test.testscript (renamed from unit-tests/cc/lexer/string-literal.testscript)2
-rw-r--r--build2/cc/lexer.test.cxx (renamed from unit-tests/cc/lexer/driver.cxx)2
-rw-r--r--build2/cc/parser+module.test.testscript (renamed from unit-tests/cc/parser/module.testscript)2
-rw-r--r--build2/cc/parser.test.cxx (renamed from unit-tests/cc/parser/driver.cxx)2
-rw-r--r--build2/function+call.test.testscript (renamed from unit-tests/function/call.testscript)2
-rw-r--r--build2/function+syntax.test.testscript (renamed from unit-tests/function/syntax.testscript)2
-rw-r--r--build2/function.test.cxx (renamed from unit-tests/function/driver.cxx)2
-rw-r--r--build2/lexer+buildspec.test.testscript (renamed from unit-tests/lexer/buildspec.testscript)2
-rw-r--r--build2/lexer+comment.test.testscript (renamed from unit-tests/lexer/comment.testscript)2
-rw-r--r--build2/lexer+eval.test.testscript (renamed from unit-tests/lexer/eval.testscript)2
-rw-r--r--build2/lexer+quoting.test.testscript (renamed from unit-tests/lexer/quoting.testscript)2
-rw-r--r--build2/lexer.test.cxx (renamed from unit-tests/lexer/driver.cxx)2
-rw-r--r--build2/name.test.cxx (renamed from unit-tests/name/driver.cxx)2
-rw-r--r--build2/scheduler.test.cxx (renamed from unit-tests/scheduler/driver.cxx)2
-rw-r--r--build2/test/script/lexer+command-expansion.test.testscript (renamed from unit-tests/test/script/lexer/command-expansion.testscript)2
-rw-r--r--build2/test/script/lexer+command-line.test.testscript (renamed from unit-tests/test/script/lexer/command-line.testscript)2
-rw-r--r--build2/test/script/lexer+description-line.test.testscript (renamed from unit-tests/test/script/lexer/description-line.testscript)2
-rw-r--r--build2/test/script/lexer+first-token.test.testscript (renamed from unit-tests/test/script/lexer/first-token.testscript)2
-rw-r--r--build2/test/script/lexer+second-token.test.testscript (renamed from unit-tests/test/script/lexer/second-token.testscript)2
-rw-r--r--build2/test/script/lexer+variable-line.test.testscript (renamed from unit-tests/test/script/lexer/variable-line.testscript)2
-rw-r--r--build2/test/script/lexer+variable.test.testscript (renamed from unit-tests/test/script/lexer/variable.testscript)2
-rw-r--r--build2/test/script/lexer.test.cxx (renamed from unit-tests/test/script/lexer/driver.cxx)2
-rw-r--r--build2/test/script/parser+cleanup.test.testscript (renamed from unit-tests/test/script/parser/cleanup.testscript)2
-rw-r--r--build2/test/script/parser+command-if.test.testscript (renamed from unit-tests/test/script/parser/command-if.testscript)2
-rw-r--r--build2/test/script/parser+command-re-parse.test.testscript (renamed from unit-tests/test/script/parser/command-re-parse.testscript)2
-rw-r--r--build2/test/script/parser+description.test.testscript (renamed from unit-tests/test/script/parser/description.testscript)2
-rw-r--r--build2/test/script/parser+directive.test.testscript (renamed from unit-tests/test/script/parser/directive.testscript)2
-rw-r--r--build2/test/script/parser+exit.test.testscript (renamed from unit-tests/test/script/parser/exit.testscript)2
-rw-r--r--build2/test/script/parser+expansion.test.testscript (renamed from unit-tests/test/script/parser/expansion.testscript)2
-rw-r--r--build2/test/script/parser+here-document.test.testscript (renamed from unit-tests/test/script/parser/here-document.testscript)2
-rw-r--r--build2/test/script/parser+here-string.test.testscript (renamed from unit-tests/test/script/parser/here-string.testscript)2
-rw-r--r--build2/test/script/parser+include.test.testscript (renamed from unit-tests/test/script/parser/include.testscript)2
-rw-r--r--build2/test/script/parser+pipe-expr.test.testscript (renamed from unit-tests/test/script/parser/pipe-expr.testscript)2
-rw-r--r--build2/test/script/parser+pre-parse.test.testscript (renamed from unit-tests/test/script/parser/pre-parse.testscript)2
-rw-r--r--build2/test/script/parser+redirect.test.testscript (renamed from unit-tests/test/script/parser/redirect.testscript)2
-rw-r--r--build2/test/script/parser+regex.test.testscript (renamed from unit-tests/test/script/parser/regex.testscript)2
-rw-r--r--build2/test/script/parser+scope-if.test.testscript (renamed from unit-tests/test/script/parser/scope-if.testscript)2
-rw-r--r--build2/test/script/parser+scope.test.testscript (renamed from unit-tests/test/script/parser/scope.testscript)2
-rw-r--r--build2/test/script/parser+setup-teardown.test.testscript (renamed from unit-tests/test/script/parser/setup-teardown.testscript)2
-rw-r--r--build2/test/script/parser.test.cxx (renamed from unit-tests/test/script/parser/driver.cxx)2
-rw-r--r--build2/test/script/regex.test.cxx (renamed from unit-tests/test/script/regex/driver.cxx)2
-rw-r--r--buildfile1
-rw-r--r--unit-tests/.gitignore6
-rw-r--r--unit-tests/cc/lexer/buildfile6
-rw-r--r--unit-tests/cc/parser/buildfile6
-rw-r--r--unit-tests/function/buildfile6
-rw-r--r--unit-tests/lexer/buildfile6
-rw-r--r--unit-tests/name/buildfile6
-rw-r--r--unit-tests/scheduler/buildfile6
-rw-r--r--unit-tests/test/script/lexer/buildfile6
-rw-r--r--unit-tests/test/script/parser/buildfile6
-rw-r--r--unit-tests/test/script/regex/buildfile6
61 files changed, 73 insertions, 117 deletions
diff --git a/build/root.build b/build/root.build
index 66404076..03e3fe60 100644
--- a/build/root.build
+++ b/build/root.build
@@ -34,12 +34,6 @@ using c
#
using? cli
-# All exe{} in unit-tests/ are, well, tests. Also don't link whole archives
-# by default there.
-#
-unit-tests/exe{*}: test = true
-unit-tests/libu{*}: bin.whole = false
-
# Specify the test target for cross-testing.
#
test.target = $cxx.target
diff --git a/build2/.gitignore b/build2/.gitignore
index 5ea39137..51b4c16a 100644
--- a/build2/.gitignore
+++ b/build2/.gitignore
@@ -1,6 +1,11 @@
b
b-boot
+*.test
#*-options
#*-options.?xx
config.hxx
version.hxx
+
+# Testscript output directory (can be symlink).
+#
+test-*.test
diff --git a/build2/buildfile b/build2/buildfile
index bd730c38..64935f34 100644
--- a/build2/buildfile
+++ b/build2/buildfile
@@ -5,15 +5,33 @@
import libs = libbutl%lib{butl}
import libs += libpkgconf%lib{pkgconf}
-exe{b}: cxx{b} libue{b}
+./: exe{b}: cxx{b} libue{b}
-libue{b}: {hxx ixx txx cxx}{** -b -b-options -config -version} \
- {hxx ixx cxx}{b-options} {hxx}{config version} \
+libue{b}: {hxx ixx txx cxx}{** -b -b-options -config -version -**.test...} \
+ {hxx ixx cxx}{b-options} {hxx}{config version} \
$libs
hxx{config}: in{config}
hxx{version}: in{version} $src_root/manifest
+# Unit tests.
+#
+exe{*.test}:
+{
+ test = true
+ install = false
+}
+
+for t: cxx{**.test...}
+{
+ d = $directory($t)
+ n = $name($t)...
+ b = $path.base($name($t))
+
+ ./: $d/exe{$n}: $t $d/{hxx ixx txx}{+$n} $d/testscript{+$n +$b+*.test...}
+ $d/exe{$n}: libue{b}: bin.whole = false
+}
+
# Build options.
#
# Pass our compiler target to be used as build2 host.
diff --git a/unit-tests/cc/lexer/char-literal.testscript b/build2/cc/lexer+char-literal.test.testscript
index cbcb462f..6a0a0364 100644
--- a/unit-tests/cc/lexer/char-literal.testscript
+++ b/build2/cc/lexer+char-literal.test.testscript
@@ -1,4 +1,4 @@
-# file : unit-tests/cc/lexer/char-literal.testscript
+# file : build2/cc/lexer+char-literal.test.testscript
# copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
# license : MIT; see accompanying LICENSE file
diff --git a/unit-tests/cc/lexer/comment.testscript b/build2/cc/lexer+comment.test.testscript
index 347c2e72..493c2959 100644
--- a/unit-tests/cc/lexer/comment.testscript
+++ b/build2/cc/lexer+comment.test.testscript
@@ -1,4 +1,4 @@
-# file : unit-tests/cc/lexer/comment.testscript
+# file : build2/cc/lexer+comment.test.testscript
# copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
# license : MIT; see accompanying LICENSE file
diff --git a/unit-tests/cc/lexer/line.testscript b/build2/cc/lexer+line.test.testscript
index 9dcd7e38..abcc5879 100644
--- a/unit-tests/cc/lexer/line.testscript
+++ b/build2/cc/lexer+line.test.testscript
@@ -1,4 +1,4 @@
-# file : unit-tests/cc/lexer/line.testscript
+# file : build2/cc/lexer+line.test.testscript
# copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
# license : MIT; see accompanying LICENSE file
diff --git a/unit-tests/cc/lexer/number.testscript b/build2/cc/lexer+number.test.testscript
index 0b4c888c..c3428185 100644
--- a/unit-tests/cc/lexer/number.testscript
+++ b/build2/cc/lexer+number.test.testscript
@@ -1,4 +1,4 @@
-# file : unit-tests/cc/lexer/number.testscript
+# file : build2/cc/lexer+number.test.testscript
# copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
# license : MIT; see accompanying LICENSE file
diff --git a/unit-tests/cc/lexer/preprocessor.testscript b/build2/cc/lexer+preprocessor.test.testscript
index e8261445..fc061cb9 100644
--- a/unit-tests/cc/lexer/preprocessor.testscript
+++ b/build2/cc/lexer+preprocessor.test.testscript
@@ -1,4 +1,4 @@
-# file : unit-tests/cc/lexer/preprocessor.testscript
+# file : build2/cc/lexer+preprocessor.test.testscript
# copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
# license : MIT; see accompanying LICENSE file
diff --git a/unit-tests/cc/lexer/raw-string-literal.testscript b/build2/cc/lexer+raw-string-literal.test.testscript
index 4ab08f78..e72d77b2 100644
--- a/unit-tests/cc/lexer/raw-string-literal.testscript
+++ b/build2/cc/lexer+raw-string-literal.test.testscript
@@ -1,4 +1,4 @@
-# file : unit-tests/cc/lexer/raw-string-literal.testscript
+# file : build2/cc/lexer+raw-string-literal.test.testscript
# copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
# license : MIT; see accompanying LICENSE file
diff --git a/unit-tests/cc/lexer/string-literal.testscript b/build2/cc/lexer+string-literal.test.testscript
index db3798f5..c486aa10 100644
--- a/unit-tests/cc/lexer/string-literal.testscript
+++ b/build2/cc/lexer+string-literal.test.testscript
@@ -1,4 +1,4 @@
-# file : unit-tests/cc/lexer/string-literal.testscript
+# file : build2/cc/lexer+string-literal.test.testscript
# copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
# license : MIT; see accompanying LICENSE file
diff --git a/unit-tests/cc/lexer/driver.cxx b/build2/cc/lexer.test.cxx
index ebbb9ab9..a2e33b7a 100644
--- a/unit-tests/cc/lexer/driver.cxx
+++ b/build2/cc/lexer.test.cxx
@@ -1,4 +1,4 @@
-// file : unit-tests/cc/lexer/driver.cxx -*- C++ -*-
+// file : build2/cc/lexer.test.cxx -*- C++ -*-
// copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
// license : MIT; see accompanying LICENSE file
diff --git a/unit-tests/cc/parser/module.testscript b/build2/cc/parser+module.test.testscript
index dc7f3e4c..0e2e52eb 100644
--- a/unit-tests/cc/parser/module.testscript
+++ b/build2/cc/parser+module.test.testscript
@@ -1,4 +1,4 @@
-# file : unit-tests/cc/parser/module.testscript
+# file : build2/cc/parser+module.test.testscript
# copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
# license : MIT; see accompanying LICENSE file
diff --git a/unit-tests/cc/parser/driver.cxx b/build2/cc/parser.test.cxx
index 19a2133c..ab42e310 100644
--- a/unit-tests/cc/parser/driver.cxx
+++ b/build2/cc/parser.test.cxx
@@ -1,4 +1,4 @@
-// file : unit-tests/cc/parser/driver.cxx -*- C++ -*-
+// file : build2/cc/parser.test.cxx -*- C++ -*-
// copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
// license : MIT; see accompanying LICENSE file
diff --git a/unit-tests/function/call.testscript b/build2/function+call.test.testscript
index 36234a10..1678c284 100644
--- a/unit-tests/function/call.testscript
+++ b/build2/function+call.test.testscript
@@ -1,4 +1,4 @@
-# file : unit-tests/function/call.testscript
+# file : build2/function+call.test.testscript
# copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
# license : MIT; see accompanying LICENSE file
diff --git a/unit-tests/function/syntax.testscript b/build2/function+syntax.test.testscript
index 6af5f7e1..bd86dd0a 100644
--- a/unit-tests/function/syntax.testscript
+++ b/build2/function+syntax.test.testscript
@@ -1,4 +1,4 @@
-# file : unit-tests/function/syntax.testscript
+# file : build2/function+syntax.test.testscript
# copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
# license : MIT; see accompanying LICENSE file
diff --git a/unit-tests/function/driver.cxx b/build2/function.test.cxx
index 0e128e72..a9ba7bbc 100644
--- a/unit-tests/function/driver.cxx
+++ b/build2/function.test.cxx
@@ -1,4 +1,4 @@
-// file : unit-tests/function/driver.cxx -*- C++ -*-
+// file : build2/function.test.cxx -*- C++ -*-
// copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
// license : MIT; see accompanying LICENSE file
diff --git a/unit-tests/lexer/buildspec.testscript b/build2/lexer+buildspec.test.testscript
index 71568aee..9083abe2 100644
--- a/unit-tests/lexer/buildspec.testscript
+++ b/build2/lexer+buildspec.test.testscript
@@ -1,4 +1,4 @@
-# file : unit-tests/lexer/buildspec.testscript
+# file : build2/lexer+buildspec.test.testscript
# copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
# license : MIT; see accompanying LICENSE file
diff --git a/unit-tests/lexer/comment.testscript b/build2/lexer+comment.test.testscript
index 44e18669..4323c845 100644
--- a/unit-tests/lexer/comment.testscript
+++ b/build2/lexer+comment.test.testscript
@@ -1,4 +1,4 @@
-# file : unit-tests/lexer/comment.testscript
+# file : build2/lexer+comment.test.testscript
# copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
# license : MIT; see accompanying LICENSE file
diff --git a/unit-tests/lexer/eval.testscript b/build2/lexer+eval.test.testscript
index 67687567..eccd0291 100644
--- a/unit-tests/lexer/eval.testscript
+++ b/build2/lexer+eval.test.testscript
@@ -1,4 +1,4 @@
-# file : unit-tests/lexer/eval.testscript
+# file : build2/lexer+eval.test.testscript
# copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
# license : MIT; see accompanying LICENSE file
diff --git a/unit-tests/lexer/quoting.testscript b/build2/lexer+quoting.test.testscript
index e9767f2d..21b9046f 100644
--- a/unit-tests/lexer/quoting.testscript
+++ b/build2/lexer+quoting.test.testscript
@@ -1,4 +1,4 @@
-# file : unit-tests/lexer/quoting.testscript
+# file : build2/lexer+quoting.test.testscript
# copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
# license : MIT; see accompanying LICENSE file
diff --git a/unit-tests/lexer/driver.cxx b/build2/lexer.test.cxx
index a5cdb8d2..8abd5f7d 100644
--- a/unit-tests/lexer/driver.cxx
+++ b/build2/lexer.test.cxx
@@ -1,4 +1,4 @@
-// file : unit-tests/lexer/driver.cxx -*- C++ -*-
+// file : build2/lexer.test.cxx -*- C++ -*-
// copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
// license : MIT; see accompanying LICENSE file
diff --git a/unit-tests/name/driver.cxx b/build2/name.test.cxx
index 69d3e2dc..0434aace 100644
--- a/unit-tests/name/driver.cxx
+++ b/build2/name.test.cxx
@@ -1,4 +1,4 @@
-// file : unit-tests/name/driver.cxx -*- C++ -*-
+// file : build2/name.test.cxx -*- C++ -*-
// copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
// license : MIT; see accompanying LICENSE file
diff --git a/unit-tests/scheduler/driver.cxx b/build2/scheduler.test.cxx
index 5f035231..b088c1d3 100644
--- a/unit-tests/scheduler/driver.cxx
+++ b/build2/scheduler.test.cxx
@@ -1,4 +1,4 @@
-// file : unit-tests/scheduler/driver.cxx -*- C++ -*-
+// file : build2/scheduler.test.cxx -*- C++ -*-
// copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
// license : MIT; see accompanying LICENSE file
diff --git a/unit-tests/test/script/lexer/command-expansion.testscript b/build2/test/script/lexer+command-expansion.test.testscript
index 581e13c1..03e3366c 100644
--- a/unit-tests/test/script/lexer/command-expansion.testscript
+++ b/build2/test/script/lexer+command-expansion.test.testscript
@@ -1,4 +1,4 @@
-# file : unit-tests/test/script/lexer/command-expansion.testscript
+# file : build2/test/script/lexer+command-expansion.test.testscript
# copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
# license : MIT; see accompanying LICENSE file
diff --git a/unit-tests/test/script/lexer/command-line.testscript b/build2/test/script/lexer+command-line.test.testscript
index 55344b3f..65be837a 100644
--- a/unit-tests/test/script/lexer/command-line.testscript
+++ b/build2/test/script/lexer+command-line.test.testscript
@@ -1,4 +1,4 @@
-# file : unit-tests/test/script/lexer/command-line.testscript
+# file : build2/test/script/lexer+command-line.test.testscript
# copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
# license : MIT; see accompanying LICENSE file
diff --git a/unit-tests/test/script/lexer/description-line.testscript b/build2/test/script/lexer+description-line.test.testscript
index dc9fd9c8..2d87d24f 100644
--- a/unit-tests/test/script/lexer/description-line.testscript
+++ b/build2/test/script/lexer+description-line.test.testscript
@@ -1,4 +1,4 @@
-# file : unit-tests/test/script/lexer/description-line.testscript
+# file : build2/test/script/lexer+description-line.test.testscript
# copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
# license : MIT; see accompanying LICENSE file
diff --git a/unit-tests/test/script/lexer/first-token.testscript b/build2/test/script/lexer+first-token.test.testscript
index 45cb085c..f20f2616 100644
--- a/unit-tests/test/script/lexer/first-token.testscript
+++ b/build2/test/script/lexer+first-token.test.testscript
@@ -1,4 +1,4 @@
-# file : unit-tests/test/script/lexer/first-token.testscript
+# file : build2/test/script/lexer+first-token.test.testscript
# copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
# license : MIT; see accompanying LICENSE file
diff --git a/unit-tests/test/script/lexer/second-token.testscript b/build2/test/script/lexer+second-token.test.testscript
index e6a72d38..8fdee232 100644
--- a/unit-tests/test/script/lexer/second-token.testscript
+++ b/build2/test/script/lexer+second-token.test.testscript
@@ -1,4 +1,4 @@
-# file : unit-tests/test/script/lexer/second-token.testscript
+# file : build2/test/script/lexer+second-token.test.testscript
# copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
# license : MIT; see accompanying LICENSE file
diff --git a/unit-tests/test/script/lexer/variable-line.testscript b/build2/test/script/lexer+variable-line.test.testscript
index ffbcefb6..b9c558df 100644
--- a/unit-tests/test/script/lexer/variable-line.testscript
+++ b/build2/test/script/lexer+variable-line.test.testscript
@@ -1,4 +1,4 @@
-# file : unit-tests/test/script/lexer/variable-line.testscript
+# file : build2/test/script/lexer+variable-line.test.testscript
# copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
# license : MIT; see accompanying LICENSE file
diff --git a/unit-tests/test/script/lexer/variable.testscript b/build2/test/script/lexer+variable.test.testscript
index 243a9c4a..0ec323b8 100644
--- a/unit-tests/test/script/lexer/variable.testscript
+++ b/build2/test/script/lexer+variable.test.testscript
@@ -1,4 +1,4 @@
-# file : unit-tests/test/script/lexer/variable.testscript
+# file : build2/test/script/lexer+variable.test.testscript
# copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
# license : MIT; see accompanying LICENSE file
diff --git a/unit-tests/test/script/lexer/driver.cxx b/build2/test/script/lexer.test.cxx
index 14d142c9..56418b72 100644
--- a/unit-tests/test/script/lexer/driver.cxx
+++ b/build2/test/script/lexer.test.cxx
@@ -1,4 +1,4 @@
-// file : unit-tests/test/script/lexer/driver.cxx -*- C++ -*-
+// file : build2/test/script/lexer.test.cxx -*- C++ -*-
// copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
// license : MIT; see accompanying LICENSE file
diff --git a/unit-tests/test/script/parser/cleanup.testscript b/build2/test/script/parser+cleanup.test.testscript
index 962fea00..2c94afce 100644
--- a/unit-tests/test/script/parser/cleanup.testscript
+++ b/build2/test/script/parser+cleanup.test.testscript
@@ -1,4 +1,4 @@
-# file : unit-tests/test/script/parser/cleanup.testscript
+# file : build2/test/script/parser+cleanup.test.testscript
# copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
# license : MIT; see accompanying LICENSE file
diff --git a/unit-tests/test/script/parser/command-if.testscript b/build2/test/script/parser+command-if.test.testscript
index 274e81e6..ab6e6d5a 100644
--- a/unit-tests/test/script/parser/command-if.testscript
+++ b/build2/test/script/parser+command-if.test.testscript
@@ -1,4 +1,4 @@
-# file : unit-tests/test/script/parser/command-if.testscript
+# file : build2/test/script/parser+command-if.test.testscript
# copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
# license : MIT; see accompanying LICENSE file
diff --git a/unit-tests/test/script/parser/command-re-parse.testscript b/build2/test/script/parser+command-re-parse.test.testscript
index 62a1c7bc..ef030de9 100644
--- a/unit-tests/test/script/parser/command-re-parse.testscript
+++ b/build2/test/script/parser+command-re-parse.test.testscript
@@ -1,4 +1,4 @@
-# file : unit-tests/test/script/parser/command-re-parse.testscript
+# file : build2/test/script/parser+command-re-parse.test.testscript
# copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
# license : MIT; see accompanying LICENSE file
diff --git a/unit-tests/test/script/parser/description.testscript b/build2/test/script/parser+description.test.testscript
index 20e6ec0c..7d840c3e 100644
--- a/unit-tests/test/script/parser/description.testscript
+++ b/build2/test/script/parser+description.test.testscript
@@ -1,4 +1,4 @@
-# file : unit-tests/test/script/parser/description.testscript
+# file : build2/test/script/parser+description.test.testscript
# copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
# license : MIT; see accompanying LICENSE file
diff --git a/unit-tests/test/script/parser/directive.testscript b/build2/test/script/parser+directive.test.testscript
index 0fc0b7aa..addd8749 100644
--- a/unit-tests/test/script/parser/directive.testscript
+++ b/build2/test/script/parser+directive.test.testscript
@@ -1,4 +1,4 @@
-# file : unit-tests/test/script/parser/directive.testscript
+# file : build2/test/script/parser+directive.test.testscript
# copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
# license : MIT; see accompanying LICENSE file
diff --git a/unit-tests/test/script/parser/exit.testscript b/build2/test/script/parser+exit.test.testscript
index 75867d64..014afa40 100644
--- a/unit-tests/test/script/parser/exit.testscript
+++ b/build2/test/script/parser+exit.test.testscript
@@ -1,4 +1,4 @@
-# file : unit-tests/test/script/parser/exit.testscript
+# file : build2/test/script/parser+exit.test.testscript
# copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
# license : MIT; see accompanying LICENSE file
diff --git a/unit-tests/test/script/parser/expansion.testscript b/build2/test/script/parser+expansion.test.testscript
index ea952af9..71a21b32 100644
--- a/unit-tests/test/script/parser/expansion.testscript
+++ b/build2/test/script/parser+expansion.test.testscript
@@ -1,4 +1,4 @@
-# file : unit-tests/test/script/parser/expansion.testscript
+# file : build2/test/script/parser+expansion.test.testscript
# copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
# license : MIT; see accompanying LICENSE file
diff --git a/unit-tests/test/script/parser/here-document.testscript b/build2/test/script/parser+here-document.test.testscript
index de6255e1..5e99a266 100644
--- a/unit-tests/test/script/parser/here-document.testscript
+++ b/build2/test/script/parser+here-document.test.testscript
@@ -1,4 +1,4 @@
-# file : unit-tests/test/script/parser/here-document.testscript
+# file : build2/test/script/parser+here-document.test.testscript
# copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
# license : MIT; see accompanying LICENSE file
diff --git a/unit-tests/test/script/parser/here-string.testscript b/build2/test/script/parser+here-string.test.testscript
index 012162cd..16544df2 100644
--- a/unit-tests/test/script/parser/here-string.testscript
+++ b/build2/test/script/parser+here-string.test.testscript
@@ -1,4 +1,4 @@
-# file : unit-tests/test/script/parser/here-string.testscript
+# file : build2/test/script/parser+here-string.test.testscript
# copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
# license : MIT; see accompanying LICENSE file
diff --git a/unit-tests/test/script/parser/include.testscript b/build2/test/script/parser+include.test.testscript
index c5241a1b..65be1493 100644
--- a/unit-tests/test/script/parser/include.testscript
+++ b/build2/test/script/parser+include.test.testscript
@@ -1,4 +1,4 @@
-# file : unit-tests/test/script/parser/include.testscript
+# file : build2/test/script/parser+include.test.testscript
# copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
# license : MIT; see accompanying LICENSE file
diff --git a/unit-tests/test/script/parser/pipe-expr.testscript b/build2/test/script/parser+pipe-expr.test.testscript
index a66a4aca..18eb660f 100644
--- a/unit-tests/test/script/parser/pipe-expr.testscript
+++ b/build2/test/script/parser+pipe-expr.test.testscript
@@ -1,4 +1,4 @@
-# file : unit-tests/test/script/parser/pipe-expr.testscript
+# file : build2/test/script/parser+pipe-expr.test.testscript
# copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
# license : MIT; see accompanying LICENSE file
diff --git a/unit-tests/test/script/parser/pre-parse.testscript b/build2/test/script/parser+pre-parse.test.testscript
index 1afd5669..7d9eb6c5 100644
--- a/unit-tests/test/script/parser/pre-parse.testscript
+++ b/build2/test/script/parser+pre-parse.test.testscript
@@ -1,4 +1,4 @@
-# file : unit-tests/test/script/parser/pre-parse.testscript
+# file : build2/test/script/parser+pre-parse.test.testscript
# copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
# license : MIT; see accompanying LICENSE file
diff --git a/unit-tests/test/script/parser/redirect.testscript b/build2/test/script/parser+redirect.test.testscript
index 09074cda..b0b967a0 100644
--- a/unit-tests/test/script/parser/redirect.testscript
+++ b/build2/test/script/parser+redirect.test.testscript
@@ -1,4 +1,4 @@
-# file : unit-tests/test/script/parser/redirect.testscript
+# file : build2/test/script/parser+redirect.test.testscript
# copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
# license : MIT; see accompanying LICENSE file
diff --git a/unit-tests/test/script/parser/regex.testscript b/build2/test/script/parser+regex.test.testscript
index 216c0c45..031492ed 100644
--- a/unit-tests/test/script/parser/regex.testscript
+++ b/build2/test/script/parser+regex.test.testscript
@@ -1,4 +1,4 @@
-# file : unit-tests/test/script/parser/regex.testscript
+# file : build2/test/script/parser+regex.test.testscript
# copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
# license : MIT; see accompanying LICENSE file
diff --git a/unit-tests/test/script/parser/scope-if.testscript b/build2/test/script/parser+scope-if.test.testscript
index 461d9028..faae297f 100644
--- a/unit-tests/test/script/parser/scope-if.testscript
+++ b/build2/test/script/parser+scope-if.test.testscript
@@ -1,4 +1,4 @@
-# file : unit-tests/test/script/parser/scope-if.testscript
+# file : build2/test/script/parser+scope-if.test.testscript
# copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
# license : MIT; see accompanying LICENSE file
diff --git a/unit-tests/test/script/parser/scope.testscript b/build2/test/script/parser+scope.test.testscript
index cc254e9c..9147161d 100644
--- a/unit-tests/test/script/parser/scope.testscript
+++ b/build2/test/script/parser+scope.test.testscript
@@ -1,4 +1,4 @@
-# file : unit-tests/test/script/parser/scope.testscript
+# file : build2/test/script/parser+scope.test.testscript
# copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
# license : MIT; see accompanying LICENSE file
diff --git a/unit-tests/test/script/parser/setup-teardown.testscript b/build2/test/script/parser+setup-teardown.test.testscript
index 0342e732..9d673099 100644
--- a/unit-tests/test/script/parser/setup-teardown.testscript
+++ b/build2/test/script/parser+setup-teardown.test.testscript
@@ -1,4 +1,4 @@
-# file : unit-tests/test/script/parser/setup-teardown.testscript
+# file : build2/test/script/parser+setup-teardown.test.testscript
# copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
# license : MIT; see accompanying LICENSE file
diff --git a/unit-tests/test/script/parser/driver.cxx b/build2/test/script/parser.test.cxx
index d17c76b3..1862f985 100644
--- a/unit-tests/test/script/parser/driver.cxx
+++ b/build2/test/script/parser.test.cxx
@@ -1,4 +1,4 @@
-// file : unit-tests/test/script/parser/driver.cxx -*- C++ -*-
+// file : build2/test/script/parser.test.cxx -*- C++ -*-
// copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
// license : MIT; see accompanying LICENSE file
diff --git a/unit-tests/test/script/regex/driver.cxx b/build2/test/script/regex.test.cxx
index cc7a2be1..7b89e4dc 100644
--- a/unit-tests/test/script/regex/driver.cxx
+++ b/build2/test/script/regex.test.cxx
@@ -1,4 +1,4 @@
-// file : unit-tests/test/script/regex/driver.cxx -*- C++ -*-
+// file : build2/test/script/regex.test.cxx -*- C++ -*-
// copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
// license : MIT; see accompanying LICENSE file
diff --git a/buildfile b/buildfile
index 5828d9da..fa231904 100644
--- a/buildfile
+++ b/buildfile
@@ -9,5 +9,4 @@
# Don't install tests or the INSTALL file.
#
tests/: install = false
-unit-tests/: install = false
doc{INSTALL}@./: install = false
diff --git a/unit-tests/.gitignore b/unit-tests/.gitignore
deleted file mode 100644
index ababe77e..00000000
--- a/unit-tests/.gitignore
+++ /dev/null
@@ -1,6 +0,0 @@
-driver
-
-# The immediate test/ sub-directory shouldn't be ignored.
-#
-*/**/test/
-test-*/
diff --git a/unit-tests/cc/lexer/buildfile b/unit-tests/cc/lexer/buildfile
deleted file mode 100644
index 4eaef440..00000000
--- a/unit-tests/cc/lexer/buildfile
+++ /dev/null
@@ -1,6 +0,0 @@
-# file : unit-tests/cc/lexer/buildfile
-# copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
-# license : MIT; see accompanying LICENSE file
-
-include ../../../build2/
-exe{driver}: {hxx cxx}{*} ../../../build2/libue{b} testscript{*}
diff --git a/unit-tests/cc/parser/buildfile b/unit-tests/cc/parser/buildfile
deleted file mode 100644
index d9e3e282..00000000
--- a/unit-tests/cc/parser/buildfile
+++ /dev/null
@@ -1,6 +0,0 @@
-# file : unit-tests/cc/parser/buildfile
-# copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
-# license : MIT; see accompanying LICENSE file
-
-include ../../../build2/
-exe{driver}: {hxx cxx}{*} ../../../build2/libue{b} testscript{*}
diff --git a/unit-tests/function/buildfile b/unit-tests/function/buildfile
deleted file mode 100644
index 68dae026..00000000
--- a/unit-tests/function/buildfile
+++ /dev/null
@@ -1,6 +0,0 @@
-# file : unit-tests/function/buildfile
-# copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
-# license : MIT; see accompanying LICENSE file
-
-include ../../build2/
-exe{driver}: {hxx cxx}{*} ../../build2/libue{b} testscript{*}
diff --git a/unit-tests/lexer/buildfile b/unit-tests/lexer/buildfile
deleted file mode 100644
index b7cc4c6e..00000000
--- a/unit-tests/lexer/buildfile
+++ /dev/null
@@ -1,6 +0,0 @@
-# file : unit-tests/lexer/buildfile
-# copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
-# license : MIT; see accompanying LICENSE file
-
-include ../../build2/
-exe{driver}: {hxx cxx}{*} ../../build2/libue{b} testscript{*}
diff --git a/unit-tests/name/buildfile b/unit-tests/name/buildfile
deleted file mode 100644
index dfd729e9..00000000
--- a/unit-tests/name/buildfile
+++ /dev/null
@@ -1,6 +0,0 @@
-# file : unit-tests/name/buildfile
-# copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
-# license : MIT; see accompanying LICENSE file
-
-include ../../build2/
-exe{driver}: {hxx cxx}{*} ../../build2/libue{b}
diff --git a/unit-tests/scheduler/buildfile b/unit-tests/scheduler/buildfile
deleted file mode 100644
index c666bb14..00000000
--- a/unit-tests/scheduler/buildfile
+++ /dev/null
@@ -1,6 +0,0 @@
-# file : unit-tests/scheduler/buildfile
-# copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
-# license : MIT; see accompanying LICENSE file
-
-include ../../build2/
-exe{driver}: {hxx cxx}{*} ../../build2/libue{b}
diff --git a/unit-tests/test/script/lexer/buildfile b/unit-tests/test/script/lexer/buildfile
deleted file mode 100644
index 190d5864..00000000
--- a/unit-tests/test/script/lexer/buildfile
+++ /dev/null
@@ -1,6 +0,0 @@
-# file : unit-tests/test/script/lexer/buildfile
-# copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
-# license : MIT; see accompanying LICENSE file
-
-include ../../../../build2/
-exe{driver}: {hxx cxx}{*} ../../../../build2/libue{b} testscript{*}
diff --git a/unit-tests/test/script/parser/buildfile b/unit-tests/test/script/parser/buildfile
deleted file mode 100644
index 952ec7ad..00000000
--- a/unit-tests/test/script/parser/buildfile
+++ /dev/null
@@ -1,6 +0,0 @@
-# file : unit-tests/test/script/parser/buildfile
-# copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
-# license : MIT; see accompanying LICENSE file
-
-include ../../../../build2/
-exe{driver}: {hxx cxx}{*} ../../../../build2/libue{b} testscript{*}
diff --git a/unit-tests/test/script/regex/buildfile b/unit-tests/test/script/regex/buildfile
deleted file mode 100644
index eb5394e1..00000000
--- a/unit-tests/test/script/regex/buildfile
+++ /dev/null
@@ -1,6 +0,0 @@
-# file : unit-tests/test/script/regex/buildfile
-# copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
-# license : MIT; see accompanying LICENSE file
-
-include ../../../../build2/
-exe{driver}: {hxx cxx}{*} ../../../../build2/libue{b}