aboutsummaryrefslogtreecommitdiff
path: root/libbuild2/build/script/parser+diag.test.testscript
diff options
context:
space:
mode:
Diffstat (limited to 'libbuild2/build/script/parser+diag.test.testscript')
-rw-r--r--libbuild2/build/script/parser+diag.test.testscript123
1 files changed, 114 insertions, 9 deletions
diff --git a/libbuild2/build/script/parser+diag.test.testscript b/libbuild2/build/script/parser+diag.test.testscript
index 5b4e64a..504c9a4 100644
--- a/libbuild2/build/script/parser+diag.test.testscript
+++ b/libbuild2/build/script/parser+diag.test.testscript
@@ -19,22 +19,104 @@ $* <<EOI >>EOO
name: echo
EOO
-: diag
+: name-operation
:
-$* <<EOI >>~%EOO%
- echo abc
- cat abc
- diag copy >= $>
- cp <- $>
+$* <<EOI >>EOO
+ a = 'b'
EOI
- %diag: copy >= .+file\{driver\.\}%
+ name: update
EOO
-: ambiguity
+: preamble
:
{
-: name
+ : disambiguate
+ :
+ $* <<EOI >>~%EOO%
+ echo abc | set v
+ cat abc | set v
+ diag copy >= $>
+ cp <- $>
+ EOI
+ echo abc | set v
+ cat abc | set v
+ %diag: copy >= .+file\{driver\.\}%
+ EOO
+
+ : name
+ :
+ $* <<EOI >>EOO
+ n = foo
+ diag copy $n
+ cp $n $>
+ EOI
+ diag: copy foo
+ EOO
+
+ : quoted
+ :
+ $* <<EOI >'diag: foo'
+ f = foo
+ diag "$f"
+ EOI
+
+ : quoted-eval
+ :
+ $* <<EOI >'diag: foo'
+ f = foo
+ diag "($f)"
+ EOI
+
+ : temp_dir
+ :
+ {
+ test.options += -t
+
+ : no
+ :
+ $* <<EOI >false
+ f = foo
+ diag $f
+ f = $~/f
+ foo "$f"
+ EOI
+
+ : no-depdb
+ :
+ $* <<EOI >false
+ f = $~/f
+ depdb hash "$f"
+ diag $f
+ f = $~/f
+ foo "$f"
+ EOI
+
+ : yes
+ :
+ $* <<EOI >true
+ f = $~/f
+ diag $f
+ foo $f
+ EOI
+
+ : yes-depdb
+ :
+ $* <<EOI >true
+ f = $~/f
+ depdb hash "$f"
+ f = $~/t
+ diag $f
+ f = $~/f
+ foo "$f"
+ EOI
+ }
+}
+
+: ambiguity
:
+{
+ : name
+ :
$* test <<EOI 2>>EOE != 0
echo abc
diag xyz
@@ -54,6 +136,19 @@ $* <<EOI >>~%EOO%
buildfile:14:1: error: multiple 'diag' builtin calls
buildfile:12:1: info: previous call is here
EOE
+
+ : names
+ :
+ $* <<EOI 2>>EOE != 0
+ cp abc xyz
+ cat xyz
+ EOI
+ buildfile:11:1: error: low-verbosity script diagnostics name is ambiguous
+ buildfile:11:1: info: could be 'cp'
+ buildfile:12:1: info: could be 'cat'
+ info: consider specifying it explicitly with the 'diag' recipe attribute
+ info: or provide custom low-verbosity diagnostics with the 'diag' builtin
+ EOE
}
: inside-if
@@ -91,3 +186,13 @@ $* <<EOI 2>>EOE != 0
EOI
buildfile:11:8: error: 'diag' call via 'env' builtin
EOE
+
+: before-depdb
+:
+$* <<EOI 2>>EOE != 0
+ diag test
+ depdb clear
+ EOI
+ buildfile:11:1: error: 'diag' builtin call before 'depdb' call
+ buildfile:12:1: info: 'depdb' call is here
+ EOE