diff options
Diffstat (limited to 'tests/directive')
-rw-r--r-- | tests/directive/config.testscript | 40 | ||||
-rw-r--r-- | tests/directive/parsing.testscript | 2 | ||||
-rw-r--r-- | tests/directive/run.testscript | 3 |
3 files changed, 40 insertions, 5 deletions
diff --git a/tests/directive/config.testscript b/tests/directive/config.testscript index 4049fa0..ebdd6ac 100644 --- a/tests/directive/config.testscript +++ b/tests/directive/config.testscript @@ -14,7 +14,7 @@ test.arguments = EOI +cat <<EOI >=build/root.build - config [bool] config.test.fancy ?= false + config [bool, null] config.test.fancy ?= false print ($defined(config.test.fancy) ? $config.test.fancy : undefined) EOI @@ -114,7 +114,6 @@ test.arguments = EOE } - : default-none : { @@ -125,7 +124,7 @@ test.arguments = EOI +cat <<EOI >=build/root.build - config [bool] config.test.fancy + config [bool, null] config.test.fancy print ($defined(config.test.fancy) ? $config.test.fancy : undefined) EOI @@ -166,6 +165,37 @@ test.arguments = EOE } +: non-nullable +: +{ + .include ../common.testscript + + +cat <<EOI >+build/bootstrap.build + using config + EOI + + +cat <<EOI >=build/root.build + config [bool] config.test.fancy ?= false + print ($defined(config.test.fancy) ? $config.test.fancy : undefined) + EOI + + # This must be a single, serial test since we are sharing config.build. + # + : test + : + cat <<EOI >=buildfile; + ./: + EOI + + $* noop >'false' ; + $* noop config.test.fancy=false >'false' ; + $* noop config.test.fancy=true >'true' ; + + $* noop config.test.fancy=[null] 2>>~/EOE/ != 0 + /.+root.build:1:1: error: null value in non-nullable variable config\.test\.fancy/ + EOE +} + : report : { @@ -182,12 +212,14 @@ test.arguments = config [strings, config.report=multiline] config.test.d ?= 1 2 3 config [string, config.report.variable=e] config.test.e ?= abc config [ config.report] f + config [ config.report.variable=g] gg config [bool] config.test.n ?= [null] config [bool] config.test.p config [bool] config.test.p ?= true e = "'$config.test.e'" f = ($config.test.b || $config.test.c) + g = abc EOI @@ -210,6 +242,7 @@ test.arguments = 3 e 'abc' f true + gg abc n [null] p true EOO @@ -232,6 +265,7 @@ test.arguments = 3 e 'xyz' f true + gg abc n true p false EOO diff --git a/tests/directive/parsing.testscript b/tests/directive/parsing.testscript index 04dd054..3f180f0 100644 --- a/tests/directive/parsing.testscript +++ b/tests/directive/parsing.testscript @@ -1,4 +1,4 @@ -# file : tests/directive/assert.testscript +# file : tests/directive/parsing.testscript # license : MIT; see accompanying LICENSE file # Test overall directive parsing. diff --git a/tests/directive/run.testscript b/tests/directive/run.testscript index 199dd5f..ecff0fe 100644 --- a/tests/directive/run.testscript +++ b/tests/directive/run.testscript @@ -25,8 +25,9 @@ EOI : bad-exit : cat <'assert false' >=buildfile; -$* <"$run" 2>>EOE != 0 +$* <"$run" 2>>~/EOE/ != 0 buildfile:1:1: error: assertion failed +/<stdin>:1:5: error: process .+ exited with code 1/ EOE : bad-output |