From 0ed86c76239d4f2904ea4ae1a77902a9e0db2a6d Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Thu, 1 Dec 2016 12:07:18 +0200 Subject: Move old tests to old-tests/ --- old-tests/variable/override/build/bootstrap.build | 2 + old-tests/variable/override/buildfile | 58 ++++ old-tests/variable/override/cache | 13 + .../variable/override/p/build/bootstrap.build | 1 + old-tests/variable/override/p/buildfile | 49 ++++ old-tests/variable/override/p/loader | 1 + old-tests/variable/override/simple | 3 + old-tests/variable/override/test.sh | 312 +++++++++++++++++++++ 8 files changed, 439 insertions(+) create mode 100644 old-tests/variable/override/build/bootstrap.build create mode 100644 old-tests/variable/override/buildfile create mode 100644 old-tests/variable/override/cache create mode 100644 old-tests/variable/override/p/build/bootstrap.build create mode 100644 old-tests/variable/override/p/buildfile create mode 100644 old-tests/variable/override/p/loader create mode 100644 old-tests/variable/override/simple create mode 100755 old-tests/variable/override/test.sh (limited to 'old-tests/variable/override') diff --git a/old-tests/variable/override/build/bootstrap.build b/old-tests/variable/override/build/bootstrap.build new file mode 100644 index 0000000..1c2e239 --- /dev/null +++ b/old-tests/variable/override/build/bootstrap.build @@ -0,0 +1,2 @@ +project = override +amalgamation = # Disabled. diff --git a/old-tests/variable/override/buildfile b/old-tests/variable/override/buildfile new file mode 100644 index 0000000..c090e81 --- /dev/null +++ b/old-tests/variable/override/buildfile @@ -0,0 +1,58 @@ +if ($t != [null]) +{ + [$t] v = [null] +} + +print "/ :" $(/: v) + +if ($a == as) +{ + v = x +} +elif ($a == ap) +{ + v += s +} +elif ($a == pr) +{ + v =+ p +} + +print ". :" $v + +d/: +{ + if ($d_a == as) + { + v = x + } + elif ($d_a == ap) + { + v += s + } + elif ($d_a == pr) + { + v =+ p + } + + print "d :" $v + + + if ($d_t_a == as) + { + file{t}: v = x + } + elif ($d_t_a == ap) + { + file{t}: v += s + } + elif ($d_t_a == pr) + { + file{t}: v =+ p + } + + print "d/t :" $(file{t}: v) +} + +include p/ +./: diff --git a/old-tests/variable/override/cache b/old-tests/variable/override/cache new file mode 100644 index 0000000..8378688 --- /dev/null +++ b/old-tests/variable/override/cache @@ -0,0 +1,13 @@ +x = [string] 0 +print $x + +x = [uint64] 1 +print $x + +y = 0 +print $y + +[uint64] y = [null] +print $y + +./: diff --git a/old-tests/variable/override/p/build/bootstrap.build b/old-tests/variable/override/p/build/bootstrap.build new file mode 100644 index 0000000..723e2a3 --- /dev/null +++ b/old-tests/variable/override/p/build/bootstrap.build @@ -0,0 +1 @@ +project = override-p diff --git a/old-tests/variable/override/p/buildfile b/old-tests/variable/override/p/buildfile new file mode 100644 index 0000000..527b9ae --- /dev/null +++ b/old-tests/variable/override/p/buildfile @@ -0,0 +1,49 @@ +if ($p_a == as) +{ + v = x +} +elif ($p_a == ap) +{ + v += s +} +elif ($p_a == pr) +{ + v =+ p +} + +print "p :" $v + +d/: +{ + if ($p_d_a == as) + { + v = x + } + elif ($p_d_a == ap) + { + v += s + } + elif ($p_d_a == pr) + { + v =+ p + } + + print "p/d :" $v + + if ($p_d_t_a == as) + { + file{t}: v = x + } + elif ($p_d_t_a == ap) + { + file{t}: v += s + } + elif ($p_d_t_a == pr) + { + file{t}: v =+ p + } + + print "p/d/t :" $(file{t}: v) +} + +./: diff --git a/old-tests/variable/override/p/loader b/old-tests/variable/override/p/loader new file mode 100644 index 0000000..f298dcc --- /dev/null +++ b/old-tests/variable/override/p/loader @@ -0,0 +1 @@ +include ../buildfile diff --git a/old-tests/variable/override/simple b/old-tests/variable/override/simple new file mode 100644 index 0000000..899daa2 --- /dev/null +++ b/old-tests/variable/override/simple @@ -0,0 +1,3 @@ +print $foo + +./: diff --git a/old-tests/variable/override/test.sh b/old-tests/variable/override/test.sh new file mode 100755 index 0000000..a8b08b2 --- /dev/null +++ b/old-tests/variable/override/test.sh @@ -0,0 +1,312 @@ +#! /usr/bin/env bash + +verbose=n + +# By default when MSYS2 executable (bash.exe in particular) runs another +# executable it converts arguments that look like POSIX paths to Windows +# representations. More about it at: +# +# http://www.mingw.org/wiki/Posix_path_conversion +# +# So when you run b /v=X, build2 gets 'C:/msys64/v=X' argument instead of +# '/v=X'. To disable this behavior set MSYS2_ARG_CONV_EXCL environment +# variable, so all arguments starting with / will not be converted. You can +# list more prefixes using ';' as a separator. +# +export MSYS2_ARG_CONV_EXCL=/ + +tmp_file=`mktemp` + +# Remove temporary file on exit. Cover the case when exit due to an error. +# +trap 'rm -f $tmp_file' EXIT + +function error () { echo "$*" 1>&2; exit 1; } + +function fail () +{ + if [ "$verbose" = "y" ]; then + b $* + else + b -q $* 2>/dev/null + fi + + if [ $? -eq 0 ]; then + error "succeeded: b $*" + fi + + return 0 +} + +function test () +{ + b -q $* >$tmp_file + + if [ $? -ne 0 ]; then + error "failed: b -q $* >$tmp_file" + fi + + diff --strip-trailing-cr -u - $tmp_file + + if [ $? -ne 0 ]; then + error "failed: b $*" + fi +} + +fail foo=bar[] # error: unexpected [ in variable assignment 'foo=bar[]' +fail foo=[string]bar # error: typed override of variable foo +fail "!foo=bar" "!foo=BAR" # error: multiple global overrides of variable foo +fail "foo=bar" "foo=BAR" # error: multiple project overrides of variable foo +fail "%foo=bar" "%foo=BAR" # error: multiple project overrides of variable foo + +test --buildfile simple foo=bar ./ ./ <<< "bar" # Multiple bootstraps of the same project. + +# Visibility/qualification. +# +test !v=X <