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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
|
SUMMARY = "Linux Virtualization Tests - qemu tests"
DESCRIPTION = "Qemu tests for the virt-test test framework"
HOMEPAGE = "https://github.com/autotest/tp-qemu"
SECTION = "console/tests"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://LICENSE;md5=575f01e0b7a35e73c8e52ca65fd72bdc"
def if_arch_re(regexp, trueval, falseval, d):
import re
target_arch = bb.data.getVar('TARGET_ARCH', d, 1)
return trueval if re.match(regexp, target_arch) else falseval
RDEPENDS_${PN} = "virt-test iperf ntpdate stress python-netserver \
${@if_arch_re("^(i[3-9]86|x86_64)", "virt-test-qemu-guest-timedrift virt-test-qemu-guest-cpuflags", "", d)} \
"
DEPENDS += "popt"
# Use date of commit pointed to by SRCREV
PV = "2014.04.16"
SRCREV = "3e15869b4b838c47ce9ea0d4916e1edb89ccc58e"
SRC_URI = "git://github.com/autotest/tp-qemu \
file://qemu-tests-multi-nic-stress.patch \
file://qemu-tests-time-drift-config.patch \
file://qemu-tests-tsc-sync-build-avoidance.patch \
file://qemu-tests-tsc-sync-config.patch \
file://qemu-tests-pipetest-config.patch \
file://qemu-tests-nx-exploit-config.patch \
file://qemu-tests-clock-getres-config.patch \
file://qemu-tests-stress-config.patch \
file://qemu-tests-virtual-nic-send-buffer-config.patch \
file://qemu-tests-cpuflags-migrate-to-provider.patch \
file://qemu-tests-cpuflags-build-avoidance.patch \
file://qemu-tests-cpuflags-conf.patch \
file://qemu-tests-cyclictest.patch \
"
S = "${WORKDIR}/git"
B = "${S}"
DESTDIR = "/opt/virt-test/test-providers.d/downloads/io-github-autotest-qemu"
FILES_${PN} += "${DESTDIR}"
FILES_${PN}-dbg = " \
${DESTDIR}/qemu/deps/timedrift/.debug/* \
${DESTDIR}/qemu/deps/tsc_sync/.debug/* \
${DESTDIR}/qemu/deps/nx/.debug/* \
${DESTDIR}/generic/deps/clock_getres/.debug/clock_getres \
${DESTDIR}/deps/cpu_flags/src/.debug/cpuflags-test-* \
"
PACKAGES =+ "${PN}-guest-timedrift ${PN}-guest-tsc-sync ${PN}-guest-nx \
${PN}-guest-clock-getres ${PN}-guest-cpuflags"
DESCRIPTION_${PN}-guest-timedrift= "Clock test application for time drift test case"
FILES_${PN}-guest-timedrift = "${DESTDIR}/qemu/deps/timedrift/clktest \
${DESTDIR}/qemu/deps/timedrift/get_tsc"
DESCRIPTION_${PN}-guest-tsc-sync = "Clock test application for time warp test case"
FILES_${PN}-guest-tsc-sync = "${DESTDIR}/qemu/deps/tsc_sync/time-warp-test"
DESCRIPTION_${PN}-guest-nx = "Test application for the NX (no execution) flag"
FILES_${PN}-guest-nx = "${DESTDIR}/qemu/deps/nx/nx_exploit"
DESCRIPTION_${PN}-guest-clock-getres = "Clock resolution test application"
FILES_${PN}-guest-clock-getres = "${DESTDIR}/generic/deps/clock_getres/clock_getres"
DESCRIPTION_${PN}-guest-cpuflags = "CPU flag test application"
FILES_${PN}-guest-cpuflags = "${DESTDIR}/deps/cpu_flags/src/cpuflags-test-*"
RDEPENDS_${PN}-guest-cpuflags =+ "libgomp"
do_compile_x86() {
# guest-timedrift
cd ${S}/qemu/deps/timedrift/
${CC} get_tsc.c -o get_tsc
# guest-tsc-sync
cd ${S}/qemu/deps/tsc_sync/
${CC} -I${STAGING_DIR_TARGET}/usr/include -Wall -o time-warp-test time-warp-test.c -lrt
# guest-nx
cd ${S}/qemu/deps/nx/
${CC} -o nx_exploit x64_sc_rdo.c
# guest-cpuflags
# Note: The $GCC_INCLUDEDIR should be searched for include files according to
# http://gcc.gnu.org/onlinedocs/cpp/Search-Path.html. However, it seems that
# gcc-cross searches in e.g.
# .../sysroots/x86_64-linux/usr/lib/corei7-64-enea-linux/gcc/x86_64-enea-linux/4.8.2/include/
# instead of
# .../sysroots/chiefriver/usr/lib/gcc/x86_64-enea-linux/4.8.2/include,
# despite --sysroot= pointing to the latter (.../sysroots/chiefriver).
export TARGET=`${CC} -v 2>&1 | grep ^Target | cut -d' ' -f2`
export GCC_VERSION=`${CC} -v 2>&1 | grep '^gcc version' | cut -d' ' -f3`
export GCC_INCLUDEDIR=$PKG_CONFIG_SYSROOT_DIR$libdir/gcc/$TARGET/$GCC_VERSION/include
make -C ${S}/deps/cpu_flags/src/ CFLAGS="-I$GCC_INCLUDEDIR" EXTRA_FLAGS=''
make -C ${S}/deps/cpu_flags/src/ CFLAGS="-I$GCC_INCLUDEDIR" EXTRA_FLAGS='-msse3 -msse2'
# Avoid .o files in the package
rm -rf ${S}/qemu/deps/cpu_flags/src/build-*
}
do_compile() {
# guest-timedrift
cd ${S}/qemu/deps/timedrift/
${CC} clktest.c -o clktest -lrt
# guest-clock-getres
make -C ${S}/generic/deps/clock_getres/
# Architecture-specific applications
${@if_arch_re("^(i[3-9]86|x86_64)", "do_compile_x86", "", d)}
}
do_install() {
install -d ${D}/${DESTDIR}
cp -r --preserve=mode,links ${B}/* ${D}/${DESTDIR}
}
|