aboutsummaryrefslogtreecommitdiffstats
path: root/meta-agl-core-test
diff options
context:
space:
mode:
authorJan-Simon Moeller <jsmoeller@linuxfoundation.org>2020-12-08 11:12:45 +0100
committerJan-Simon Moeller <jsmoeller@linuxfoundation.org>2020-12-17 13:59:52 +0000
commit1c3c06842ac1b9c089d0a08e91c60f44e4844fac (patch)
tree21e97368be8f78a3e76b66dfda24c1d5e774519f /meta-agl-core-test
parentc1e048fc05542d859115990312e0753ce2dea72e (diff)
SPEC-3723: restructure meta-agl
Goal is to reach a minimal meta-agl-core as base for IVI and IC work at the same time. Trim dependencies and move most 'demo' related recipes to meta-agl-demo. v2: changed to bbapend + .inc , added description v3: testbuild of all images v4: restore -test packagegroup and -qa images, compare manifests and adapt packagegroups. v5: rebased v6: merged meta-agl-distro into meta-agl-core, due to dependency on meta-oe, moved -test packagegroup and -qa images to own layer meta-agl-core-test v7: Fixed comments from Paul Barker v8: Update the markdown files v9: restore wayland/weston/agl-compositor recipes/appends, reworked to move app f/w specific changes to bbappends in meta-app-framework and only demo specific weston-init changes to meta-agl-demo v10: fix s/agldemo/aglcore/ missed in weston-init.bbappend Description: This patch is part 1 out of 2 large patches that implement the layer rework discussed during the previous workshop. Essentially meta-agl-core is the small but versatile new core layer of AGL serving as basis for the work done by the IC and IVI EGs. All demo related work is moved to meta-agl-demo in the 2nd patchset. This should be applied together as atomic change. The resulting meta-agl/* follows these guidelines: - only bsp adaptations in meta-agl-bsp - remove the agl-profile-* layers for simplicity -- the packagegroup-agl(-profile)-graphical and so on have been kept in meta-agl-demo - meta-agl-profile-core is now meta-agl-core - meta-agl-core does pass yocto-check-layer -- therefore use the bbappend + conditional + .inc file construct found in meta-virtualization - meta-agl/meta-security has been merged into meta-agl/meta-app-framework - meta-netboot does pass yocto-check-layer - meta-pipewire does pass yocto-check-layer Migration: All packagegroups are preserved but they're now enabled by 'agl-demo'. Bug-AGL: SPEC-3723 Signed-off-by: Jan-Simon Moeller <jsmoeller@linuxfoundation.org> Signed-off-by: Scott Murray <scott.murray@konsulko.com> Change-Id: Ia6c6e5e6ce2b4ffa69ea94959cdc57c310ba7c53 Reviewed-on: https://gerrit.automotivelinux.org/gerrit/c/AGL/meta-agl/+/25769
Diffstat (limited to 'meta-agl-core-test')
-rw-r--r--meta-agl-core-test/conf/include/agl-test.inc0
-rw-r--r--meta-agl-core-test/conf/layer.conf14
-rw-r--r--meta-agl-core-test/images/agl-image-minimal-qa.bb12
-rw-r--r--meta-agl-core-test/recipes-test/aiostress/aiostress_0.22.bb24
-rw-r--r--meta-agl-core-test/recipes-test/dung/dung_3.4.25-m2.bb18
-rw-r--r--meta-agl-core-test/recipes-test/ebizzy/ebizzy_0.3.bb20
-rw-r--r--meta-agl-core-test/recipes-test/ffsb/ffsb_6.0-rc2.bb14
-rw-r--r--meta-agl-core-test/recipes-test/fontconfig/fontconfig_%.bbappend18
-rw-r--r--meta-agl-core-test/recipes-test/freetype/files/0001-Makefile-dont-build-gfx-demos.patch32
-rw-r--r--meta-agl-core-test/recipes-test/freetype/files/0001-ft2demos-Makefile-Do-not-hardcode-libtool-path.patch30
-rw-r--r--meta-agl-core-test/recipes-test/freetype/freetype_2.%.bbappend34
-rw-r--r--meta-agl-core-test/recipes-test/fsfuzzer/files/0001-fix_missing_header_sys_stat.patch11
-rw-r--r--meta-agl-core-test/recipes-test/fsfuzzer/fsfuzzer_0.7.bb18
-rw-r--r--meta-agl-core-test/recipes-test/glmark2/glmark2_%.bbappendNOT7
-rw-r--r--meta-agl-core-test/recipes-test/himeno/himeno_2.0.bb27
-rw-r--r--meta-agl-core-test/recipes-test/interbench/files/interbench.c.patch68
-rw-r--r--meta-agl-core-test/recipes-test/interbench/interbench_0.31.bb31
-rw-r--r--meta-agl-core-test/recipes-test/ipv6connect/ipv6connect.bb24
-rw-r--r--meta-agl-core-test/recipes-test/linpack/linpack.bb23
-rw-r--r--meta-agl-core-test/recipes-test/linus-stress/linus-stress.bb23
-rw-r--r--meta-agl-core-test/recipes-test/packagegroups/packagegroup-agl-test.bb68
-rw-r--r--meta-agl-core-test/recipes-test/trinity/trinity_git.bb42
22 files changed, 558 insertions, 0 deletions
diff --git a/meta-agl-core-test/conf/include/agl-test.inc b/meta-agl-core-test/conf/include/agl-test.inc
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/meta-agl-core-test/conf/include/agl-test.inc
diff --git a/meta-agl-core-test/conf/layer.conf b/meta-agl-core-test/conf/layer.conf
new file mode 100644
index 000000000..2ce0c18f1
--- /dev/null
+++ b/meta-agl-core-test/conf/layer.conf
@@ -0,0 +1,14 @@
+# We have a conf and classes directory, add to BBPATH
+BBPATH =. "${LAYERDIR}:"
+
+# We have recipes-* directories, add to BBFILES
+BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
+ ${LAYERDIR}/recipes-*/*/*.bbappend"
+
+BBFILE_COLLECTIONS += "aglcoretest"
+BBFILE_PATTERN_aglcoretest = "^${LAYERDIR}/"
+BBFILE_PRIORITY_aglcoretest = "60"
+
+LAYERSERIES_COMPAT_aglcoretest = "dunfell"
+LAYERDEPENDS_aglcoretest = "core aglcore"
+LAYERDEPENDS_aglcoretest += "openembedded-layer"
diff --git a/meta-agl-core-test/images/agl-image-minimal-qa.bb b/meta-agl-core-test/images/agl-image-minimal-qa.bb
new file mode 100644
index 000000000..b162f2904
--- /dev/null
+++ b/meta-agl-core-test/images/agl-image-minimal-qa.bb
@@ -0,0 +1,12 @@
+SUMMARY = "An AGL small image just capable of allowing a device to boot and run tests."
+
+DESCRIPTION = "A minimal set of AGL Distribution. This image also has additional \
+packages (e.g. commandline tools) for Quality Assurance(QA)."
+
+require agl-image-minimal.bb
+
+LICENSE = "MIT"
+
+IMAGE_INSTALL_append = " \
+ packagegroup-ivi-common-test \
+ "
diff --git a/meta-agl-core-test/recipes-test/aiostress/aiostress_0.22.bb b/meta-agl-core-test/recipes-test/aiostress/aiostress_0.22.bb
new file mode 100644
index 000000000..7803d74ed
--- /dev/null
+++ b/meta-agl-core-test/recipes-test/aiostress/aiostress_0.22.bb
@@ -0,0 +1,24 @@
+SUMMARY = "Async IO testing utility"
+DESCRIPTION = "aio-stress will open or create each file on the command line, and start a series of aio to it.\
+aio is done in a rotating loop. first file1 gets 8 requests, then file2, then file3 etc.\
+As each file finishes writing, it is switched to reads io buffers are aligned in case you want to do raw io"
+HOMEPAGE = "https://oss.oracle.com/~mason/aio-stress/"
+LICENSE = "GPLv2"
+
+S="${WORKDIR}"
+
+LIC_FILES_CHKSUM = "file://${S}/aio-stress.c;md5=ccb5d196a3736bbd835d582a4e2329c3"
+
+SRC_URI = "https://oss.oracle.com/~mason/aio-stress/aio-stress.c"
+SRC_URI[md5sum] = "ccb5d196a3736bbd835d582a4e2329c3"
+SRC_URI[sha256sum] = "3f4cffcc946fb717fff9d8fe932c7c2ee606efff198408d9fbe16955151445f7"
+
+do_compile () {
+ ${CC} -Wall -Wshadow -o aio-stress -lpthread -laio aio-stress.c
+}
+
+do_install () {
+ install -d ${D}${bindir}
+ install -m 0755 aio-stress ${D}${bindir}
+}
+
diff --git a/meta-agl-core-test/recipes-test/dung/dung_3.4.25-m2.bb b/meta-agl-core-test/recipes-test/dung/dung_3.4.25-m2.bb
new file mode 100644
index 000000000..28bf858a0
--- /dev/null
+++ b/meta-agl-core-test/recipes-test/dung/dung_3.4.25-m2.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Kernel test scripts"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6"
+
+SRC_URI = "git://gerrit.automotivelinux.org/gerrit/src/qa-test-misc;protocol=https;branch=${AGL_BRANCH}"
+SRCREV = "e2472c7b1d061aef8bb05a4d7940fd8159c4a329"
+
+inherit allarch
+
+S = "${WORKDIR}/git/${PN}-${PV}"
+
+do_install () {
+ for subdir in arch_timer cmt common scifab sdhi.0; do
+ install -d -m 0755 ${D}/${datadir}/${PN}/$subdir
+ install -m 0755 -t ${D}/${datadir}/${PN}/$subdir ${S}/$subdir/*
+ done
+}
+
diff --git a/meta-agl-core-test/recipes-test/ebizzy/ebizzy_0.3.bb b/meta-agl-core-test/recipes-test/ebizzy/ebizzy_0.3.bb
new file mode 100644
index 000000000..08b0425c0
--- /dev/null
+++ b/meta-agl-core-test/recipes-test/ebizzy/ebizzy_0.3.bb
@@ -0,0 +1,20 @@
+DESCRIPTION = "Benchmark tool that generates a workload resembling common web application server workloads"
+HOMEPAGE = "http://ebizzy.sourceforge.net/"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=eb723b61539feef013de476e68b5c50a"
+
+SRC_URI = "http://downloads.sourceforge.net/project/ebizzy/ebizzy/${PV}/ebizzy-${PV}.tar.gz"
+SRC_URI[md5sum] = "af038bc506066bb3d28db08aba62bc38"
+SRC_URI[sha256sum] = "77286029d6348f3d9b3f04eae1feadb5ad1ad07b9f688f4d9f002960862467f2"
+
+INSANE_SKIP_${PN} = "ldflags"
+
+do_compile () {
+ ${CC} -Wall -Wshadow -lpthread -o ebizzy ebizzy.c
+}
+
+do_install () {
+ install -d ${D}${bindir}
+ install -m 0755 ebizzy ${D}${bindir}
+}
+
diff --git a/meta-agl-core-test/recipes-test/ffsb/ffsb_6.0-rc2.bb b/meta-agl-core-test/recipes-test/ffsb/ffsb_6.0-rc2.bb
new file mode 100644
index 000000000..66db133e3
--- /dev/null
+++ b/meta-agl-core-test/recipes-test/ffsb/ffsb_6.0-rc2.bb
@@ -0,0 +1,14 @@
+DESCRIPTION = "Flexible File System Benchmark"
+HOMEPAGE = "https://sourceforge.net/projects/ffsb/"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=fd5d9bcabd8ed5a54a01ce8d183d592a"
+
+SRC_URI = "http://downloads.sourceforge.net/project/ffsb/ffsb/ffsb-${PV}/ffsb-${PV}.tar.bz2"
+SRC_URI[md5sum] = "cabfc1021c2ec6c6b168fefc84210891"
+SRC_URI[sha256sum] = "e5867692aae8c9bfbcdc774599022289c4d89c1d90f4dd7101fb9865ac773c71"
+
+inherit autotools
+
+# extra args to configure
+EXTRA_OECONF = ""
+
diff --git a/meta-agl-core-test/recipes-test/fontconfig/fontconfig_%.bbappend b/meta-agl-core-test/recipes-test/fontconfig/fontconfig_%.bbappend
new file mode 100644
index 000000000..e8ce1ab78
--- /dev/null
+++ b/meta-agl-core-test/recipes-test/fontconfig/fontconfig_%.bbappend
@@ -0,0 +1,18 @@
+do_install_append() {
+ install -m 755 -d ${D}/${datadir}/fontconfig-test
+ install -m 755 ${S}/test/run-test.sh ${D}/${datadir}/fontconfig-test/
+
+ sed -i -e "s#^FCLIST=\.\./fc-list/fc-list#FCLIST=/usr/bin/fc-list#g" -e "s#^FCCACHE=\.\./fc-cache/fc-cache#FCCACHE=/usr/bin/fc-cache#g" ${D}/${datadir}/fontconfig-test/run-test.sh
+
+ install -m 644 ${B}/test/out.expected ${D}/${datadir}/fontconfig-test/
+ for x in 4x6.pcf 8x16.pcf fonts.conf.in; do
+ install -m 644 ${S}/test/$x ${D}/${datadir}/fontconfig-test/
+ done
+}
+
+PACKAGES =+ "fontconfig-test"
+
+DEBIAN_NOAUTONAME_fontconfig-test = "1"
+FILES_fontconfig-test = "${datadir}/fontconfig-test/*"
+
+
diff --git a/meta-agl-core-test/recipes-test/freetype/files/0001-Makefile-dont-build-gfx-demos.patch b/meta-agl-core-test/recipes-test/freetype/files/0001-Makefile-dont-build-gfx-demos.patch
new file mode 100644
index 000000000..4d0d09aea
--- /dev/null
+++ b/meta-agl-core-test/recipes-test/freetype/files/0001-Makefile-dont-build-gfx-demos.patch
@@ -0,0 +1,32 @@
+diff -ur ft2demos-2.9.1.orig/Makefile ft2demos-2.9.1/Makefile
+--- ft2demos-2.9.1.orig/Makefile 2018-04-22 05:41:50.000000000 -0400
++++ ft2demos-2.9.1/Makefile 2019-02-18 23:28:59.794678736 -0500
+@@ -163,7 +163,8 @@
+
+ ifeq ($(PLATFORM),unix)
+ CC = $(CCraw)
+- LINK_CMD = $(subst /,$(SEP),$(OBJ_BUILD)/libtool) \
++ LIBTOOL = $(OBJ_BUILD)/libtool
++ LINK_CMD = $(subst /,$(SEP),$(LIBTOOL)) \
+ --mode=link $(CC) \
+ $(subst /,$(COMPILER_SEP),$(LDFLAGS))
+ LINK_LIBS = $(subst /,$(COMPILER_SEP),$(FTLIB) $(EFENCE)) $(LIB_CLOCK_GETTIME)
+@@ -289,12 +290,12 @@
+ ttdebug
+
+ # Comment out the next line if you don't have a graphics subsystem.
+- EXES += ftdiff \
+- ftgamma \
+- ftgrid \
+- ftmulti \
+- ftstring \
+- ftview
++ # EXES += ftdiff \
++ # ftgamma \
++ # ftgrid \
++ # ftmulti \
++ # ftstring \
++ # ftview
+
+ # ftvalid requires ftgxval.c and ftotval.c
+ #
diff --git a/meta-agl-core-test/recipes-test/freetype/files/0001-ft2demos-Makefile-Do-not-hardcode-libtool-path.patch b/meta-agl-core-test/recipes-test/freetype/files/0001-ft2demos-Makefile-Do-not-hardcode-libtool-path.patch
new file mode 100644
index 000000000..7803ad7e0
--- /dev/null
+++ b/meta-agl-core-test/recipes-test/freetype/files/0001-ft2demos-Makefile-Do-not-hardcode-libtool-path.patch
@@ -0,0 +1,30 @@
+From 8c4f135619de929f9348b830a07a46a0c2c38e51 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Jan-Simon=20M=C3=B6ller?= <jsmoeller@linuxfoundation.org>
+Date: Fri, 7 Oct 2016 15:26:20 +0200
+Subject: [PATCH] Do not hardcode libtool path
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+It is already known and imported through config.mk.
+
+Signed-off-by: Jan-Simon Möller <jsmoeller@linuxfoundation.org>
+---
+ Makefile | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/Makefile b/Makefile
+index a5d34bd..254aad4 100644
+--- a/Makefile
++++ b/Makefile
+@@ -153,7 +153,6 @@ else
+
+ ifeq ($(PLATFORM),unix)
+ CC = $(CCraw)
+- LIBTOOL = $(OBJ_BUILD)/libtool
+ LINK_CMD = $(subst /,$(SEP),$(LIBTOOL)) \
+ --mode=link $(CC) \
+ $(subst /,$(COMPILER_SEP),$(LDFLAGS))
+--
+2.1.4
+
diff --git a/meta-agl-core-test/recipes-test/freetype/freetype_2.%.bbappend b/meta-agl-core-test/recipes-test/freetype/freetype_2.%.bbappend
new file mode 100644
index 000000000..6aa1eabc2
--- /dev/null
+++ b/meta-agl-core-test/recipes-test/freetype/freetype_2.%.bbappend
@@ -0,0 +1,34 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
+
+SRC_URI =+ "${SOURCEFORGE_MIRROR}/freetype/freetype-demos/${PV}/ft2demos-${PV}.tar.gz;name=ft2demos \
+ file://0001-Makefile-dont-build-gfx-demos.patch;patchdir=../ft2demos-${PV} \
+ file://0001-ft2demos-Makefile-Do-not-hardcode-libtool-path.patch;patchdir=../ft2demos-${PV} \
+ "
+SRC_URI[ft2demos.md5sum] = "c376adf4782bac9b9ac8e427884752d2"
+SRC_URI[ft2demos.sha256sum] = "5e9e94a2db9d1a945293a1644a502f6664a2173a454d4a55b19695e2e2f4a0bc"
+
+PACKAGES =+ "${PN}-demos"
+
+B = "${S}"
+
+do_compile_append () {
+ oe_runmake -C ${WORKDIR}/ft2demos-${PV} TOP_DIR=${WORKDIR}/${BPN}-${PV}/
+}
+
+do_install_append () {
+ install -d -m 0755 ${D}/${bindir}
+ for x in ftbench ftdump ftlint ftvalid ttdebug; do
+ install -m 0755 ${WORKDIR}/ft2demos-${PV}/bin/.libs/$x ${D}/${bindir}
+ done
+}
+
+FILES_${PN}-demos = "\
+ ${bindir}/ftbench \
+ ${bindir}/ftdump \
+ ${bindir}/ftlint \
+ ${bindir}/ftvalid \
+ ${bindir}/ttdebug \
+"
+
+# enable pixmap/libpng support to allow color emojis
+PACKAGECONFIG_append = " pixmap"
diff --git a/meta-agl-core-test/recipes-test/fsfuzzer/files/0001-fix_missing_header_sys_stat.patch b/meta-agl-core-test/recipes-test/fsfuzzer/files/0001-fix_missing_header_sys_stat.patch
new file mode 100644
index 000000000..e834becf3
--- /dev/null
+++ b/meta-agl-core-test/recipes-test/fsfuzzer/files/0001-fix_missing_header_sys_stat.patch
@@ -0,0 +1,11 @@
+diff -urN fsfuzzer-0.7.orig/fstest.c fsfuzzer-0.7/fstest.c
+--- fsfuzzer-0.7.orig/fstest.c 2009-01-25 14:50:06.000000000 +0000
++++ fsfuzzer-0.7/fstest.c 2016-06-16 17:49:27.264565819 +0000
+@@ -35,6 +35,7 @@
+ #include <signal.h>
+ #include <sys/file.h>
+ #include <sys/mman.h>
++#include <sys/stat.h>
+
+ #define LOGGIT 1
+ #define CHECK_XATTR 1
diff --git a/meta-agl-core-test/recipes-test/fsfuzzer/fsfuzzer_0.7.bb b/meta-agl-core-test/recipes-test/fsfuzzer/fsfuzzer_0.7.bb
new file mode 100644
index 000000000..d2ddb59b1
--- /dev/null
+++ b/meta-agl-core-test/recipes-test/fsfuzzer/fsfuzzer_0.7.bb
@@ -0,0 +1,18 @@
+SUMMARY = "The fsfuzzer is a filesystem fuzzer tool that does stress tests of various filesystems in a reproducible and logged way."
+DESCRIPTION = "This tool creates initial (valid) filesystem images and then manipulates their binary format and structure for detecting flaws/bugs/design problems in the parsing/handling code for that particular filesystem. The program expects that you have a /media directory. It uses that one for mounting test images in."
+HOMEPAGE = "https://www.ee.oulu.fi/research/ouspg/fsfuzzer"
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+
+SRC_URI = "http://people.redhat.com/sgrubb/files/fsfuzzer-${PV}.tar.gz \
+ file://0001-fix_missing_header_sys_stat.patch \
+ "
+SRC_URI[md5sum] = "d69ac4b67aaba52a889c9188eb456c15"
+SRC_URI[sha256sum] = "094aa17c4f66c525a04e5db5ad444b4a561b6f8e310d0bd70b9ca421cdf0a434"
+
+inherit autotools
+
+# Specify any options you want to pass to the configure script using EXTRA_OECONF:
+EXTRA_OECONF = ""
+
diff --git a/meta-agl-core-test/recipes-test/glmark2/glmark2_%.bbappendNOT b/meta-agl-core-test/recipes-test/glmark2/glmark2_%.bbappendNOT
new file mode 100644
index 000000000..403aedd4c
--- /dev/null
+++ b/meta-agl-core-test/recipes-test/glmark2/glmark2_%.bbappendNOT
@@ -0,0 +1,7 @@
+# Update glmark2
+SRCREV = "784aca755a469b144acf3cae180b6e613b7b057a"
+# Already in newer version
+SRC_URI_remove = "file://python3.patch"
+
+PACKAGECONFIG = "wayland-gles2"
+PACKAGECONFIG[wayland-gles2] = ",,virtual/egl virtual/libgles2 wayland wayland-native"
diff --git a/meta-agl-core-test/recipes-test/himeno/himeno_2.0.bb b/meta-agl-core-test/recipes-test/himeno/himeno_2.0.bb
new file mode 100644
index 000000000..f890e23a4
--- /dev/null
+++ b/meta-agl-core-test/recipes-test/himeno/himeno_2.0.bb
@@ -0,0 +1,27 @@
+DESCRIPTION = "Himeno Benchmark"
+LICENSE = "LGPL-2.0"
+URL = "http://accc.riken.jp/en/supercom/himenobmt/"
+
+SRC_URI = "http://accc.riken.jp/en/wp-content/uploads/sites/2/2015/07/himenobmt.c.zip"
+SRC_URI[md5sum] = "8d8e837dfc3e00a3b322eb4ae3edd551"
+SRC_URI[sha256sum] = "8780bfbdacb0d4dcab2931e65cadd69411731e3f2afcc1231d0743a036298077"
+
+LIC_FILES_CHKSUM = "file://himenoBMT.c;md5=8e8771ddc01c6d1a795e088e2d6dee78"
+
+# Upstream ZIP file contains an LZH archive, thus a 2 steps "unpack" is required.
+# The LZH archive is unpacked after native tools dependency resolution,
+# thus. after "configure" task in our case:
+
+DEPENDS = "p7zip-native"
+
+do_configure_append() {
+ 7z x -y -o${S} ${WORKDIR}/himenobmt.c.lzh
+ cd ${S}
+ sed -i -e 's/CC= gcc/#CC= gcc/' Makefile
+ sed -i -e 's/CFLAGS = /#CFLAGS = /' Makefile
+}
+
+do_install () {
+ install -d ${D}${bindir}
+ install -m 0755 bmt ${D}${bindir}
+}
diff --git a/meta-agl-core-test/recipes-test/interbench/files/interbench.c.patch b/meta-agl-core-test/recipes-test/interbench/files/interbench.c.patch
new file mode 100644
index 000000000..c882739ba
--- /dev/null
+++ b/meta-agl-core-test/recipes-test/interbench/files/interbench.c.patch
@@ -0,0 +1,68 @@
+--- interbench.c.orig 2009-10-30 23:14:59.000000000 -0500
++++ interbench.c 2012-07-10 19:06:00.000000000 -0500
+@@ -71,6 +71,7 @@ struct user_data {
+ char datestamp[13];
+ FILE *logfile;
+ } ud = {
++ .ram = 0,
+ .duration = 30,
+ .cpu_load = 4,
+ .log = 1,
+@@ -652,6 +653,8 @@ void emulate_write(struct thread *th)
+ terminal_error("fopen");
+ if (stat(name, &statbuf) == -1)
+ terminal_fileopen_error(fp, "stat");
++ if (statbuf.st_blksize < MIN_BLK_SIZE)
++ statbuf.st_blksize = MIN_BLK_SIZE;
+ for (i = 0 ; i < mem; i++) {
+ if (fwrite(buf, statbuf.st_blksize, 1, fp) != 1)
+ terminal_fileopen_error(fp, "fwrite");
+@@ -1136,14 +1139,17 @@ void get_ram(void)
+ if(!(meminfo = fopen("/proc/meminfo", "r")))
+ terminal_error("fopen");
+
+- ud.ram = ud.swap = 0;
+- while( !feof(meminfo) && !fscanf(meminfo, "MemTotal: %lu kB", &ud.ram) )
+- fgets(aux,sizeof(aux),meminfo);
++ if (!ud.ram)
++ {
++ while( !feof(meminfo) && !fscanf(meminfo, "MemTotal: %lu kB", &ud.ram) )
++ fgets(aux,sizeof(aux),meminfo);
++ }
++ ud.swap = 0;
+ while( !feof(meminfo) && !fscanf(meminfo, "SwapTotal: %lu kB", &ud.swap) )
+ fgets(aux,sizeof(aux),meminfo);
+ if (fclose(meminfo) == -1)
+ terminal_error("fclose");
+-
++
+ if( !ud.ram || !ud.swap ) {
+ unsigned long i;
+ fprintf(stderr, "\nCould not get memory or swap size. ");
+@@ -1399,6 +1405,7 @@ void usage(void)
+ fprintf(stderr, "\t[-h]\n\n");
+ fprintf(stderr, " -l\tUse <int> loops per sec (default: use saved benchmark)\n");
+ fprintf(stderr, " -L\tUse cpu load of <int> with burn load (default: 4)\n");
++ fprintf(stderr, " -M\tForce RAM size to <int>. Useful when disk is smaller than RAM.\n");
+ fprintf(stderr, " -t\tSeconds to run each benchmark (default: 30)\n");
+ fprintf(stderr, " -B\tNice the benchmarked thread to <int> (default: 0)\n");
+ fprintf(stderr, " -N\tNice the load thread to <int> (default: 0)\n");
+@@ -1482,7 +1489,7 @@ int main(int argc, char **argv)
+ terminal_error("signal");
+ #endif
+
+- while ((q = getopt(argc, argv, "hl:L:B:N:ut:bcnrC:I:m:w:x:W:X:")) != -1) {
++ while ((q = getopt(argc, argv, "hl:L:M:B:N:ut:bcnrC:I:m:w:x:W:X:")) != -1) {
+ switch (q) {
+ case 'h':
+ usage();
+@@ -1496,6 +1503,9 @@ int main(int argc, char **argv)
+ case 'L':
+ ud.cpu_load = atoi(optarg);
+ break;
++ case 'M':
++ ud.ram = atoi(optarg);
++ break;
+ case 'B':
+ ud.bench_nice = atoi(optarg);
+ break;
diff --git a/meta-agl-core-test/recipes-test/interbench/interbench_0.31.bb b/meta-agl-core-test/recipes-test/interbench/interbench_0.31.bb
new file mode 100644
index 000000000..3e6490374
--- /dev/null
+++ b/meta-agl-core-test/recipes-test/interbench/interbench_0.31.bb
@@ -0,0 +1,31 @@
+DESCRIPTION = "The Linux interactivity benchmark"
+HOMEPAGE = "http://users.tpg.com.au/ckolivas/interbench/"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=393a5ca445f6965873eca0259a17f833"
+SRC_URI = "http://ck.kolivas.org/apps/interbench/interbench-${PV}.tar.bz2"
+
+SRC_URI += "file://interbench.c.patch;striplevel=0"
+
+inherit autotools
+
+INSANE_SKIP_${PN} = "ldflags"
+
+B = "${S}"
+EXTRA_OEMAKE = "CC='${CC}'"
+
+# upstream tarball contains x86_64 binaries, we need a clean source tree
+do_compile() {
+ oe_runmake clean
+ oe_runmake
+}
+
+do_install() {
+ install -d ${D}${bindir} ${D}${datadir}/doc/${PN}/ ${D}${mandir}/man8/
+ install -m 0755 ${B}/interbench ${D}${bindir}
+ install -m 0644 ${S}/readme* ${D}${datadir}/doc/${PN}/
+ install -m 0644 ${S}/interbench.8 ${D}${mandir}/man8/
+}
+
+SRC_URI[md5sum] = "832254d7fd1255c548ebea7b97f01015"
+SRC_URI[sha256sum] = "89d438b28aef22d26e79812762a57a9f9344a8dd8826edebfe60dad48ee1c784"
+
diff --git a/meta-agl-core-test/recipes-test/ipv6connect/ipv6connect.bb b/meta-agl-core-test/recipes-test/ipv6connect/ipv6connect.bb
new file mode 100644
index 000000000..a8b93716a
--- /dev/null
+++ b/meta-agl-core-test/recipes-test/ipv6connect/ipv6connect.bb
@@ -0,0 +1,24 @@
+SUMMARY = "ipv6connect test"
+HOMEPAGE = "https://chromium.googlesource.com/chromiumos/third_party/autotest/+/0.12.369.B/client/tests/ipv6connect"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://${S}/${PN}/LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+SRC_URI = "git://gerrit.automotivelinux.org/gerrit/src/qa-test-misc;protocol=https;branch=${AGL_BRANCH}"
+SRCREV = "b355b7e1f43a19938895964f314484ffd8a39542"
+
+inherit autotools
+
+INSANE_SKIP_${PN} = "ldflags"
+
+B = "${WORKDIR}/git/ipv6connect"
+S = "${WORKDIR}/git"
+
+# configure script is not delivered, only a makefile.
+do_configure() {
+ :
+}
+
+do_install() {
+ install -d ${D}${bindir}
+ install -m 0755 ${B}/ipv6connect ${D}${bindir}
+}
diff --git a/meta-agl-core-test/recipes-test/linpack/linpack.bb b/meta-agl-core-test/recipes-test/linpack/linpack.bb
new file mode 100644
index 000000000..84bed0ff6
--- /dev/null
+++ b/meta-agl-core-test/recipes-test/linpack/linpack.bb
@@ -0,0 +1,23 @@
+SUMMARY = "Linpack benchmark"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://${S}/${PN}/linpack.c;md5=076f1fd8d313056103f98d4253862eae"
+
+SRC_URI = "git://gerrit.automotivelinux.org/gerrit/src/qa-test-misc;protocol=https;branch=${AGL_BRANCH}"
+SRCREV = "920cae73a918d1f516113b0ae967be3ecaba86ef"
+
+DEPENDS += "rsync-native"
+
+inherit autotools
+
+S = "${WORKDIR}/git"
+
+# configure script is not delivered, only a makefile.
+do_configure() {
+ mkdir -p ${B}
+ rsync -a ${S}/${PN}/* ${B}
+}
+
+do_install() {
+ install -d ${D}${bindir}
+ install -m 0755 ${B}/linpack ${D}${bindir}
+}
diff --git a/meta-agl-core-test/recipes-test/linus-stress/linus-stress.bb b/meta-agl-core-test/recipes-test/linus-stress/linus-stress.bb
new file mode 100644
index 000000000..01b3cfce5
--- /dev/null
+++ b/meta-agl-core-test/recipes-test/linus-stress/linus-stress.bb
@@ -0,0 +1,23 @@
+SUMMARY = "linus_stress test"
+HOMEPAGE = "https://chromium.googlesource.com/chromiumos/third_party/autotest/+/master/client/tests/linus_stress"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://${S}/linus_stress/LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+SRC_URI = "git://gerrit.automotivelinux.org/gerrit/src/qa-test-misc;protocol=https;branch=${AGL_BRANCH}"
+SRCREV = "87cdfd4626c0cb47fc22f328867e49d6268df85c"
+
+inherit autotools
+INSANE_SKIP_${PN} = "ldflags"
+
+B = "${WORKDIR}/git/linus_stress"
+S = "${WORKDIR}/git"
+
+# configure script is not delivered, only a makefile.
+do_configure() {
+ :
+}
+
+do_install() {
+ install -d ${D}${bindir}
+ install -m 0755 ${B}/linus_stress ${D}${bindir}
+}
diff --git a/meta-agl-core-test/recipes-test/packagegroups/packagegroup-agl-test.bb b/meta-agl-core-test/recipes-test/packagegroups/packagegroup-agl-test.bb
new file mode 100644
index 000000000..f3b2c4ff9
--- /dev/null
+++ b/meta-agl-core-test/recipes-test/packagegroups/packagegroup-agl-test.bb
@@ -0,0 +1,68 @@
+SUMMARY = "Utilities for testing of AGL"
+DESCRIPTION = "A set of common packages required by testing AGL for Quality Assurance"
+
+LICENSE = "MIT"
+
+inherit packagegroup
+
+PACKAGES = "\
+ packagegroup-agl-test \
+ packagegroup-agl-test-ltp \
+ packagegroup-ivi-common-test \
+ "
+
+ALLOW_EMPTY_${PN} = "1"
+
+RDEPENDS_${PN} += "\
+ bc \
+ ebizzy \
+ evtest \
+ ffsb \
+ glmark2 \
+ interbench \
+ ipv6connect \
+ linpack \
+ linus-stress \
+ nmap \
+ rt-tests \
+ stress \
+ "
+
+
+
+
+
+# to be added, but needs LICENSE_FLAGS_WHITELIST="non-commercial"
+# netperf # meta-networking
+
+# relocate due to dependencies
+# iperf3 \ # meta-oe
+# lmbench \ # meta-oe
+# dbench \ # meta-oe
+# nbench-byte \ # meta-oe
+# iozone3 \ # meta-oe
+#
+
+# FTBS, SPEC-316
+# himeno # nowhere
+# FTBS, SPEC-1384
+# trinity # meta-linaro (1.5)
+
+# packagegroup-agl-test-ltp \
+# ltp \ # ltp in oe-core
+#
+
+# Packages for shell commands which are required by LTP
+# readelf, logrotate, vsftpd, crontab, sar, arp, ftp,
+# host, rcp, rlogin, rsh, tcpdump, expect, iptables, dnsmasq,
+# pgrep
+RDEPENDS_packagegroup-agl-test-ltp = ""
+#RDEPENDS_packagegroup-agl-test-ltp += " \
+# initscripts-functions bind-utils binutils \
+# cronie dnsmasq expect inetutils-ftp inetutils-rsh \
+# iptables logrotate net-tools sysstat tcpdump vsftpd \
+# "
+
+RDEPENDS_packagegroup-ivi-common-test = " \
+ packagegroup-agl-test \
+ "
diff --git a/meta-agl-core-test/recipes-test/trinity/trinity_git.bb b/meta-agl-core-test/recipes-test/trinity/trinity_git.bb
new file mode 100644
index 000000000..f0f09a855
--- /dev/null
+++ b/meta-agl-core-test/recipes-test/trinity/trinity_git.bb
@@ -0,0 +1,42 @@
+SUMMARY = "a Linux System call fuzz teste."
+DESCRIPTION = "Trinity, a Linux System call fuzz tester."
+HOMEPAGE = "http://codemonkey.org.uk/projects/trinity/"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://${S}/COPYING;md5=96094d47cfbd2cc45eb46ce0fc423c04"
+
+COMPATIBLE_HOST = "(x86_64|arm|aarch64).*-linux"
+
+PV = "1.5"
+SRCREV = "edc2e693e298e0372010a361354c4a79a3cd93f3"
+SRC_URI = "git://github.com/kernelslacker/trinity.git;protocol=https;nobranch=1 \
+ "
+
+S = "${WORKDIR}/git"
+
+inherit useradd
+
+USERADD_PACKAGES = "${PN}"
+USERADD_PARAM_${PN} = "--system --create-home --shell /bin/sh ${PN} "
+
+do_configure () {
+ ./configure.sh
+}
+
+# workaround random build failures
+do_compile () {
+ ${MAKE}
+}
+
+do_install () {
+ oe_runmake install DESTDIR=${D}/usr
+ install -o ${PN} -d -m 0755 ${D}/${datadir}/${PN}
+ install -o ${PN} -m 0755 ${S}/scripts/test-all-syscalls-parallel.sh ${D}/${datadir}/${PN}
+ install -o ${PN} -m 0755 ${S}/scripts/test-all-syscalls-sequentially.sh ${D}/${datadir}/${PN}
+ install -o ${PN} -m 0755 ${S}/scripts/test-multi.sh ${D}/${datadir}/${PN}
+ install -o ${PN} -m 0755 ${S}/scripts/test-vm.sh ${D}/${datadir}/${PN}
+}
+
+PACKAGES =+ "${PN}-example"
+
+FILES_${PN} = "${bindir}/trinity"
+FILES_${PN}-example = "${datadir}/${PN}"