aboutsummaryrefslogtreecommitdiff
path: root/tests/agent/testscript
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2017-04-08 14:14:26 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2017-04-08 14:14:26 +0200
commit36e0c88e7a3912c8a2e6594841172adb9c14525b (patch)
tree909a269ded721a0201a01d3493af6fc11dd75292 /tests/agent/testscript
parentcfd31379be5eefb22a72b5ee90ce8fd17a0802b7 (diff)
Implement machine enumeration
Diffstat (limited to 'tests/agent/testscript')
-rw-r--r--tests/agent/testscript112
1 files changed, 112 insertions, 0 deletions
diff --git a/tests/agent/testscript b/tests/agent/testscript
new file mode 100644
index 0000000..fa465a4
--- /dev/null
+++ b/tests/agent/testscript
@@ -0,0 +1,112 @@
+# file : tests/agent/testscript
+# copyright : Copyright (c) 2014-2017 Code Synthesis Ltd
+# license : MIT; see accompanying LICENSE file
+
+# The /build/machines directory should be on a btrfs filesystem and have the
+# following layout and contents:
+#
+# /build/machines/
+# └── default/
+# └── linux-gcc/
+# ├── linux-gcc-1.0/
+# │ └── manifest
+# └── linux-gcc-1.1/
+# └── manifest
+#
+# Notes:
+#
+# - The test must be run serially (@@ TODO: serial directive)
+
+test.options = --verbose 2
+test.arguments = stage 1
+
+cp = $src_base/btrfs-cpdir -f /build/machines.orig /build/machines
+rm = $src_base/btrfs-rmdir /build/machines
+
+: dump-machines
+:
+{
+ m = /build/machines/default/linux-gcc
+
+ test.options += --dump-machines --fake-bootstrap
+
+ +$cp
+
+ : no-current-machine-symlink
+ :
+ $* 123 2>>"EOE"
+ trace: enumerate_machines: skipping $m/: no subvolume link
+ EOE
+
+ ln -T -s linux-gcc-1.0 $m/linux-gcc-1
+
+ : bootstrap
+ :
+ $* 123 >>EOO 2>>~"%EOE%d"
+ : 1
+ id: linux-gcc-1.0
+ name: linux-gcc
+ summary: Linux with GCC
+ EOO
+ %trace: enumerate_machines: btrfs subvolume snapshot $m/linux-gcc-1.0 $m/linux-gcc-stage-\\.+%
+ trace: enumerate_machines: bootstrapping $m/linux-gcc-stage/
+ EOE
+
+ ln -T -f -s linux-gcc-1.1 $m/linux-gcc-1
+
+ : re-bootstrap-machine
+ :
+ $* 123 >>EOO 2>>~"%EOE%d"
+ : 1
+ id: linux-gcc-1.1
+ name: linux-gcc
+ summary: Linux with GCC
+ EOO
+ %trace: enumerate_machines: btrfs subvolume snapshot $m/linux-gcc-1.1 $m/linux-gcc-stage-\\.+%
+ trace: enumerate_machines: re-bootstrapping $m/linux-gcc-stage/: new machine
+ trace: enumerate_machines: btrfs property set -ts $m/linux-gcc-stage ro false
+ trace: enumerate_machines: btrfs subvolume delete $m/linux-gcc-stage
+ EOE
+
+ : re-bootstrap-toolchain
+ :
+ $* 124 >>EOO 2>>~"%EOE%d"
+ : 1
+ id: linux-gcc-1.1
+ name: linux-gcc
+ summary: Linux with GCC
+ EOO
+ %trace: enumerate_machines: btrfs subvolume snapshot $m/linux-gcc-1.1 $m/linux-gcc-stage-\\.+%
+ trace: enumerate_machines: re-bootstrapping $m/linux-gcc-stage/: new toolchain
+ trace: enumerate_machines: btrfs property set -ts $m/linux-gcc-stage ro false
+ trace: enumerate_machines: btrfs subvolume delete $m/linux-gcc-stage
+ EOE
+
+ sed -i -e 's/^(bbot-version):.*/\1: 0/' $m/linux-gcc-stage/manifest
+
+ : re-bootstrap-bbot
+ :
+ $* 124 >>EOO 2>>~"%EOE%d"
+ : 1
+ id: linux-gcc-1.1
+ name: linux-gcc
+ summary: Linux with GCC
+ EOO
+ %trace: enumerate_machines: btrfs subvolume snapshot $m/linux-gcc-1.1 $m/linux-gcc-stage-\\.+%
+ trace: enumerate_machines: re-bootstrapping $m/linux-gcc-stage/: new bbot
+ trace: enumerate_machines: btrfs property set -ts $m/linux-gcc-stage ro false
+ trace: enumerate_machines: btrfs subvolume delete $m/linux-gcc-stage
+ EOE
+
+ sed -i -e 's/^(bbot-version):.*/\1: 99999900/' $m/linux-gcc-stage/manifest
+
+ : re-bootstrap-bbot-newer
+ :
+ $* 124 2>>~"%EOE%d"
+ %trace: enumerate_machines: btrfs subvolume snapshot $m/linux-gcc-1.1 $m/linux-gcc-stage-\\.+%
+ trace: enumerate_machines: ignoring $m/linux-gcc-stage/: old bbot
+ %trace: enumerate_machines: btrfs subvolume delete $m/linux-gcc-stage-\\.+%
+ EOE
+
+ -$rm
+}