From c158582c0fc7f4bd73980fe9adad446855f4d61b Mon Sep 17 00:00:00 2001 From: Tudor Florea Date: Fri, 10 Oct 2014 03:19:54 +0200 Subject: initial commit for Enea Linux 4.0-140929 Migrated from the internal git server on the daisy-enea-point-release branch Signed-off-by: Tudor Florea --- recipes-test/virt-test/virt-test-qemu_git.bb | 118 +++++++++++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100644 recipes-test/virt-test/virt-test-qemu_git.bb (limited to 'recipes-test/virt-test/virt-test-qemu_git.bb') 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 @@ +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} +} -- cgit v1.2.3-54-g00ecf