diff options
Diffstat (limited to 'tests/manifest/task.testscript')
-rw-r--r-- | tests/manifest/task.testscript | 343 |
1 files changed, 343 insertions, 0 deletions
diff --git a/tests/manifest/task.testscript b/tests/manifest/task.testscript new file mode 100644 index 0000000..e68bd09 --- /dev/null +++ b/tests/manifest/task.testscript @@ -0,0 +1,343 @@ +# file : tests/manifest/task.testscript +# copyright : Copyright (c) 2014-2018 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-url: http://pkg.example.org/1/math + repository-type: pkg + trust: AB:0D:3F:C1:B0:13:E4:0E:AD:4A:08:06:AE:F3:85:DB:E2:27:5F:83:11:47:A2:7\ + 8:64:3C:73:60:F8:66:3A:A4 + machine: windows_10-msvc_14 + target: x86_64-microsoft-win32-msvc14.0 + config: config.cc.coptions=/Z7 config.cc.loptions=/DEBUG + warning-regex: '^warning: ' '^.+: warning: ' + EOF + + : no-config-no-regex + : + $* <<EOF >>EOF + : 1 + name: libfoo + version: 1.0 + repository-url: http://pkg.example.org/1/math + repository-type: pkg + 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-url: http://pkg.example.org/1/math + repository-type: pkg + machine: windows + target: x86_64-microsoft-win32-msvc14.0 + config: abc= + EOF + + : var-value-quoting + : + $* <<EOF >>EOF + : 1 + name: libfoo + version: 1.0 + repository-url: http://pkg.example.org/1/math + repository-type: pkg + machine: windows + target: x86_64-microsoft-win32-msvc14.0 + config: abc='a "b '"d\e x y=" + EOF + } + + : trust-yes + : + $* <<EOF >>EOF + : 1 + name: libfoo + version: 1.0 + repository-url: http://pkg.example.org/1/math + repository-type: pkg + trust: yes + machine: windows_10-msvc_14 + target: x86_64-microsoft-win32-msvc14.0 + config: config.cc.coptions=/Z7 config.cc.loptions=/DEBUG + 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 URL redefinition' == 1 + : 1 + repository-url: http://pkg.example.org/1/math + repository-url: 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 + + : warning-regex + : + $* <<EOI 2>'stdin:3:1: error: task warning regex redefinition' == 1 + : 1 + warning-regex: '^warning: ' + warning-regex: '^.+: warning: ' + EOI +} + +: invalid +: +{ + : name-empty + : + $* <<EOI 2>'stdin:2:6: error: invalid task package name: length is less than two characters' == 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 + } + + : repository + : + { + : url + : + $* <<EOI 2>>EOE == 1 + : 1 + name: libfoo + version: 1.0 + repository-url: http://pkg.example.org/math + repository-type: pkg + machine: windows_10-msvc_14 + target: x86_64-microsoft-win32-msvc14.0 + EOI + stdin:4:17: error: invalid task repository URL: missing repository version + EOE + + : type + : + $* <<EOI 2>>EOE == 1 + : 1 + repository-type: svn + EOI + stdin:2:18: error: invalid task repository type 'svn' + EOE + } + + : 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 + + : multiline + : + { + : bad-field + : + $* <<EOI 2>'stdin:3:7: error: invalid task configuration: unterminated quoted string' == 1 + : 1 + config: \ + 'abc=x + \ + EOI + } + } + + : warning-regex + : + { + : empty + : + $* <<EOI 2>'stdin:2:15: error: empty task warning regex' == 1 + : 1 + warning-regex: + EOI + + : regex-error + : + $* <<EOI 2>>~/EOE/ == 1 + : 1 + warning-regex: '^[warning: ' + EOI + /stdin:2:16: error: invalid task warning regex: invalid regex.*/ + EOE + } + + : trust + : + $* <<EOI 2>'stdin:2:8: error: invalid repository certificate fingerprint' == 1 + : 1 + trust: abc + EOI +} + +: unknown-name +: +$* <<EOI 2>"stdin:2:1: error: unknown name 'x' in task manifest" == 1 +: 1 +x: +EOI + +: missed +: +{ + : name + : + $* <<EOI 2>'stdin:6:1: error: no task package name specified' == 1 + : 1 + version: 1.0 + repository-url: http://pkg.example.org/1/math + repository-type: pkg + machine: windows_10-msvc_14 + EOI + + : version + : + $* <<EOI 2>'stdin:6:1: error: no task package version specified' == 1 + : 1 + name: libfoo + repository-url: http://pkg.example.org/1/math + repository-type: pkg + machine: windows_10-msvc_14 + EOI + + : repository-url + : + $* <<EOI 2>'stdin:6:1: error: no task repository URL specified' == 1 + : 1 + name: libfoo + version: 1.0 + machine: windows_10-msvc_14 + repository-type: git + EOI + + : repository-type + : + $* <<EOI 2>'stdin:6:1: error: no task repository type specified' == 1 + : 1 + name: libfoo + version: 1.0 + repository-url: http://pkg.example.org/1/math + machine: windows_10-msvc_14 + EOI + + : machine + : + $* <<EOI 2>'stdin:6:1: error: no task machine specified' == 1 + : 1 + name: libfoo + version: 1.0 + repository-url: http://pkg.example.org/1/math + repository-type: pkg + EOI + + : target + : + $* <<EOI 2>'stdin:7:1: error: no task target specified' == 1 + : 1 + name: libfoo + version: 1.0 + repository-url: http://pkg.example.org/1/math + repository-type: pkg + machine: windows_10-msvc_14 + EOI +} |