summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdrian Dudau <adrian.dudau@enea.com>2016-01-15 17:41:35 +0100
committerAdrian Dudau <adrian.dudau@enea.com>2016-01-15 17:41:35 +0100
commit7f60d25a516f38a4d512e12e042a75a36dede2b8 (patch)
treeada9077e38ef332aa7c904c3ad274c1616104ac1
parent31ce2d1a14de6d8439829dc8a046aeaeef734461 (diff)
downloadmeta-vt-dizzy-enea.tar.gz
initial commit for Enea Linux 5.0-ppcdizzy-enea
Signed-off-by: Adrian Dudau <adrian.dudau@enea.com>
-rwxr-xr-xrecipes-append/systest-runner/files/tests/virt-test247
-rw-r--r--recipes-append/systest-runner/systest-runner.bbappend12
-rw-r--r--recipes-kernel/linux/linux-qoriq_3.12.bbappend19
3 files changed, 10 insertions, 268 deletions
diff --git a/recipes-append/systest-runner/files/tests/virt-test b/recipes-append/systest-runner/files/tests/virt-test
deleted file mode 100755
index 44bd79f..0000000
--- a/recipes-append/systest-runner/files/tests/virt-test
+++ /dev/null
@@ -1,247 +0,0 @@
1#!/bin/sh
2
3filter_output() {
4 test_name="$1"
5 debug_dir=""
6 while read row; do
7 echo "# $row"
8 # Output is colorized; remove escape characters
9 row_cleaned=`echo "$row" | sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g"`
10 # Transform "SETUP: PASS|FAIL" to "SETUP ($test_name): PASS|FAIL"
11 row_cleaned=`echo "$row_cleaned" | sed "s/^SETUP:/SETUP ($test_name):/"`
12 if echo "$row_cleaned" | grep -q '^[^:]*: \(PASS\|FAIL\|ERROR\)\( \[result=[^]]*\]\)\? ([0-9\.]\{1,\} s)$'; then
13 # The row is a test result
14 test_case=`echo "$row_cleaned" | grep -o '^\(SETUP\|([0-9]\{1,\}/[0-9]\{1,\})\)[^:]*' | sed 's|^([0-9]\{1,\}/[0-9]\{1,\}) ||'`
15 status=`echo "$row_cleaned" | grep -o ': \(PASS\|FAIL\|ERROR\)' | sed -e 's/^: //' -e 's/ERROR/FAIL/'`
16 echo -n "$status: $test_case"
17 # Are there any textual results to be appended?
18 keyval_file="$debug_dir/$test_case/keyval"
19 if [ -n "$debug_dir" -a -e "$keyval_file" ]; then
20 result=`grep '^result=' $keyval_file | sed 's/^result=//'`
21 if [ -n "$result" ]; then
22 echo -n " [result=$result]"
23 fi
24 fi
25 echo ""
26 elif echo "$row_cleaned" | grep -q '^DEBUG LOG: '; then
27 # The row specifies the path to the debug log: Extract the debug directory and save it
28 debug_dir=`echo "$row_cleaned" | sed -e 's,^DEBUG LOG: ,,' -e 's,/debug\.log$,,'`
29 fi
30 done
31}
32
33create_empty_image() {
34 IMAGE_NAME="$1"
35 COMPRESSION_TYPE="$2"
36
37 COMPRESSED_IMAGE_NAME="${IMAGE_NAME}.${COMPRESSION_TYPE}"
38 if [ -z "$COMPRESSION_TYPE" ]; then
39 COMPRESSED_IMAGE_NAME="${IMAGE_NAME}"
40 fi
41 SHA1_NAME="${COMPRESSED_IMAGE_NAME}.sha1"
42
43 pushd /opt/virt-test/shared/data/images/ &> /dev/null
44
45 rm -f "$IMAGE_NAME" "$SHA1_NAME" "$COMPRESSED_IMAGE_NAME"
46 rm -f "${IMAGE_NAME}.backup"
47
48 echo "# Creating empty image ${IMAGE_NAME}"
49 qemu-img create -f qcow2 ${IMAGE_NAME} 10M
50 case "$COMPRESSION_TYPE" in
51 bz2)
52 bzip2 -c "$IMAGE_NAME" > "$COMPRESSED_IMAGE_NAME"
53 ;;
54 gz)
55 gzip -c "$IMAGE_NAME" > "$COMPRESSED_IMAGE_NAME"
56 ;;
57 xz)
58 xz -c "$IMAGE_NAME" > "$COMPRESSED_IMAGE_NAME"
59 ;;
60 *)
61 echo "ERROR: Invalid compression type: $COMPRESSION_TYPE"
62 popd
63 exit 1
64 ;;
65 esac
66 sha1sum "$COMPRESSED_IMAGE_NAME" > "$SHA1_NAME"
67
68 cp "$IMAGE_NAME" "${IMAGE_NAME}.backup"
69
70 echo "# Empty image $IMAGE_NAME created"
71 echo
72
73 popd &> /dev/null
74}
75
76get_image() {
77 URL_BASE="$1"
78 IMAGE_NAME="$2"
79 COMPRESSION_TYPE="$3"
80
81 COMPRESSED_IMAGE_NAME="${IMAGE_NAME}.${COMPRESSION_TYPE}"
82 if [ -z "$COMPRESSION_TYPE" ]; then
83 COMPRESSED_IMAGE_NAME="${IMAGE_NAME}"
84 fi
85 SHA1_NAME="${COMPRESSED_IMAGE_NAME}.sha1"
86 COMPRESSED_IMAGE_URL="${URL_BASE}/${COMPRESSED_IMAGE_NAME}"
87 SHA1_URL="${URL_BASE}/${SHA1_NAME}"
88
89 pushd /opt/virt-test/shared/data/images/ &> /dev/null
90
91 rm -f "$IMAGE_NAME" "$SHA1_NAME" "$COMPRESSED_IMAGE_NAME"
92 rm -f "${IMAGE_NAME}.backup"
93
94 echo "# Downloading $COMPRESSED_IMAGE_URL"
95 wget $COMPRESSED_IMAGE_URL
96 wget $SHA1_URL
97
98 if ! sha1sum -c "$SHA1_NAME" > /dev/null; then
99 echo "ERROR: Invalid sha1 sum!"
100 exit 1
101 fi
102
103 echo "# Uncompressing $COMPRESSED_IMAGE_NAME -> $IMAGE_NAME"
104 case "$COMPRESSION_TYPE" in
105 bz2)
106 bunzip2 -c "$COMPRESSED_IMAGE_NAME" > "$IMAGE_NAME"
107 ;;
108 gz)
109 gunzip -c "$COMPRESSED_IMAGE_NAME" > "$IMAGE_NAME"
110 ;;
111 xz)
112 unxz -c "$COMPRESSED_IMAGE_NAME" > "$IMAGE_NAME"
113 ;;
114 "")
115 ;;
116 *)
117 echo "ERROR: Invalid compression type: $COMPRESSION_TYPE"
118 popd
119 exit 1
120 ;;
121 esac
122
123 cp "$IMAGE_NAME" "${IMAGE_NAME}.backup"
124
125 echo "# Download of $IMAGE_NAME completed"
126 echo
127
128 popd &> /dev/null
129}
130
131# Verbose?
132VERBOSE=
133if [ "$1" = '-v' ]; then
134 VERBOSE=1
135 set -x
136fi
137
138# Servers
139NTP_SERVER=ntp.enea.se
140
141# Architecture
142ARCH=`uname -m`
143
144# Needed by virt-test
145export AUTOTEST_PATH="/opt/autotest/"
146
147# Init LVM
148DEST_DIR=/opt/virt-test/shared/data
149if ! [ -e /dev/rootvg ]; then
150 vgchange -ay
151 udevadm settle # Wait for device nodes
152fi
153if [ -e /dev/rootvg ]; then
154 if ! [ -e /dev/rootvg/virttestdatalv ]; then
155 if ! lvcreate -L30G -n virttestdatalv /dev/rootvg; then
156 echo "ERROR: Unable to create virttestdatalv!" >&2
157 exit 1
158 fi
159 udevadm settle
160 if ! mkfs.ext4 /dev/rootvg/virttestdatalv; then
161 echo "ERROR: Unable to format virttestdatalv!" >&2
162 exit 1
163 fi
164 fi
165
166 # Mount the virttestdatalv
167 mkdir -p $DEST_DIR
168 if ! mountpoint -q $DEST_DIR; then
169 if ! mount /dev/rootvg/virttestdatalv $DEST_DIR; then
170 echo "ERROR: Unable to mount virttestdatalv!" >&2
171 exit 1
172 fi
173 fi
174else
175 echo "WARNING: No rootvg volume group! Continuing anyway" >&2
176fi
177(
178 cd $DEST_DIR
179 mkdir -p gpg images isos steps_data
180)
181
182# Sync the clock before starting tests, as some tests will do this, and thereby
183# cause tests that run for a negative amount of time unless the time is synced
184# from the very beginning
185ntpdate $NTP_SERVER
186
187# Download/create images, kernel, initrd
188JEOS_VERSION="19-64"
189ENEA_VERSION="4.0"
190# virt-test will try to unpack the images for all architectures, even though
191# they are not used, so always create the (empty) images.
192create_empty_image "enea-${ENEA_VERSION}-x86_64.qcow2" "gz"
193create_empty_image "enea-${ENEA_VERSION}-ppc.qcow2" "gz"
194create_empty_image "enea-${ENEA_VERSION}-ppc64.qcow2" "gz"
195if [ "$ARCH" = "x86_64" ]; then
196 #get_image "http://172.21.3.124/~jori/jeos/" "jeos-${JEOS_VERSION}.qcow2" "bz2"
197 get_image "http://172.21.3.124/~jori/enea/" "enea-${ENEA_VERSION}-${ARCH}.qcow2" "gz"
198elif [ "$ARCH" = "ppc" -o "$ARCH" = "ppc64" ]; then
199 get_image "http://172.21.3.124/~jori/enea/" "enea-${ENEA_VERSION}-${ARCH}.uImage" ""
200 get_image "http://172.21.3.124/~jori/enea/" "enea-${ENEA_VERSION}-${ARCH}.cpio.gz" ""
201else
202 echo "ERROR: Architecture '$ARCH' not supported"
203 exit 1
204fi
205
206# Create virbr0
207if ! [ -e /sys/class/net/virbr0 ]; then
208 ip link add virbr0 type bridge
209 ip addr add dev virbr0 10.99.99.1/24
210 ip link set virbr0 up
211 /etc/init.d/dnsmasq stop
212 sleep 5
213 /etc/init.d/dnsmasq start
214fi
215
216# Run tests
217cd /opt/virt-test/
218QEMU_BIN=`which qemu-system-$ARCH`
219OPTS="--qemu-bin=$QEMU_BIN --qemu_sandbox=off --no-downloads"
220if ! [ "$VERBOSE" = "" ]; then
221 OPTS="$OPTS -v"
222fi
223
224declare -a TEST_SUITE TEST_SUITE_EXTRAOPTS TEST_CASES
225
226TEST_SUITE[0]="qemu"
227TEST_SUITE_EXTRAOPTS[0]=""
228TEST_CASES[0]="check_clock_offset.with_syscall,migrate.default.fd,pong"
229
230TEST_SUITE[1]="libvirt"
231TEST_SUITE_EXTRAOPTS[1]=""
232if [ "$ARCH" = "x86_64" ]; then
233 TEST_SUITE_EXTRAOPTS[1]="--machine-type=q35"
234fi
235TEST_CASES[1]="virsh.volume"
236
237for (( i=0; i<${#TEST_SUITE[@]}; i++ )); do
238 # Update machine.cfg
239 cp /opt/virt-test/shared/cfg/machines.cfg \
240 /opt/virt-test/backends/${TEST_SUITE[$i]}/cfg/
241
242 # Run tests
243 echo "# Running ${TEST_SUITE[$i]} tests ${TEST_CASES[$i]}"
244 ./run $OPTS ${TEST_SUITE_EXTRAOPTS[$i]} -g Enea -t "${TEST_SUITE[$i]}" \
245 --tests="${TEST_CASES[$i]}" --arch=$ARCH 2>&1 \
246 | filter_output "${TEST_SUITE[$i]}"
247done
diff --git a/recipes-append/systest-runner/systest-runner.bbappend b/recipes-append/systest-runner/systest-runner.bbappend
deleted file mode 100644
index 9c6dc67..0000000
--- a/recipes-append/systest-runner/systest-runner.bbappend
+++ /dev/null
@@ -1,12 +0,0 @@
1FILESEXTRAPATHS_append := ":${THISDIR}/files"
2
3VIRT_TEST_SRC_URI = "file://tests/virt-test"
4SRC_URI_append_corei7-64-intel-common = "${VIRT_TEST_SRC_URI}"
5SRC_URI_append_e500mc = "${VIRT_TEST_SRC_URI}"
6SRC_URI_append_b4860qds-64b = "${VIRT_TEST_SRC_URI}"
7
8VIRT_TEST_RDEPENDS = "lvm2 e2fsprogs virt-test virt-test-libvirt virt-test-qemu \
9 ntpdate bzip2 coreutils"
10RDEPENDS_${PN}_append_corei7-64-intel-common = "${VIRT_TEST_RDEPENDS}"
11RDEPENDS_${PN}_append_e500mc = "${VIRT_TEST_RDEPENDS}"
12RDEPENDS_${PN}_append_b4860qds-64b = "${VIRT_TEST_RDEPENDS}"
diff --git a/recipes-kernel/linux/linux-qoriq_3.12.bbappend b/recipes-kernel/linux/linux-qoriq_3.12.bbappend
index f037b6f..700ef80 100644
--- a/recipes-kernel/linux/linux-qoriq_3.12.bbappend
+++ b/recipes-kernel/linux/linux-qoriq_3.12.bbappend
@@ -10,15 +10,16 @@ SRC_URI =+ "\
10 " 10 "
11 11
12VIRT_FEATURES = "\ 12VIRT_FEATURES = "\
13 cfg/00035-netfilter \ 13 cfg/00035-netfilter.cfg \
14 cfg/00036-ppc_virt \ 14 cfg/00036-ppc_virt.cfg \
15 cfg/00037-ppc_lxc \ 15 cfg/00037-ppc_lxc.cfg \
16 cfg/00040-9p \ 16 cfg/00040-9p.cfg \
17 cfg/00041-virtio \ 17 cfg/00041-virtio.cfg \
18 cfg/00042-vhost \ 18 cfg/00042-vhost.cfg \
19 cfg/00048-containers_no_user_ns \ 19 cfg/00048-containers_no_user_ns.cfg \
20" 20"
21 21
22 22
23KERNEL_FEATURES_append_powerpc= " ${VIRT_FEATURES}" 23STAGING_KERNEL_FEATURES_append_powerpc= " ${VIRT_FEATURES}"
24KERNEL_FEATURES_remove_e500v2 = "cfg/00036-ppc_virt" 24STAGING_KERNEL_FEATURES_append_powerpc64= " ${VIRT_FEATURES}"
25STAGING_KERNEL_FEATURES_remove_e500v2 = "cfg/00036-ppc_virt.cfg"