From 04318680fb6c36aca0ec8029d94dab0e960ac69a Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Fri, 21 Apr 2017 16:30:36 +0200 Subject: Add machine test, bootstrap/environment scripts --- tests/machine/buildfile | 8 +++++ tests/machine/testscript | 83 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 91 insertions(+) create mode 100644 tests/machine/buildfile create mode 100644 tests/machine/testscript (limited to 'tests') diff --git a/tests/machine/buildfile b/tests/machine/buildfile new file mode 100644 index 0000000..a9f6ac3 --- /dev/null +++ b/tests/machine/buildfile @@ -0,0 +1,8 @@ +# file : tests/machine/buildfile +# copyright : Copyright (c) 2014-2017 Code Synthesis Ltd +# license : TBC; see accompanying LICENSE file + +./: ../../bbot/exe{bbot-agent} test{testscript} +dir{./}: test = ../../bbot/exe{bbot-agent} + +include ../../bbot/ diff --git a/tests/machine/testscript b/tests/machine/testscript new file mode 100644 index 0000000..238ca91 --- /dev/null +++ b/tests/machine/testscript @@ -0,0 +1,83 @@ +# file : tests/machine/testscript +# copyright : Copyright (c) 2014-2017 Code Synthesis Ltd +# license : TBC; see accompanying LICENSE file + +test.options = --cpu 8 --ram 10485760 --verbose 3 + +tftp = /build/tftp +machines = /btrfs/boris/machines # @@ TODO + +toolchain_url = https://stage.build2.org/0 +toolchain_trust = B8:52:AB:94:C5:FA:73:F3:53:D3:F1:EB:0F:E0:E4:06:32:3F:E2:46:22:FA:39:05:C8:FA:70:B7:21:E2:46:C5 + +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 + +# Download the toolchain. +# +# Note: similar logic to what we have in Build OS. +# ++mkdir -p $tftp/toolchain/default/ ++curl -s -S -f -L $toolchain_url/toolchain.sha256 >=toolchain.sha256 + ++sed -n -e 's%^[0-9a-f]+ \*(.+)$%\1%p' toolchain.sha256 | set -e archives ++sed -n -e 's%^(.+/)?build2-toolchain-(.+)\.tar.*%\2%p' <"$archives" | set version ++sha256sum -b toolchain.sha256 | sed -n -e 's%^([0-9a-f]+) .*$%\1%p' | set checksum + ++/bin/bash -c "while read i && test -n \"\$i\"; do \ +b=`basename \$i` ; \ +f=$tftp/toolchain/default/\$b; \ +echo \$b: 1>&2; \ +curl -# -f -L -z \$f -o \$f $toolchain_url/\$i; \ +ln -sf \$b `sed -n -re 's/^\(.+\)-$version\(.+\)/\\1\\2/p' <<<\$f`; \ +done" <"$archives" 2>| + ++echo "$version" >=$tftp/toolchain/default/version ++echo "$toolchain_trust" >=$tftp/toolchain/default/trust + +#\ +# +# To test the bootstrap script locally, start the TFTP server in +# $tftp/toolchain/default/. +# + +sudo /usr/sbin/in.tftpd \ + --foreground \ + --address :55123 \ + --user "$(whoami)" \ + --permissive \ + --create \ + --secure \ + "$(pwd)" + +# Then uncommen testing setting (after option parsing) and run: + +etc/bootstrap/bbot-bootstrap.sh # Should bootstrap (check manifest on TFTP). +etc/bootstrap/bbot-bootstrap.sh # Should startup (fails with invalid manifest). + +# The same can be done for batch files but from the Windows VM. + +# Can also provide a test task manifest from below. + +#\ + +# Boostrap and list the machines. +# +test.options += --machines $machines --toolchain-id $checksum + ++$* --dump-machines 2>| | sed -n -e 's/^name: (.+)$/\1/p' | set -n machine + +# Perform a test build. +# ++echo "building on $machine" >&2 2>| + ++cat <<"EOI" | $* --fake-request - --dump-result >| 2>| + : 1 + name: $pkg + version: $ver + repository: $rep + trust: $rfp + machine: $machine + EOI -- cgit v1.1