chiark / gitweb /
generate: Introduce od
[subdirmk.git] / tests / example / check
index d5d282f..16cb7a2 100755 (executable)
@@ -1,34 +1,54 @@
 #!/bin/sh
 set -ex
 
-cd example
+. tests/build-common
 
-#----- in-tree build -----
+make_copy example
 
-git clean -xdff
-./autogen.sh && ./configure
-make -j4 all check
-make -j4 clean
-make -j4 all check
+cd tests/example/example
 
-#----- out of tree build -----
+----- out of tree build -----
 
-git clean -xdff
 mkdir build
 cd build
 >>../src/for-test.sd.mk
 >>../lib/for-test.mk.in
+>>../for-test-final.sd.mk
 .././autogen.sh && ../configure
 make -j4 all check
 
-#----- testing rebuild on input change -----
+: ----- testing rebuild on input change -----
+
+reset_times () {
+       cd ..
+
+       find ! -path './build/*' -type f -print0 \
+       | xargs -0 \
+       touch -hmd 'now -2000 seconds' --
+
+       cd build
+
+       find -type f -print0 \
+       | xargs -0 \
+       touch -hmd 'now -1000 seconds' --
+}
+
+: ----- for-check-1 -----
+reset_times
+echo 'for-check-1:' >>../src/for-test.sd.mk
+make -j4 for-check-1
+grep '^for-check-1:' src/Subdir.mk || false
 
-echo '# for-check 1' >>../src/for-test.sd.mk
-make -j4
-grep '^# for-check 1' src/Subdir.mk || false
+: ----- for-check-2 -----
+reset_times
+echo 'for-check-2:' >>../lib/for-test.mk.in
+make -j4 for-check-2
+grep '^for-check-2:' lib/for-test.mk || false
 
-echo '# for-check 2' >>../lib/for-test.mk.in
-make -j4
-grep '^# for-check 2' lib/for-test.mk || false
+: ----- for-check-3 -----
+reset_times
+echo 'for-check-3:' >>../for-test-final.sd.mk
+make -j4 for-check-3
+grep '^for-check-3:' Final.mk
 
 echo ok.