diff options
Diffstat (limited to 'tests/recipe/buildscript')
-rw-r--r-- | tests/recipe/buildscript/buildfile | 4 | ||||
-rw-r--r-- | tests/recipe/buildscript/testscript | 96 |
2 files changed, 100 insertions, 0 deletions
diff --git a/tests/recipe/buildscript/buildfile b/tests/recipe/buildscript/buildfile new file mode 100644 index 0000000..17c91a3 --- /dev/null +++ b/tests/recipe/buildscript/buildfile @@ -0,0 +1,4 @@ +# file : tests/recipe/buildscript/buildfile +# license : MIT; see accompanying LICENSE file + +./: testscript $b diff --git a/tests/recipe/buildscript/testscript b/tests/recipe/buildscript/testscript new file mode 100644 index 0000000..4ea1ee6 --- /dev/null +++ b/tests/recipe/buildscript/testscript @@ -0,0 +1,96 @@ +# file : tests/recipe/buildscript/testscript +# license : MIT; see accompanying LICENSE file + ++mkdir build ++cat <<EOI >=build/bootstrap.build + project = test + amalgamation = + subprojects = + + using config + using test + EOI + ++cat <<EOI >=build/root.build + using cxx + EOI + +test.options += config.cxx=$quote($recall($cxx.path) $cxx.mode, true) + +: update +: +{ + echo 'bar' >=bar; + + cat <<EOI >=buildfile; + ./: foo + + foo: bar + {{ + cp $path($<) $path($>) + }} + EOI + + $* 2>'cp file{foo}'; + + cat <<<foo >'bar'; + + # While at it, make sure there is no rebuild. + # + $* 2>/'info: dir{./} is up to date'; + + $* clean 2>- +} + +: clean +: +{ + echo 'bar' >=bar; + + cat <<EOI >=buildfile; + ./: foo + + foo: bar + {{ + cp $path($<) $path($>) + }} + % [diag=clean] clean + {{ + t = $path($>) + rm $t $(t).d + }} + EOI + + $* 2>-; + + # Rely on the cleanup machinery to verify that the build output files are + # removed. + # + $* clean 2>'clean file{foo}' +} + +: test +: +{ + echo 'bar' >=bar; + + cat <<EOI >=buildfile; + ./: foo + + foo: bar + {{ + cp $path($<) $path($>) + }} + % [diag=test] test + {{ + cat <$path($<) >?$path($>) + }} + EOI + + $* test 2>>EOE; + cp file{foo} + test file{foo} + EOE + + $* clean 2>- +} |