aboutsummaryrefslogtreecommitdiff
path: root/tests/ci/ci-dir.testscript
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ci/ci-dir.testscript')
-rw-r--r--tests/ci/ci-dir.testscript94
1 files changed, 94 insertions, 0 deletions
diff --git a/tests/ci/ci-dir.testscript b/tests/ci/ci-dir.testscript
new file mode 100644
index 0000000..8388616
--- /dev/null
+++ b/tests/ci/ci-dir.testscript
@@ -0,0 +1,94 @@
+# file : tests/ci/ci-dir.testscript
+# copyright : Copyright (c) 2014-2018 Code Synthesis Ltd
+# license : MIT; see accompanying LICENSE file
+
+.include data.testscript
+
+: args
+{
+ : none
+ :
+ $* 2>>~%EOE% != 0
+ %\[.+\] \[brep:error\] \[ref \] \[brep-ci-dir\]: usage: .+brep-ci-dir <dir>%
+ EOE
+
+ : dir-not-exist
+ :
+ $* $~/dir 2>>~%EOE% != 0
+ %\[.+\] \[brep:error\] \[ref dir\] \[brep-ci-dir\]: '.+dir' does not exist or is not a directory%
+ EOE
+}
+
+: success
+:
+{
+ test.arguments += $data_dir
+
+ : simulate
+ :
+ {
+ $clone_root_data;
+
+ echo 'simulate: success' >+$data_dir/request.manifest;
+
+ $* >>"EOO";
+ : 1
+ status: 200
+ message: CI request is queued
+ reference: $request_id
+ EOO
+
+ test -d $data_dir != 0
+ }
+
+ : for-real
+ :
+ {
+ $clone_root_data_clean;
+
+ $* >>"EOO"
+ : 1
+ status: 200
+ message: CI request is queued
+ reference: $request_id
+ EOO
+ }
+}
+
+: failure
+:
+{
+ test.arguments += $data_dir
+
+ : bad-simulate
+ :
+ {
+ $clone_root_data_clean;
+
+ echo 'simulate: fly' >+$data_dir/request.manifest;
+
+ $* >>"EOO"
+ : 1
+ status: 400
+ message: unrecognized simulation outcome 'fly'
+ reference: $request_id
+ EOO
+ }
+
+ : unable-fetch-repo
+ :
+ {
+ $clone_root_data_clean;
+
+ sed -i -e "s%^\(repository:\) .+\$%\\1 http://example.com/repo.git%" \
+ $data_dir/request.manifest;
+
+ $* >>~"%EOO%"
+ : 1
+ status: 422
+ %message: unable to fetch repository information .+%
+ %.*
+ reference: $request_id
+ EOO
+ }
+}