aboutsummaryrefslogtreecommitdiff
path: root/tests/manifest/task.testscript
diff options
context:
space:
mode:
Diffstat (limited to 'tests/manifest/task.testscript')
-rw-r--r--tests/manifest/task.testscript343
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
+}