diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2020-04-28 08:48:53 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2020-05-27 15:47:28 +0200 |
commit | b808c255b6a9ddba085bf5646e7d20ec344f2e2d (patch) | |
tree | 32730291f7e6de8ef0a227905520dd66fb4ec0f3 /tests/dependency/recipe | |
parent | 3552356a87402727e663131994fa87f48b3cd4fb (diff) |
Initial support for ad hoc recipes (still work in progress)
Diffstat (limited to 'tests/dependency/recipe')
-rw-r--r-- | tests/dependency/recipe/buildfile | 4 | ||||
-rw-r--r-- | tests/dependency/recipe/testscript | 344 |
2 files changed, 348 insertions, 0 deletions
diff --git a/tests/dependency/recipe/buildfile b/tests/dependency/recipe/buildfile new file mode 100644 index 0000000..3dc5452 --- /dev/null +++ b/tests/dependency/recipe/buildfile @@ -0,0 +1,4 @@ +# file : tests/dependency/recipe/buildfile +# license : MIT; see accompanying LICENSE file + +./: testscript $b diff --git a/tests/dependency/recipe/testscript b/tests/dependency/recipe/testscript new file mode 100644 index 0000000..5510e3c --- /dev/null +++ b/tests/dependency/recipe/testscript @@ -0,0 +1,344 @@ +# file : tests/dependency/recipe/testscript +# license : MIT; see accompanying LICENSE file + +.include ../../common.testscript + +# Note: in the parser we have to handle recipes for the with/without +# prerequisites cases separately. So we try to cover both here. + +: basics +: +$* <<EOI 2>>/~%EOE% +alias{x}: alias{z} +{{ + cmd +}} +dump alias{x} +EOI +<stdin>:5:1: dump: +% .+/alias\{x\}: .+/:alias\{z\}% + {{ + cmd + }} +EOE + +: basics-replay +: +$* <<EOI 2>>/~%EOE% +alias{x y}: alias{z} +{{ + cmd +}} +dump alias{y} +EOI +<stdin>:5:1: dump: +% .+/alias\{y\}: .+/:alias\{z\}% + {{ + cmd + }} +EOE + +: basics-header +: +$* <<EOI 2>>/~%EOE% +alias{x}: +% +{{ + cmd +}} +dump alias{x} +EOI +<stdin>:6:1: dump: +% .+/alias\{x\}:% + {{ + cmd + }} +EOE + +: basics-header-replay +: +$* <<EOI 2>>/~%EOE% +alias{x y}: +% +{{ + cmd +}} +dump alias{y} +EOI +<stdin>:6:1: dump: +% .+/alias\{y\}:% + {{ + cmd + }} +EOE + +: basics-lang +: +$* <<EOI 2>>/~%EOE% +alias{x}: +{{ c++ + void f (); +}} +dump alias{x} +EOI +<stdin>:5:1: dump: +% .+/alias\{x\}:% + {{ c++ + void f (); + }} +EOE + +: with-vars +: +$* <<EOI 2>>/~%EOE% +alias{x}: +{ + var = x +} +{{ + cmd +}} +dump alias{x} +EOI +<stdin>:8:1: dump: +% .+/alias\{x\}:% + { + var = x + } + {{ + cmd + }} +EOE + +: with-vars-replay +: +$* <<EOI 2>>/~%EOE% +alias{x y}: alias{z} +{ + var = x +} +{{ + cmd +}} +dump alias{y} +EOI +<stdin>:8:1: dump: +% .+/alias\{y\}: .+/:alias\{z\}% + { + var = x + } + {{ + cmd + }} +EOE + +: with-vars-header +: +$* <<EOI 2>>/~%EOE% +alias{x}: alias{z} +{ + var = x +} +% +{{ + cmd +}} +dump alias{x} +EOI +<stdin>:9:1: dump: +% .+/alias\{x\}: .+/:alias\{z\}% + { + var = x + } + {{ + cmd + }} +EOE + +: with-vars-header-replay +: +$* <<EOI 2>>/~%EOE% +alias{x y}: +{ + var = x +} +% +{{ + cmd +}} +dump alias{y} +EOI +<stdin>:9:1: dump: +% .+/alias\{y\}:% + { + var = x + } + {{ + cmd + }} +EOE + +: chain +: +$* <<EOI 2>>/~%EOE% +alias{x}: +{{ + cmd1 +}} +{{{ + cmd2 +}}} +dump alias{x} +EOI +<stdin>:8:1: dump: +% .+/alias\{x\}:% + {{ + cmd1 + }} + {{{ + cmd2 + }}} +EOE + +: chain-replay +: +$* <<EOI 2>>/~%EOE% +alias{x y}: alias{z} +{{ + cmd1 +}} +{{{ + cmd2 +}}} +dump alias{y} +EOI +<stdin>:8:1: dump: +% .+/alias\{y\}: .+/:alias\{z\}% + {{ + cmd1 + }} + {{{ + cmd2 + }}} +EOE + +: chain-header +: +$* <<EOI 2>>/~%EOE% +alias{x}: alias{z} + +{{ + cmd1 +}} + +% +{{{ + cmd2 +}}} +dump alias{x} +EOI +<stdin>:11:1: dump: +% .+/alias\{x\}: .+/:alias\{z\}% + {{ + cmd1 + }} + {{{ + cmd2 + }}} +EOE + +: chain-header-replay +: +$* <<EOI 2>>/~%EOE% +alias{x y}: + +{{ + cmd1 +}} + +% +{{{ + cmd2 +}}} +dump alias{y} +EOI +<stdin>:11:1: dump: +% .+/alias\{y\}:% + {{ + cmd1 + }} + {{{ + cmd2 + }}} +EOE + +: unterminated +: +$* <<EOI 2>>EOE != 0 +alias{x}: +{{{ + cmd +}} +EOI +<stdin>:5:1: error: unterminated recipe block + <stdin>:2:1: info: recipe block starts here +EOE + +: expected-lang +: +$* <<EOI 2>>EOE != 0 +alias{x}: +{{ $lang + cmd +}} +EOI +<stdin>:2:4: error: expected recipe language instead of '$' +EOE + +: header-attribute +: +$* <<EOI 2>>/~!EOE! +alias{x}: +% [diag=gen] +{{ + cmd +}} +dump alias{x} +EOI +<stdin>:6:1: dump: +! .+/alias\{x\}:! + % [diag=gen] + {{ + cmd + }} +EOE + +: header-attribute-replay +: +$* <<EOI 2>>/~!EOE! +alias{x y}: +% [diag=gen] +{{ + cmd +}} +dump alias{y} +EOI +<stdin>:6:1: dump: +! .+/alias\{y\}:! + % [diag=gen] + {{ + cmd + }} +EOE + +: header-missing-block +: +$* <<EOI 2>>EOE != 0 +alias{x}: +% +{ + cmd +} +EOI +<stdin>:3:1: error: expected recipe block instead of '{' +EOE |