diff options
Diffstat (limited to 'tests/directive')
-rw-r--r-- | tests/directive/assert.testscript | 2 | ||||
-rw-r--r-- | tests/directive/config.testscript | 43 | ||||
-rw-r--r-- | tests/directive/parsing.testscript | 2 | ||||
-rw-r--r-- | tests/directive/run.testscript | 3 |
4 files changed, 44 insertions, 6 deletions
diff --git a/tests/directive/assert.testscript b/tests/directive/assert.testscript index 2543536..d869863 100644 --- a/tests/directive/assert.testscript +++ b/tests/directive/assert.testscript @@ -23,7 +23,7 @@ EOE : invalid : $* <'assert junk' 2>>EOE != 0 -<stdin>:1:8: error: invalid bool value: 'junk' +<stdin>:1:8: error: invalid bool value 'junk' EOE : null diff --git a/tests/directive/config.testscript b/tests/directive/config.testscript index e84ca0a..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 @@ -56,6 +56,7 @@ test.arguments = $* noop config.test.fancy=junk 2>>EOE != 0 error: invalid bool value 'junk' in variable config.test.fancy + info: while converting 'junk' EOE } @@ -109,10 +110,10 @@ test.arguments = $* noop config.test.fancy=junk 2>>EOE != 0 error: invalid bool value 'junk' in variable config.test.fancy + info: while converting 'junk' EOE } - : default-none : { @@ -123,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 @@ -160,6 +161,38 @@ test.arguments = $* noop config.test.fancy=junk 2>>EOE != 0 error: invalid bool value 'junk' in variable config.test.fancy + info: while converting 'junk' + 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 } @@ -179,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 @@ -207,6 +242,7 @@ test.arguments = 3 e 'abc' f true + gg abc n [null] p true EOO @@ -229,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 |