aboutsummaryrefslogtreecommitdiff
path: root/tests/ci/ci-load.testscript
diff options
context:
space:
mode:
authorKaren Arutyunov <karen@codesynthesis.com>2018-09-14 22:33:30 +0300
committerKaren Arutyunov <karen@codesynthesis.com>2018-10-09 19:44:21 +0300
commite97c6b9b9c90a6f97019021d6bfcc73ed92580cc (patch)
tree3639a628d52b7b0ac6fff0eba5cf7e308921bf98 /tests/ci/ci-load.testscript
parent1367aa09951e0aa7491bc2a5bf7209b0b47be65e (diff)
Filter packages manifest against CI request manifest in ci-load
Diffstat (limited to 'tests/ci/ci-load.testscript')
-rw-r--r--tests/ci/ci-load.testscript172
1 files changed, 141 insertions, 31 deletions
diff --git a/tests/ci/ci-load.testscript b/tests/ci/ci-load.testscript
index c574a32..ce8daf9 100644
--- a/tests/ci/ci-load.testscript
+++ b/tests/ci/ci-load.testscript
@@ -23,6 +23,14 @@
$* brep-load $~/dir 2>>~%EOE% != 0
%\[.+\] \[brep:error\] \[ref dir\] \[brep-ci-load\]: '.+dir' does not exist or is not a directory%
EOE
+
+ : slash-stripped
+ :
+ : Test that the trailing slash is stripped from the data directory path.
+ :
+ $* brep-load $~/dir/ 2>>~%EOE% != 0
+ %\[.+\] \[brep:error\] \[ref dir\] \[brep-ci-load\]: '.+dir' does not exist or is not a directory%
+ EOE
}
: success
@@ -48,12 +56,13 @@
: for-real
:
{
- # Create the loader script that validates the arguments passed and the
- # files produced by the handler.
+ # Create the loader script that validates the arguments passed and prints
+ # the loadtab, repositories manifest, and packages manifest files to
+ # stderr.
#
loader=$~/brep-load
- cat <<"EOI" >=$loader;
+ +cat <<"EOI" >=$loader
#!/usr/bin/env bash
if [ "\$#" != 7 -o \
"\$1" != "--db-host=localhost" -o \
@@ -62,38 +71,139 @@
"\$4" != "--shallow" -o \
"\$5" != "--tenant" -o \
-z "\$6" -o \
- "\$7" != "$data_dir/loadtab" -o \
- ! -f "$data_dir/cache/repositories.manifest" -o \
- ! -f "$data_dir/cache/packages.manifest" ]; then
- exit 1
- fi
- if ! diff "$data_dir/loadtab" - <<<"https://git.build2.org/hello/hello.git#master hello cache:cache"; then
+ "\$7" != "$data_dir/loadtab" ]; then
exit 1
fi
+ cat \
+ "$data_dir/loadtab" \
+ "$data_dir/cache/repositories.manifest" \
+ "$data_dir/cache/packages.manifest" >&2
EOI
- chmod 755 $loader;
-
- $clone_root_data;
-
- $* $loader --db-host=localhost --db-port=8432 $data_dir >>"EOO";
- : 1
- status: 200
- message: CI request is queued
- reference: $request_id
- EOO
-
- $clone_root_data;
-
- $* --result-url "http://example.com/" \
- $loader --db-host=localhost --db-port=8432 \
- $data_dir >>~"%EOO%"
- : 1
- status: 200
- %message: CI request is queued: http://example.com/@.+%
- %.
- reference: $request_id
- EOO
+ +chmod 755 $loader
+
+ : whole-repo
+ :
+ {
+ $clone_root_data;
+
+ $* $loader --db-host=localhost --db-port=8432 $data_dir >>"EOO" 2>>~"%EOE%"
+ : 1
+ status: 200
+ message: CI request is queued
+ reference: $request_id
+ EOO
+ $rep hello cache:cache
+ : 1
+ summary: hello project repository
+ : 1
+ name: libhello
+ version: 0.1.0
+ project: hello
+ summary: hello library
+ license: TODO
+ url: https://example.org/hello
+ email: user@example.org
+ %depends: \\* build2 .+%
+ %depends: \\* bpkg .+%
+ location: libhello
+ %fragment: .+%
+ :
+ name: hello
+ version: 0.1.0
+ summary: hello executable
+ license: TODO
+ url: https://example.org/hello
+ email: user@example.org
+ %depends: \\* build2 .+%
+ %depends: \\* bpkg .+%
+ location: hello
+ %fragment: .+%
+ EOE
+ }
+
+ : package
+ :
+ {
+ $clone_root_data;
+
+ cat <<EOI >+$data_dir/request.manifest;
+ package: hello
+ EOI
+
+ $* $loader --db-host=localhost --db-port=8432 $data_dir >>"EOO" 2>>~"%EOE%"
+ : 1
+ status: 200
+ message: CI request is queued
+ reference: $request_id
+ EOO
+ $rep hello cache:cache
+ : 1
+ summary: hello project repository
+ : 1
+ name: hello
+ version: 0.1.0
+ summary: hello executable
+ license: TODO
+ url: https://example.org/hello
+ email: user@example.org
+ %depends: \\* build2 .+%
+ %depends: \\* bpkg .+%
+ location: hello
+ %fragment: .+%
+ EOE
+ }
+
+ : package-version
+ :
+ {
+ $clone_root_data;
+
+ cat <<EOI >+$data_dir/request.manifest;
+ package: libhello/0.1.0
+ EOI
+
+ $* $loader --db-host=localhost --db-port=8432 $data_dir >>"EOO" 2>>~"%EOE%"
+ : 1
+ status: 200
+ message: CI request is queued
+ reference: $request_id
+ EOO
+ $rep hello cache:cache
+ : 1
+ summary: hello project repository
+ : 1
+ name: libhello
+ version: 0.1.0
+ project: hello
+ summary: hello library
+ license: TODO
+ url: https://example.org/hello
+ email: user@example.org
+ %depends: \\* build2 .+%
+ %depends: \\* bpkg .+%
+ location: libhello
+ %fragment: .+%
+ EOE
+ }
+
+ : result-url
+ :
+ {
+ $clone_root_data;
+
+ $* --result-url "http://example.com/" \
+ $loader --db-host=localhost --db-port=8432 \
+ $data_dir >>~"%EOO%" 2>>~%EOE%
+ : 1
+ status: 200
+ %message: CI request is queued: http://example.com/@.+%
+ %.
+ reference: $request_id
+ EOO
+ %.*:.*%+
+ EOE
+ }
}
}