diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2017-04-19 08:02:53 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2017-04-19 08:02:53 +0200 |
commit | efa53d6ad8797310b10d299408c2e3fa33978e27 (patch) | |
tree | 6256e22e53b1ad9f8555e228d0ef89bd024ff292 /tests/integration/testscript | |
parent | 9b5170a723c9c78103fbd66c5c3b2b32a9af6702 (diff) |
Add --fake-machine and machine-less agent/worker test
Diffstat (limited to 'tests/integration/testscript')
-rw-r--r-- | tests/integration/testscript | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/tests/integration/testscript b/tests/integration/testscript new file mode 100644 index 0000000..f43bf02 --- /dev/null +++ b/tests/integration/testscript @@ -0,0 +1,98 @@ +# file : tests/integration/testscript +# copyright : Copyright (c) 2014-2017 Code Synthesis Ltd +# license : TBC; see accompanying LICENSE file + +#\ +# Requirement: +# +# 1. tftpd-hpa installed (assumed in /usr/sbin/in.tftpd) +# +# 2. b, bpkg, curl executables in PATH. +# +# TFTP server (tftpd-hpa) setup: from the test out_base, run (sudo is required +# for --secure/chroot): +# + +sudo /usr/sbin/in.tftpd \ + --foreground \ + --address 127.0.0.1:55123 \ + --user "$(whoami)" \ + --permissive \ + --create \ + --secure \ + --map-file tftp-map \ + "$(pwd)" + +#\ + +machine = linux-gcc +c = gcc +cxx = g++ + +# Where we get the task and what we do with the result can be configured +# independently: +# +# - We can poll a controller for a task by specifying its URL or we can +# read a task manifest from a file (--fake-request). +# +# - We can send the result back to the controller or we can dump the result +# to stdout (--dump-result). +# + +#\ +wait=5s +controller = https://stage.build2.org/?build-task +#\ + +wait=1s +controller = --fake-request ../task --dump-result + +pkg = hello +ver = 1.0.0 +rep = https://build2.org/pkg/1/stage/stable +rfp = FF:DF:7D:38:67:4E:C3:82:65:7E:EE:1F:D4:80:EC:56:C4:33:5B:65:3F:9B:29:9A:30:56:B9:77:B9:F2:01:94 ++cat <<"EOI" >=task + : 1 + name: $pkg + version: $ver + repository: $rep + trust: $rfp + machine: $machine + EOI + +# +# +tftp = 127.0.0.1:55123 + +a = $0 ++ sed -e 's/-agent$/-worker/' <"$0" | set w + +: agent +: +{ + cat <<"EOI" >=machine-header; + : 1 + id: $machine-1.0 + name: $machine + summary: The $machine fake machine + EOI + $a --verbose 3 --tftp $~ --fake-machine machine-header $controller \ + &build/*** >| 2>| +} + +: worker +: +{ + cat <<"EOI" >=default; + #!/bin/sh + + t="\$1" + shift + + exec "\$@" cc config.c=$c config.cxx=$cxx + EOI + chmod ugo+x default; + sleep $wait; + $w --verbose 3 --startup --tftp-host $tftp --environment \ + &$machine/*** &manifest $~ 2>| +} |