blob: 2b977963c61418360387b77399b47f0598787c54 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
# Smoke test vmdb2-built images
This yarn file builds a basic image, and runs it under Qemu. The image
is configured to have a serial console enabled, and the scenario below
will log in as root (no password), and command the virtual machine to
power off. If this works, the image is at least minimally functional,
so the "smoke test" passes.
More elaborate testing can be added, but smoke testing is enough for
now.
To run this yarn file, you need to run it as root (since it needs to
build an image as root), and you need to run on a system where
qemu-system-ppc64le is installed. Additionally, you need to add the
following option to yarn:
EXAMPLE
--env ROOTFS_TARBALL=/path/to/rootfs/tarball
This means vmdb2 will use the given tarball when creating an image,
and if the tarball doesn't exist yet, it will create it. This makes
testing multiple time much faster.
SCENARIO smoke test ppc64el IEEE1275 image
WHEN user runs vmdb smoke-ppc64el.vmdb --output smoke-ppc64el.img
THEN user can IEEE1275 boot smoke-ppc64el.img and power it off from root shell
IMPLEMENTS WHEN user runs vmdb (\S+) --output (\S+)
"$SRCDIR/vmdb2" "$SRCDIR/$MATCH_1" \
--output "$DATADIR/$MATCH_2" \
--log "$DATADIR/vmdb.log" \
--verbose \
--rootfs-tarball "$ROOTFS_TARBALL"
IMPLEMENTS THEN user can IEEE1275 boot (\S+) and power it off from root shell
cd "$DATADIR"
img="$MATCH_1"
cat << EOF > run.sh
qemu-system-ppc64le \
-m 1024 \
-nographic \
"$img"
EOF
chmod a+rx run.sh
cat << EOF > expect.txt
set timeout 600
proc abort {} {
puts "ERROR ERROR\n"
exit 1
}
spawn ./run.sh
expect "login: "
send "root\n"
expect "# "
send "poweroff\r"
set timeout 30
expect {
"reboot: Power down" {puts poweroffing\n}
eof abort
timeout abort
}
expect eof
wait
EOF
expect -d expect.txt > expect.out
|