From 0e2f76b6f0ecb4b4c00a4c8001843b3c54bc08ad Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Tue, 18 Apr 2017 13:29:50 +0200 Subject: Finish agent and worker logic --- tests/worker/bootstrap.test | 13 +++++ tests/worker/build.test | 133 ++++++++++++++++++++++++++++++++++++++++++++ tests/worker/buildfile | 26 +++++++++ tests/worker/startup.test | 101 +++++++++++++++++++++++++++++++++ 4 files changed, 273 insertions(+) create mode 100644 tests/worker/bootstrap.test create mode 100644 tests/worker/build.test create mode 100644 tests/worker/buildfile create mode 100644 tests/worker/startup.test (limited to 'tests/worker') diff --git a/tests/worker/bootstrap.test b/tests/worker/bootstrap.test new file mode 100644 index 0000000..91e4417 --- /dev/null +++ b/tests/worker/bootstrap.test @@ -0,0 +1,13 @@ +# file : tests/worker/bootstrap.test +# copyright : Copyright (c) 2014-2017 Code Synthesis Ltd +# license : TBC; see accompanying LICENSE file + +test.options = --bootstrap + +$* >>~%EOO% +: 1 +%bbot-version: \d+% +%libbbot-version: \d+% +%libbpkg-version: \d+% +%libbutl-version: \d+% +EOO diff --git a/tests/worker/build.test b/tests/worker/build.test new file mode 100644 index 0000000..adedccc --- /dev/null +++ b/tests/worker/build.test @@ -0,0 +1,133 @@ +# file : tests/worker/build.test +# copyright : Copyright (c) 2014-2017 Code Synthesis Ltd +# license : TBC; see accompanying LICENSE file + +# Note: requires TFTP server (see buildfile). + +tftp = 127.0.0.1:55123/test + +pkg = hello +ver = 1.0.0 + +#rep = /home/boris/work/build2/hello/repository/1/stable +rep = https://build2.org/pkg/1/stage/stable +#rep = https://build2.org/pkg/1/hello/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 + +: pass +: +cat <<"EOI" >=manifest; + : 1 + name: $pkg + version: $ver + repository: $rep + trust: $rfp + machine: linux-gcc + target: x86_64-linux-gnu + config: config.cc.coptions=-O3 + EOI +$* --verbose 3 --tftp-host "$tftp/$@" cc &build/*** 2>>"EOE"; + trace: build: bpkg -v create -d build --wipe config.cc.coptions=-O3 cc + trace: build: bpkg -v add $rep + trace: build: bpkg -v fetch --trust $rfp --trust-no + trace: build: bpkg -v build --configure-only --yes $pkg/$ver + trace: build: bpkg -v update $pkg + trace: build: bpkg -v test $pkg + trace: build: curl -s -S --upload-file - --max-time 10 tftp://$tftp/$@/manifest + EOE +cat manifest >>~"%EOO%" + : 1 + name: $pkg + version: $ver + status: success + configure-status: success + update-status: success + test-status: success + configure-log: \\ + %.*%+ + \\ + update-log: \\ + %.*%+ + \\ + test-log: \\ + %.*%+ + \\ + EOO + + +: fail-abnormal +: +cat <<"EOI" >=manifest; + : 1 + foo: bar + EOI +$* --verbose 3 --tftp-host "$tftp/$@" cc 2>>"EOE" != 0 + error: invalid task manifest: manifest:3:1: no task package name specified + EOE + + +: fail-configure +: +cat <<"EOI" >=manifest; + : 1 + name: bogus + version: 1.2.3 + repository: $rep + trust: $rfp + machine: linux-gcc + target: x86_64-linux-gnu + EOI +$* --verbose 3 --tftp-host "$tftp/$@" cc &build/*** 2>>"EOE"; + trace: build: bpkg -v create -d build --wipe cc + trace: build: bpkg -v add $rep + trace: build: bpkg -v fetch --trust $rfp --trust-no + trace: build: bpkg -v build --configure-only --yes bogus/1.2.3 + trace: build: curl -s -S --upload-file - --max-time 10 tftp://$tftp/$@/manifest + EOE +cat manifest >>~"%EOO%" + : 1 + name: bogus + version: 1.2.3 + status: error + configure-status: error + configure-log: \\ + %.*%+ + \\ + EOO + + +: fail-update +: +cat <<"EOI" >=manifest; + : 1 + name: $pkg + version: $ver + repository: $rep + trust: $rfp + machine: linux-gcc + target: x86_64-linux-gnu + config: config.cc.loptions=-lbogus + EOI +$* --verbose 3 --tftp-host "$tftp/$@" cc &build/*** 2>>"EOE"; + trace: build: bpkg -v create -d build --wipe config.cc.loptions=-lbogus cc + trace: build: bpkg -v add $rep + trace: build: bpkg -v fetch --trust $rfp --trust-no + trace: build: bpkg -v build --configure-only --yes $pkg/$ver + trace: build: bpkg -v update $pkg + trace: build: curl -s -S --upload-file - --max-time 10 tftp://$tftp/$@/manifest + EOE +cat manifest >>~"%EOO%" + : 1 + name: $pkg + version: $ver + status: error + configure-status: success + update-status: error + configure-log: \\ + %.*%+ + \\ + update-log: \\ + %.*%+ + \\ + EOO diff --git a/tests/worker/buildfile b/tests/worker/buildfile new file mode 100644 index 0000000..7d0a206 --- /dev/null +++ b/tests/worker/buildfile @@ -0,0 +1,26 @@ +# file : tests/worker/buildfile +# copyright : Copyright (c) 2014-2017 Code Synthesis Ltd +# license : TBC; see accompanying LICENSE file + +#\ + +Some tests in this directory require a running TFTP server. + +TFTP server (tftp-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 \ + "$(pwd)" + +#\ + +./: ../../bbot/exe{bbot-worker} test{bootstrap startup build} +dir{./}: test = ../../bbot/exe{bbot-worker} + +include ../../bbot/ diff --git a/tests/worker/startup.test b/tests/worker/startup.test new file mode 100644 index 0000000..d13e6c5 --- /dev/null +++ b/tests/worker/startup.test @@ -0,0 +1,101 @@ +# file : tests/worker/startup.test +# copyright : Copyright (c) 2014-2017 Code Synthesis Ltd +# license : TBC; see accompanying LICENSE file + +# Note: requires TFTP server (see buildfile). + +test.options = --startup +tftp = 127.0.0.1:55123/test + +: fail-download +: +$* --tftp-host "$tftp/$@" 2>>"EOE" &manifest != 0; + curl: \(68\) TFTP: File Not Found + error: unable to download task manifest from tftp://$tftp/$@/manifest: input/output error + EOE +diff -u - manifest <=manifest; +$* --tftp-host "$tftp/$@" 2>>"EOE" != 0; + error: invalid task manifest: manifest:2:1: no task package name specified + EOE +diff -u - manifest <=manifest; + : 1 + name: libhello + version: 1.2.3 + repository: https://pkg.example.org/1/ + machine: linux-gcc + EOI +$* --environment $~ --tftp-host "$tftp/$@" 2>>"EOE" != 0; + error: no environment setup executable in $representation($~) for target '' + EOE +diff -u - manifest <=x86_64-linux-gnu; + #!/bin/sh + echo "environment setup failed" + exit 1 + EOI +chmod ugo+x x86_64-linux-gnu; +cat <=manifest; + : 1 + name: libhello + version: 1.2.3 + repository: https://pkg.example.org/1/ + machine: linux-gcc + target: x86_64-linux-gnu + EOI +$* --environment $~ --tftp-host "$tftp/$@" 2>>"EOE" != 0; + environment setup failed + error: process $~/x86_64-linux-gnu terminated with non-zero exit code + EOE +diff -u - manifest <=x86_64-linux-gnu; + #!/bin/sh + echo "$1" + echo "$2" + EOI +chmod ugo+x x86_64-linux-gnu; +cat <=manifest; + : 1 + name: libhello + version: 1.2.3 + repository: https://pkg.example.org/1/ + machine: linux-gcc + target: x86_64-linux-gnu + EOI +$* --environment $~ --tftp-host "$tftp/$@" 2>>"EOE" + x86_64-linux-gnu + $0 + EOE -- cgit v1.1