meta-agl-test: update
[AGL/meta-agl-devel.git] / meta-agl-test / recipes-tests / agl-test-framework / agl-test-framework.bb
1 SUMMARY = "Agl Test Framework"
2 HOMEPAGE = "https://git.automotivelinux.org/src/agl-test-framework/"
3 LICENSE = "Apache-2.0"
4 LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
5
6 PN = 'agl-test-framework'
7 PV = '1'
8
9 SRC_URI = "git://gerrit.automotivelinux.org/gerrit/src/agl-test-framework;protocol=https;branch=master"
10 SRCREV = "8a35e659dba8117eb0bb403cc0d2464bdd6fa052"
11
12 S = "${WORKDIR}/git"
13
14 # Notice:
15 # This is the list of all installed tests
16 #       On the installing board, if you get dirpath like:
17 #         /usr/AGL/agl-test/tests/bc/
18 #           Then, the test name here you should write down: bc
19 #       If you are installing LTP related files:
20 #         /usr/AGL/agl-test/tests/LTP/syscalls/
21 #           Then, the test name here you should write down: LTP/syscalls
22 #
23 FRAMEWORK_INSTALL_LIST = " \
24     acl \
25     aio_stress \
26     attr \
27     babeltrace \
28     babeltrace2 \
29     bash \
30     bc \
31     bluez5 \
32     busybox \
33     bzip2 \
34     coreutils \
35     cpio \
36     crashme \
37     curl \
38     diffutils \
39     e2fsprogs \
40     expat \
41     flex \
42     fontconfig \
43     gawk \
44     gdbm \
45     gdk_pixbuf \
46     glib2 \
47     gstreamer \
48     gzip \
49     json_glib \
50     kbd \
51     libpam \
52     libxml2 \
53     linus_stress \
54     lua \
55     lz4 \
56     LTP/math \
57     LTP/cve \
58     LTP/posix_conformance_tests \
59     LTP/syscalls \
60     openssl \
61     popt \
62     python3 \
63     sed \
64     slang \
65     stress_ng \
66     tar \
67     xz \
68     zlib \
69 "
70
71 # Function of the structure installation
72 install_framework () {
73     # basic essential pytest structure
74     install -d ${D}/usr/bin/
75     install -m 0755 ${WORKDIR}/git/agl-test ${D}/usr/bin/
76     install -d ${D}/usr/AGL/agl-test/plugins/
77     install -m 0644 ${WORKDIR}/git/pytest.ini ${D}/usr/AGL/agl-test/
78     install -m 0644 ${WORKDIR}/git/plugins/* ${D}/usr/AGL/agl-test/plugins/
79     install -d ${D}/usr/AGL/agl-test/template/
80     install -m 0644 ${WORKDIR}/git/template/* ${D}/usr/AGL/agl-test/template/
81     install -d ${D}/usr/AGL/agl-test/tests/
82     install -m 0644 ${WORKDIR}/git/tests/__init__.py ${D}/usr/AGL/agl-test/tests/
83     install -d ${D}/usr/AGL/agl-test/tests/LTP/
84     install -m 0644 ${WORKDIR}/git/tests/LTP/*py ${D}/usr/AGL/agl-test/tests/LTP/
85 }
86
87 # Function of the test file installation
88 install_test_files () {
89     for test_name in ${FRAMEWORK_INSTALL_LIST}; do
90         # Step 1 : install basic python files (no check, this is common installation)
91         install -d ${D}/usr/AGL/agl-test/tests/${test_name}
92         install -m 0644 ${WORKDIR}/git/tests/${test_name}/*.py ${D}/usr/AGL/agl-test/tests/${test_name}/
93
94         # Step 2 : install spec.json (check first, not common)
95         if [ -f "${WORKDIR}/git/tests/${test_name}/spec.json" ];then
96             install -m 0644 ${WORKDIR}/git/tests/${test_name}/spec.json ${D}/usr/AGL/agl-test/tests/${test_name}
97         fi
98
99         # Step 3 : install the resource folder (check first, not common)
100         if [ -d "${WORKDIR}/git/tests/${test_name}/resource/" ];then
101             install -d ${D}/usr/AGL/agl-test/tests/${test_name}/resource
102             install -m 0644 ${WORKDIR}/git/tests/${test_name}/resource/* ${D}/usr/AGL/agl-test/tests/${test_name}/resource/
103         fi
104     done
105 }
106
107 # install agl-test-framework
108 do_install() {
109     install_framework
110     install_test_files
111 }
112
113 # Override PACKAGES
114 # base: basic structure of the agl-test-framework along with pytest modules
115 # fast: fast mode packages
116 # standard: standard mode packages
117 # extreme: extreme mode packages
118 #
119 PACKAGES = " \
120     ${PN}-base \
121     ${PN}-fast \
122     ${PN}-standard \
123     ${PN}-extreme \
124 "
125
126 # Filter for basic structure
127 FILES:${PN}-base += " \
128     /usr/AGL/agl-test/plugins/* \
129     /usr/AGL/agl-test/pytest.ini \
130     /usr/AGL/agl-test/template/* \
131     /usr/AGL/agl-test/tests/LTP/agl_test_ltp_base.py \
132     /usr/AGL/agl-test/tests/LTP/__init__.py \
133     /usr/AGL/agl-test/tests/__init__.py \
134     /usr/bin/agl-test \
135 "
136
137 # Filter for fast mode
138 FILES:${PN}-fast = " \
139      /usr/AGL/agl-test/tests/aio_stress/* \
140      /usr/AGL/agl-test/tests/attr/* \
141      /usr/AGL/agl-test/tests/bc/* \
142      /usr/AGL/agl-test/tests/diffutils/* \
143      /usr/AGL/agl-test/tests/expat/* \
144      /usr/AGL/agl-test/tests/flex/* \
145      /usr/AGL/agl-test/tests/fontconfig/* \
146      /usr/AGL/agl-test/tests/gdk_pixbuf/* \
147      /usr/AGL/agl-test/tests/json_glib/* \
148      /usr/AGL/agl-test/tests/kbd/* \
149      /usr/AGL/agl-test/tests/libpam/* \
150      /usr/AGL/agl-test/tests/lua/* \
151      /usr/AGL/agl-test/tests/LTP/math/* \
152      /usr/AGL/agl-test/tests/popt* \
153      /usr/AGL/agl-test/tests/stress_ng/* \
154      /usr/AGL/agl-test/tests/xz/* \
155      /usr/AGL/agl-test/tests/zlib/* \
156 "
157
158 # Filter for standard mode
159 FILES:${PN}-standard = " \
160      /usr/AGL/agl-test/tests/acl/* \
161      /usr/AGL/agl-test/tests/babeltrace/* \
162      /usr/AGL/agl-test/tests/babeltrace2/* \
163      /usr/AGL/agl-test/tests/bash/* \
164      /usr/AGL/agl-test/tests/bluez5/* \
165      /usr/AGL/agl-test/tests/busybox/* \
166      /usr/AGL/agl-test/tests/bzip2/* \
167      /usr/AGL/agl-test/tests/coreutils/* \
168      /usr/AGL/agl-test/tests/cpio/* \
169      /usr/AGL/agl-test/tests/crashme/* \
170      /usr/AGL/agl-test/tests/curl/* \
171      /usr/AGL/agl-test/tests/e2fsprogs/* \
172      /usr/AGL/agl-test/tests/gawk/* \
173      /usr/AGL/agl-test/tests/gdbm/* \
174      /usr/AGL/agl-test/tests/glib2/* \
175      /usr/AGL/agl-test/tests/gstreamer/* \
176      /usr/AGL/agl-test/tests/gzip/* \
177      /usr/AGL/agl-test/tests/libxml2/* \
178      /usr/AGL/agl-test/tests/linus_stress/* \
179      /usr/AGL/agl-test/tests/LTP/cve/* \
180      /usr/AGL/agl-test/tests/LTP/posix_conformance_tests/* \
181      /usr/AGL/agl-test/tests/openssl/* \
182      /usr/AGL/agl-test/tests/sed/* \
183      /usr/AGL/agl-test/tests/slang/* \
184      /usr/AGL/agl-test/tests/tar/* \
185 "
186
187 # Filter for extreme mode
188 FILES:${PN}-extreme = " \
189      /usr/AGL/agl-test/tests/python3/* \
190      /usr/AGL/agl-test/tests/lz4/* \
191      /usr/AGL/agl-test/tests/LTP/syscalls/* \
192 "
193
194 # Runtime dependency for basic structure
195 RDEPENDS:${PN}-base += " \
196     python3-jinja2 \
197     python3-pytest \
198     python3-pytest-order \
199 "
200
201 # Runtime dependency for fast mode package
202 RDEPENDS:${PN}-fast += " \
203     ltp \
204     aio-stress \
205     stress-ng \
206 "
207
208 # Runtime dependency for standard mode packages
209 RDEPENDS:${PN}-standard += " \
210     linus-stress \
211 "
212
213 # Runtime dependency for extreme mode packages
214 RDEPENDS:${PN}-extreme += " \
215     \
216 "