diff options
Diffstat (limited to 'tests/common.testscript')
-rw-r--r-- | tests/common.testscript | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/tests/common.testscript b/tests/common.testscript new file mode 100644 index 0000000..400ae48 --- /dev/null +++ b/tests/common.testscript @@ -0,0 +1,61 @@ +# file : tests/common.testscript +# copyright : Copyright (c) 2014-2018 Code Synthesis Ltd +# license : MIT; see accompanying LICENSE file + +# Commonly-used variables setup and driver command line. +# + +# Use the same build system driver as the one running the tests (as opposed +# to one that may or may not be found via PATH). Note that this implies that +# we don't support cross-testing. +# +# A common approach will be to run build2 as a sanity check in a directory +# produced or updated by a command being tested. +# +build = $recall($build.path) +test.options += --build $build + +# Check that git version is the minimum supported one or above. The lowest +# common denominator for bdep commands is 2.1.0. +# ++git --version | set git_version_out + ++echo "$git_version_out" | sed -n -e 's/git version (\d+\.\d+\.\d+).*/\1/p' | \ + set git_version + ++if ("$git_version" == "") + exit "unable to obtain git version from '$git_version_out'" +end + ++echo "$git_version" | sed -e 's/(\d+).*/\1/' | set git_version_major ++echo "$git_version" | sed -e 's/\d+\.(\d+).*/\1/' | set git_version_minor + ++if! ($git_version_major > 2 || \ + $git_version_major == 2 && $git_version_minor >= 1) + exit "minimum supported git version is 2.1.0" +end + +# Helper commands that can be used by tests to prepare the testing environment +# or validate an outcome of the command being tested. They are likely to get +# additional options and redirects appended prior to use. A common approach +# will be to redirect output to the null device for commands that are used for +# test setup, and to match it for commands being tested or performing teardown +# (for example, to make sure that configuration post-test state is valid and is +# as expected). +# +clean = $* clean +deinit = $* deinit +init = $* init +fetch = $* fetch +new = $* new --no-checks +status = $* status +sync = $* sync +update = $* update +config = $* config +publish = $* publish + +# All testscripts are named after bdep commands, for example sync.testscript. +# So the testscript scope id is a name of the command being tested. +# +cmd = [string] $@ +test.arguments = $cmd |