diff options
Diffstat (limited to 'tests/manifest/task.test')
-rw-r--r-- | tests/manifest/task.test | 260 |
1 files changed, 260 insertions, 0 deletions
diff --git a/tests/manifest/task.test b/tests/manifest/task.test new file mode 100644 index 0000000..09777b1 --- /dev/null +++ b/tests/manifest/task.test @@ -0,0 +1,260 @@ +# file : tests/manifest/task.test +# copyright : Copyright (c) 2014-2017 Code Synthesis Ltd +# license : MIT; see accompanying LICENSE file + +test.options += -t + +: valid +: +: Roundtrip the task manifest. +: +{ + : all-names + : + $* <<EOF >>EOF + : 1 + name: libfoo + version: 1.0 + repository: http://pkg.example.org/1/math + machine: windows_10-msvc_14 + target: x86_64-microsoft-win32-msvc14.0 + config: config.cc.coptions=/Z7 config.cc.loptions=/DEBUG + EOF + + : no-target + : + $* <<EOF >>EOF + : 1 + name: libfoo + version: 1.0 + repository: http://pkg.example.org/1/math + machine: windows_10-msvc_14 + config: config.cc.coptions=/Z7 config.cc.loptions=/DEBUG + EOF + + : no-config + : + $* <<EOF >>EOF + : 1 + name: libfoo + version: 1.0 + repository: http://pkg.example.org/1/math + machine: windows_10-msvc_14 + target: x86_64-microsoft-win32-msvc14.0 + EOF + + : config + : + { + : empty-var-value + : + $* <<EOF >>EOF + : 1 + name: libfoo + version: 1.0 + repository: http://pkg.example.org/1/math + machine: windows + config: abc= + EOF + + : var-value-quoting + : + $* <<EOF >>EOF + : 1 + name: libfoo + version: 1.0 + repository: http://pkg.example.org/1/math + machine: windows + config: abc='a "b '"d\e x y=" + EOF + } +} + +: redefinition +: +{ + : name + : + $* <<EOI 2>'stdin:3:1: error: task package name redefinition' == 1 + : 1 + name: libfoo + name: libfoo + EOI + + : version + : + $* <<EOI 2>'stdin:3:1: error: task package version redefinition' == 1 + : 1 + version: 1.0 + version: 1.0 + EOI + + : repository + : + $* <<EOI 2>'stdin:3:1: error: task repository redefinition' == 1 + : 1 + repository: http://pkg.example.org/1/math + repository: http://pkg.example.org/1/math + EOI + + : machine + : + $* <<EOI 2>'stdin:3:1: error: task machine redefinition' == 1 + : 1 + machine: windows_10-msvc_14 + machine: windows_10-msvc_14 + EOI + + : target + : + $* <<EOI 2>'stdin:3:1: error: task target redefinition' == 1 + : 1 + target: x86_64-microsoft-win32-msvc14.0 + target: x86_64-microsoft-win32-msvc14.0 + EOI + + : config + : + $* <<EOI 2>'stdin:3:1: error: task configuration redefinition' == 1 + : 1 + config: config.cc.coptions=/Z7 + config: config.cc.loptions=/DEBUG + EOI +} + +: invalid +: +{ + : name-empty + : + $* <<EOI 2>'stdin:2:6: error: empty task package name' == 1 + : 1 + name: + EOI + + : version + : + { + : empty + : + $* <<EOI 2>'stdin:2:9: error: invalid task package version: unexpected end' == 1 + : 1 + version: + EOI + + : release + : + $* <<EOI 2>'stdin:2:10: error: invalid task package version release' == 1 + : 1 + version: 1.2.3- + EOI + } + + : machine-empty + : + $* <<EOI 2>'stdin:2:9: error: empty task machine' == 1 + : 1 + machine: + EOI + + : target-empty + : + $* <<EOI 2>'stdin:2:8: error: invalid task target: missing cpu' == 1 + : 1 + target: + EOI + + : config + : + { + : empty + : + $* <<EOI 2>'stdin:2:8: error: empty task configuration' == 1 + : 1 + config: + EOI + + : bad-field + : + $* <<EOI 2>'stdin:2:15: error: invalid task configuration: unterminated quoted string' == 1 + : 1 + config: 'abc=x + EOI + + : bad-var + : + $* <<EOI 2>'stdin:2:12: error: invalid task configuration: no variable value' == 1 + : 1 + config: abc xyz=1 + EOI + + : multiline + : + { + : bad-field + : + $* <<EOI 2>'stdin:3:7: error: invalid task configuration: unterminated quoted string' == 1 + : 1 + config: \ + 'abc=x + \ + EOI + + : bad-var + : + $* <<EOI 2>'stdin:3:4: error: invalid task configuration: no variable value' == 1 + : 1 + config: \ + abc xyz=1 + \ + EOI + } + } +} + +: unknown-name +: +$* <<EOI 2>"stdin:2:1: error: unknown name 'x' in task manifest" == 1 +: 1 +x: +EOI + +: missed +: +{ + : name + : + $* <<EOI 2>'stdin:5:1: error: no task package name specified' == 1 + : 1 + version: 1.0 + repository: http://pkg.example.org/1/math + machine: windows_10-msvc_14 + EOI + + : version + : + $* <<EOI 2>'stdin:5:1: error: no task package version specified' == 1 + : 1 + name: libfoo + repository: http://pkg.example.org/1/math + machine: windows_10-msvc_14 + EOI + + : repository + : + $* <<EOI 2>'stdin:5:1: error: no task repository specified' == 1 + : 1 + name: libfoo + version: 1.0 + machine: windows_10-msvc_14 + EOI + + : machine + : + $* <<EOI 2>'stdin:5:1: error: no task machine specified' == 1 + : 1 + name: libfoo + version: 1.0 + repository: http://pkg.example.org/1/math + EOI +} |