aboutsummaryrefslogtreecommitdiff
path: root/tests/directive
diff options
context:
space:
mode:
Diffstat (limited to 'tests/directive')
-rw-r--r--tests/directive/config.testscript40
-rw-r--r--tests/directive/parsing.testscript2
-rw-r--r--tests/directive/run.testscript3
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