diff options
Diffstat (limited to 'recipes-test/virt-test/virt-test-qemu_git.bb')
-rw-r--r-- | recipes-test/virt-test/virt-test-qemu_git.bb | 118 |
1 files changed, 118 insertions, 0 deletions
diff --git a/recipes-test/virt-test/virt-test-qemu_git.bb b/recipes-test/virt-test/virt-test-qemu_git.bb new file mode 100644 index 0000000..40f4e56 --- /dev/null +++ b/recipes-test/virt-test/virt-test-qemu_git.bb | |||
@@ -0,0 +1,118 @@ | |||
1 | SUMMARY = "Linux Virtualization Tests - qemu tests" | ||
2 | DESCRIPTION = "Qemu tests for the virt-test test framework" | ||
3 | HOMEPAGE = "https://github.com/autotest/tp-qemu" | ||
4 | SECTION = "console/tests" | ||
5 | LICENSE = "GPLv2" | ||
6 | LIC_FILES_CHKSUM = "file://LICENSE;md5=575f01e0b7a35e73c8e52ca65fd72bdc" | ||
7 | |||
8 | def if_arch_re(regexp, trueval, falseval, d): | ||
9 | import re | ||
10 | target_arch = bb.data.getVar('TARGET_ARCH', d, 1) | ||
11 | return trueval if re.match(regexp, target_arch) else falseval | ||
12 | |||
13 | RDEPENDS_${PN} = "virt-test iperf ntpdate stress python-netserver \ | ||
14 | ${@if_arch_re("^(i[3-9]86|x86_64)", "virt-test-qemu-guest-timedrift virt-test-qemu-guest-cpuflags", "", d)} \ | ||
15 | " | ||
16 | DEPENDS += "popt" | ||
17 | |||
18 | # Use date of commit pointed to by SRCREV | ||
19 | PV = "2014.04.16" | ||
20 | SRCREV = "3e15869b4b838c47ce9ea0d4916e1edb89ccc58e" | ||
21 | |||
22 | SRC_URI = "git://github.com/autotest/tp-qemu \ | ||
23 | file://qemu-tests-multi-nic-stress.patch \ | ||
24 | file://qemu-tests-time-drift-config.patch \ | ||
25 | file://qemu-tests-tsc-sync-build-avoidance.patch \ | ||
26 | file://qemu-tests-tsc-sync-config.patch \ | ||
27 | file://qemu-tests-pipetest-config.patch \ | ||
28 | file://qemu-tests-nx-exploit-config.patch \ | ||
29 | file://qemu-tests-clock-getres-config.patch \ | ||
30 | file://qemu-tests-stress-config.patch \ | ||
31 | file://qemu-tests-virtual-nic-send-buffer-config.patch \ | ||
32 | file://qemu-tests-cpuflags-migrate-to-provider.patch \ | ||
33 | file://qemu-tests-cpuflags-build-avoidance.patch \ | ||
34 | file://qemu-tests-cpuflags-conf.patch \ | ||
35 | file://qemu-tests-cyclictest.patch \ | ||
36 | " | ||
37 | |||
38 | S = "${WORKDIR}/git" | ||
39 | B = "${S}" | ||
40 | |||
41 | DESTDIR = "/opt/virt-test/test-providers.d/downloads/io-github-autotest-qemu" | ||
42 | |||
43 | FILES_${PN} += "${DESTDIR}" | ||
44 | |||
45 | FILES_${PN}-dbg = " \ | ||
46 | ${DESTDIR}/qemu/deps/timedrift/.debug/* \ | ||
47 | ${DESTDIR}/qemu/deps/tsc_sync/.debug/* \ | ||
48 | ${DESTDIR}/qemu/deps/nx/.debug/* \ | ||
49 | ${DESTDIR}/generic/deps/clock_getres/.debug/clock_getres \ | ||
50 | ${DESTDIR}/deps/cpu_flags/src/.debug/cpuflags-test-* \ | ||
51 | " | ||
52 | |||
53 | PACKAGES =+ "${PN}-guest-timedrift ${PN}-guest-tsc-sync ${PN}-guest-nx \ | ||
54 | ${PN}-guest-clock-getres ${PN}-guest-cpuflags" | ||
55 | |||
56 | DESCRIPTION_${PN}-guest-timedrift= "Clock test application for time drift test case" | ||
57 | FILES_${PN}-guest-timedrift = "${DESTDIR}/qemu/deps/timedrift/clktest \ | ||
58 | ${DESTDIR}/qemu/deps/timedrift/get_tsc" | ||
59 | |||
60 | DESCRIPTION_${PN}-guest-tsc-sync = "Clock test application for time warp test case" | ||
61 | FILES_${PN}-guest-tsc-sync = "${DESTDIR}/qemu/deps/tsc_sync/time-warp-test" | ||
62 | |||
63 | DESCRIPTION_${PN}-guest-nx = "Test application for the NX (no execution) flag" | ||
64 | FILES_${PN}-guest-nx = "${DESTDIR}/qemu/deps/nx/nx_exploit" | ||
65 | |||
66 | DESCRIPTION_${PN}-guest-clock-getres = "Clock resolution test application" | ||
67 | FILES_${PN}-guest-clock-getres = "${DESTDIR}/generic/deps/clock_getres/clock_getres" | ||
68 | |||
69 | DESCRIPTION_${PN}-guest-cpuflags = "CPU flag test application" | ||
70 | FILES_${PN}-guest-cpuflags = "${DESTDIR}/deps/cpu_flags/src/cpuflags-test-*" | ||
71 | RDEPENDS_${PN}-guest-cpuflags =+ "libgomp" | ||
72 | |||
73 | do_compile_x86() { | ||
74 | # guest-timedrift | ||
75 | cd ${S}/qemu/deps/timedrift/ | ||
76 | ${CC} get_tsc.c -o get_tsc | ||
77 | |||
78 | # guest-tsc-sync | ||
79 | cd ${S}/qemu/deps/tsc_sync/ | ||
80 | ${CC} -I${STAGING_DIR_TARGET}/usr/include -Wall -o time-warp-test time-warp-test.c -lrt | ||
81 | |||
82 | # guest-nx | ||
83 | cd ${S}/qemu/deps/nx/ | ||
84 | ${CC} -o nx_exploit x64_sc_rdo.c | ||
85 | |||
86 | # guest-cpuflags | ||
87 | # Note: The $GCC_INCLUDEDIR should be searched for include files according to | ||
88 | # http://gcc.gnu.org/onlinedocs/cpp/Search-Path.html. However, it seems that | ||
89 | # gcc-cross searches in e.g. | ||
90 | # .../sysroots/x86_64-linux/usr/lib/corei7-64-enea-linux/gcc/x86_64-enea-linux/4.8.2/include/ | ||
91 | # instead of | ||
92 | # .../sysroots/chiefriver/usr/lib/gcc/x86_64-enea-linux/4.8.2/include, | ||
93 | # despite --sysroot= pointing to the latter (.../sysroots/chiefriver). | ||
94 | export TARGET=`${CC} -v 2>&1 | grep ^Target | cut -d' ' -f2` | ||
95 | export GCC_VERSION=`${CC} -v 2>&1 | grep '^gcc version' | cut -d' ' -f3` | ||
96 | export GCC_INCLUDEDIR=$PKG_CONFIG_SYSROOT_DIR$libdir/gcc/$TARGET/$GCC_VERSION/include | ||
97 | make -C ${S}/deps/cpu_flags/src/ CFLAGS="-I$GCC_INCLUDEDIR" EXTRA_FLAGS='' | ||
98 | make -C ${S}/deps/cpu_flags/src/ CFLAGS="-I$GCC_INCLUDEDIR" EXTRA_FLAGS='-msse3 -msse2' | ||
99 | # Avoid .o files in the package | ||
100 | rm -rf ${S}/qemu/deps/cpu_flags/src/build-* | ||
101 | } | ||
102 | |||
103 | do_compile() { | ||
104 | # guest-timedrift | ||
105 | cd ${S}/qemu/deps/timedrift/ | ||
106 | ${CC} clktest.c -o clktest -lrt | ||
107 | |||
108 | # guest-clock-getres | ||
109 | make -C ${S}/generic/deps/clock_getres/ | ||
110 | |||
111 | # Architecture-specific applications | ||
112 | ${@if_arch_re("^(i[3-9]86|x86_64)", "do_compile_x86", "", d)} | ||
113 | } | ||
114 | |||
115 | do_install() { | ||
116 | install -d ${D}/${DESTDIR} | ||
117 | cp -r --preserve=mode,links ${B}/* ${D}/${DESTDIR} | ||
118 | } | ||