about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--.travis.yml35
-rwxr-xr-xbuild_and_test_until2
-rw-r--r--subx/000organization.cc1
-rwxr-xr-xsubx/build_and_test_until4
-rwxr-xr-xsubx/test_layers8
5 files changed, 32 insertions, 18 deletions
diff --git a/.travis.yml b/.travis.yml
index 6cef88b2..e6e42ecf 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -14,25 +14,26 @@ addons:
 # matrix so we don't time out on Travis
 matrix:
   include:
-    - env: CXX=clang++ START=000 END=040
-    - env: CXX=clang++ START=040 END=055
-    - env: CXX=clang++ START=055 END=065
-    - env: CXX=clang++ START=065 END=070
-    - env: CXX=clang++ START=070 END=075
-    - env: CXX=clang++ START=075 END=080
-    - env: CXX=clang++ START=080 END=085
-    - env: CXX=clang++ START=085 END=090
-    - env: CXX=clang++ START=090 END=095
-    - env: CXX=clang++ START=095 END=999  # overflow; will start timing out if we add too many layers
-    - env: CXX=clang++ START=chessboard
-    - env: CXX=clang++ START=edit
-    - env: CXX=clang++ START=edit2
-    - env: CXX=clang++ START=edit3
-    - env: CXX=clang++ START=edit4
-    - env: CXX=g++ START=one-off  # minimal testing for gcc
+    - env: COMMAND=./test_layers CXX=clang++ START=000 END=040
+    - env: COMMAND=./test_layers CXX=clang++ START=040 END=055
+    - env: COMMAND=./test_layers CXX=clang++ START=055 END=065
+    - env: COMMAND=./test_layers CXX=clang++ START=065 END=070
+    - env: COMMAND=./test_layers CXX=clang++ START=070 END=075
+    - env: COMMAND=./test_layers CXX=clang++ START=075 END=080
+    - env: COMMAND=./test_layers CXX=clang++ START=080 END=085
+    - env: COMMAND=./test_layers CXX=clang++ START=085 END=090
+    - env: COMMAND=./test_layers CXX=clang++ START=090 END=095
+    - env: COMMAND=./test_layers CXX=clang++ START=095 END=999  # overflow; will start timing out if we add too many layers
+    - env: COMMAND=./test_layers CXX=clang++ START=chessboard
+    - env: COMMAND=./test_layers CXX=clang++ START=edit
+    - env: COMMAND=./test_layers CXX=clang++ START=edit2
+    - env: COMMAND=./test_layers CXX=clang++ START=edit3
+    - env: COMMAND=./test_layers CXX=clang++ START=edit4
+    - env: COMMAND=./test_layers CXX=g++ START=one-off  # minimal testing for gcc
+    - env: COMMAND=./subx/test_layers START= END=
 
 script:
-  - ./test_layers $START $END
+  - $COMMAND $START $END
 
 notifications:
   email:
diff --git a/build_and_test_until b/build_and_test_until
index 5ee372c3..3e353885 100755
--- a/build_and_test_until
+++ b/build_and_test_until
@@ -1,4 +1,4 @@
 #!/bin/sh
 
 ./clean top-level
-./build --until $1 && ./mu_bin test
+./build --until $1  &&  ./mu_bin test
diff --git a/subx/000organization.cc b/subx/000organization.cc
index 753ddca1..320c0d4b 100644
--- a/subx/000organization.cc
+++ b/subx/000organization.cc
@@ -129,6 +129,7 @@ int main(int argc, char* argv[]) {
 
 //: our first directive; insert the following header at the start of the program
 :(before "End Includes")
+#include <assert.h>
 #include <stdlib.h>
 
 //: Without directives or with the :(code) directive, lines get added at the
diff --git a/subx/build_and_test_until b/subx/build_and_test_until
new file mode 100755
index 00000000..25daac2d
--- /dev/null
+++ b/subx/build_and_test_until
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+./clean top-level  # ignore subsidiary tools like tangle and cleave
+./build --until $1  &&  ./subx_bin test
diff --git a/subx/test_layers b/subx/test_layers
new file mode 100755
index 00000000..60697b3c
--- /dev/null
+++ b/subx/test_layers
@@ -0,0 +1,8 @@
+#!/bin/bash
+# Repeatedly stop building until successive layers, and run all tests built.
+
+for f in [0-9]*
+do
+  echo "=== $f"
+  ./build_and_test_until $f  ||  exit 1
+done