Merge ~sylvain-pineau/checkbox-limerick/+git/checkbox-provider-limerick:components into ~checkbox-dev/checkbox-limerick/+git/checkbox-limerick-classic:master

Proposed by Sylvain Pineau
Status: Superseded
Proposed branch: ~sylvain-pineau/checkbox-limerick/+git/checkbox-provider-limerick:components
Merge into: ~checkbox-dev/checkbox-limerick/+git/checkbox-limerick-classic:master
Diff against target: 529 lines (+481/-0)
8 files modified
bin/component_test.py (+55/-0)
manage.py (+16/-0)
units/components/category.pxu (+9/-0)
units/components/jobs.pxu (+10/-0)
units/components/test-plan.pxu (+6/-0)
units/device/jobs.pxu (+34/-0)
units/test-plan-classic.pxu (+184/-0)
units/test-plan.pxu (+167/-0)
Reviewer Review Type Date Requested Status
Checkbox Developers Pending
Review via email: mp+391607@code.launchpad.net

Description of the change

Add tests for components + test plans cleanup

To post a comment you must log in.

Unmerged commits

79301dc... by Sylvain Pineau

exclude disk/storage_device_mtd.*

This Flash memory is not really meant for write operations:

"The only case where the mtdblock device is useful is to mount read-only
file systems such as Squashfs on top of reliable flash memory such as NOR."

Src: https://www.oreilly.com/library/view/mastering-embedded-linux/9781787283282/64271306-bd52-47d8-8118-6b618630d307.xhtml

23db591... by Sylvain Pineau

Add DTB components tests

58fcb31... by Sylvain Pineau

Add the limerick_sku resource job

810d9f6... by Sylvain Pineau

test plan cleanup

ba28088... by PMR <pmr@pmr-lander>

Merge #390817 from ~bettyl/checkbox-limerick/+git/checkbox-provider-limerick:add_after_suspend_testplan

5848f51... by Betty Lin

add after suspend tests

1. add after suspend tests
2. exclude some monitor tests and power management lid related tests
3. Remove kernel-snap-automated test which not need test in desktop
image

e5f4fd9... by PMR <pmr@pmr-lander>

Merge #390722 from ~zongminl/checkbox-limerick/+git/checkbox-provider-limerick:test-plan-cleanup

Clean up the test plan:
1. Remove limerick-stress from Full test plan.
2. Exclude cpu/scaling_test since it's not supported on ARM.

f87985a... by Vic Liu

1. Remove limerick-stress from Full test plan.
2. Exclude cpu/scaling_test since it's not supported on ARM.

260a92f... by PMR <pmr@pmr-lander>

Merge #390654 from ~bettyl/checkbox-limerick/+git/checkbox-provider-limerick:modify_testplan

4d0696b... by Betty Lin

modify test plan

1. Exclude some cpu tests which can't run on ARM device
2. Exlcude hibernate stress test
3. Exlcude dvi related tests from monitor

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/bin/component_test.py b/bin/component_test.py
2new file mode 100755
3index 0000000..4f4c4ba
4--- /dev/null
5+++ b/bin/component_test.py
6@@ -0,0 +1,55 @@
7+#!/usr/bin/env python3
8+#
9+# This file is part of Checkbox.
10+#
11+# Copyright 2020 Canonical Ltd.
12+#
13+# Authors:
14+# Sylvain Pineau <sylvain.pineau@canonical.com>
15+#
16+# Checkbox is free software: you can redistribute it and/or modify
17+# it under the terms of the GNU General Public License version 3,
18+# as published by the Free Software Foundation.
19+#
20+# Checkbox is distributed in the hope that it will be useful,
21+# but WITHOUT ANY WARRANTY; without even the implied warranty of
22+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23+# GNU General Public License for more details.
24+#
25+# You should have received a copy of the GNU General Public License
26+# along with Checkbox. If not, see <http://www.gnu.org/licenses/>.
27+
28+import codecs
29+import glob
30+import os
31+import re
32+import subprocess
33+import sys
34+
35+p = glob.glob('/usr/lib/firmware/*/device-tree/{}'.format(
36+ codecs.decode("kvyvak", "rot-13")))[0]
37+dtb = os.path.join(p, '{}.dtb'.format(sys.argv[1]))
38+dt_lookup_list = []
39+exit_status = 0
40+
41+dt_compatible_patterns = subprocess.check_output(
42+ 'find /proc/device-tree/ -name compatible -exec '
43+ 'bash -c "cat {} && echo" \\; | sort -u',
44+ shell=True, universal_newlines=True).splitlines()
45+for line in dt_compatible_patterns:
46+ line = line.replace("\0", ", ")
47+ dt_lookup_list.append(re.split(', ', line)[:-1])
48+
49+compatible_patterns = subprocess.check_output(
50+ 'fdtdump {} 2>/dev/null | grep -oP "(?<= compatible = ).*"'
51+ ' | sort -u'.format(dtb),
52+ shell=True, universal_newlines=True).splitlines()
53+for l in compatible_patterns:
54+ item = re.split(', ', l.replace('"', '').replace(';', ''))
55+ if item in dt_lookup_list:
56+ print('Found in /proc/device-tree/:', l)
57+ else:
58+ print('ERROR: Not found:', l, file=sys.stderr)
59+ exit_status = 1
60+
61+raise SystemExit(exit_status)
62diff --git a/manage.py b/manage.py
63new file mode 100755
64index 0000000..da21a67
65--- /dev/null
66+++ b/manage.py
67@@ -0,0 +1,16 @@
68+#!/usr/bin/env python3
69+# Copyright 2020 Canonical Ltd.
70+# All rights reserved.
71+
72+"""Management script for the limerick provider."""
73+
74+from plainbox.provider_manager import setup
75+from plainbox.provider_manager import N_
76+
77+setup(
78+ name='checkbox-provider-limerick',
79+ namespace='com.canonical.qa.limerick',
80+ version="0.1",
81+ description=N_("Checkbox Provider for limerick devices"),
82+ gettext_domain='checkbox-provider-limerick',
83+)
84diff --git a/units/components/category.pxu b/units/components/category.pxu
85new file mode 100644
86index 0000000..95a11eb
87--- /dev/null
88+++ b/units/components/category.pxu
89@@ -0,0 +1,9 @@
90+# Copyright 2020 Canonical Ltd.
91+# All rights reserved.
92+#
93+# Written by:
94+# Sylvain Pineau <sylvain.pineau@canonical.com>
95+
96+unit: category
97+id: dtb_components
98+_name: Device Tree Components
99diff --git a/units/components/jobs.pxu b/units/components/jobs.pxu
100new file mode 100644
101index 0000000..524bcd6
102--- /dev/null
103+++ b/units/components/jobs.pxu
104@@ -0,0 +1,10 @@
105+unit: template
106+template-resource: limerick_sku
107+id: dtb/components_{name}
108+_summary: Check all DTB compatible properties are loaded in /proc/device-tree
109+command: component_test.py {name}
110+plugin: shell
111+category_id: dtb_components
112+estimated_duration: 1m
113+imports: from com.canonical.certification import package
114+requires: package.name == 'device-tree-compiler'
115diff --git a/units/components/test-plan.pxu b/units/components/test-plan.pxu
116new file mode 100644
117index 0000000..cefd8a5
118--- /dev/null
119+++ b/units/components/test-plan.pxu
120@@ -0,0 +1,6 @@
121+id: dtb-automated
122+unit: test plan
123+_name: Automated DTB tests
124+_description: Automated DTB tests
125+include:
126+ dtb/components_.*
127diff --git a/units/device/jobs.pxu b/units/device/jobs.pxu
128new file mode 100644
129index 0000000..3a9fde5
130--- /dev/null
131+++ b/units/device/jobs.pxu
132@@ -0,0 +1,34 @@
133+id: connect-plugs
134+estimated_duration: 60
135+plugin: resource
136+user: root
137+command:
138+ checkbox-support-snap_connect \
139+ hardware-observe:core:hardware-observe \
140+ mount-observe:core:mount-observe \
141+ network-bind:core:network-bind \
142+ system-observe:core:system-observe \
143+ # bluez:bluez:service \
144+ # bluetooth-control:core:bluetooth-control \
145+ # network-manager:network-manager:service \
146+ home:core:home
147+_summary: Connect all checkbox plugs
148+_description: Connect all checkbox plugs
149+
150+id: limerick_sku
151+plugin: resource
152+_summary: Detect which Limerick SKU the tool is running on
153+command:
154+ perl -ne 's/ /-/g;s/(.*?)([A-Z]?)\W+$/\L$1\U$2/; print "name: $_\n"' /proc/device-tree/model
155+estimated_duration: 1s
156+
157+id: device-connections-tp
158+unit: test plan
159+_name: Test plan that connects all checkbox plugs
160+_description:
161+ This test plan is necessary to assure the proper ordering of resource jobs
162+ being run
163+estimated_duration: 60
164+bootstrap_include:
165+ connect-plugs
166+include:
167diff --git a/units/test-plan-classic.pxu b/units/test-plan-classic.pxu
168new file mode 100644
169index 0000000..b333acf
170--- /dev/null
171+++ b/units/test-plan-classic.pxu
172@@ -0,0 +1,184 @@
173+# Copyright 2020 Canonical Ltd.
174+# All rights reserved.
175+#
176+# Test plans and (optionally) jobs unique to the limerick device.
177+#
178+
179+id: limerick-classic
180+unit: test plan
181+_name: Full manual + automated tests for limerick classic image
182+_description:
183+ Combined manual and automated test plans for limerick classic image.
184+include:
185+nested_part:
186+ limerick-manual-classic
187+ limerick-automated-classic
188+
189+id: limerick-manual-classic
190+unit: test plan
191+_name: Manual only QA tests for limerick classic image
192+_description:
193+ QA test plan for the limerick classic image. This test plan contains
194+ all of the tests that require manual control of device hardware
195+ or some other user input to complete.
196+estimated_duration: 3600
197+include:
198+mandatory_include:
199+ com.canonical.certification::connections
200+ com.canonical.certification::dmi_attachment
201+ com.canonical.certification::dpkg
202+ com.canonical.certification::info/buildstamp
203+ com.canonical.certification::info/systemd-analyze
204+ com.canonical.certification::interface
205+ com.canonical.certification::lsb
206+ com.canonical.certification::lspci_attachment
207+ com.canonical.certification::lsusb_attachment
208+ com.canonical.certification::meminfo
209+ com.canonical.certification::package
210+ com.canonical.certification::parts_meta_info_attachment
211+ com.canonical.certification::serial_assertion
212+ com.canonical.certification::snap
213+ com.canonical.certification::sysfs_attachment
214+ com.canonical.certification::system_info_json
215+ com.canonical.certification::udev_attachment
216+ com.canonical.certification::udev_json
217+ com.canonical.certification::uname
218+ com.canonical.certification::net_if_management_attachment
219+bootstrap_include:
220+ com.canonical.certification::cpuinfo
221+ com.canonical.certification::device
222+ com.canonical.certification::dmi
223+ com.canonical.certification::model_assertion
224+ com.canonical.certification::net_if_management
225+ limerick_sku
226+nested_part:
227+ dtb-automated
228+ com.canonical.certification::ethernet-manual
229+ com.canonical.certification::monitor-manual
230+ com.canonical.certification::power-manual
231+ com.canonical.certification::serial-manual
232+ # com.canonical.certification::snappy-snap-manual # covered by automated tests
233+ com.canonical.certification::usb-manual
234+ com.canonical.certification::usb3-manual
235+ com.canonical.certification::watchdog-manual
236+ # com.canonical.certification::wireless-manual # covered by automated tests
237+ com.canonical.certification::graphics-integrated-gpu-cert-manual
238+ com.canonical.certification::camera-cert-manual
239+ com.canonical.certification::after-suspend-monitor-manual
240+ com.canonical.certification::after-suspend-usb-manual
241+ com.canonical.certification::after-suspend-usb3-manual
242+ com.canonical.certification::after-suspend-graphics-integrated-gpu-cert-manual
243+ com.canonical.certification::after-suspend-camera-cert-full
244+exclude:
245+ com.canonical.certification::monitor/dvi
246+ com.canonical.certification::monitor/dvi-to-vga
247+ com.canonical.certification::monitor/hdmi-to-vga
248+ com.canonical.certification::after-suspend-monitor/dvi
249+ com.canonical.certification::after-suspend-monitor/dvi-to-vga
250+ com.canonical.certification::after-suspend-monitor/hdmi-to-vga
251+ com.canonical.certification::power-management/lid
252+ com.canonical.certification::power-management/lid_close
253+ com.canonical.certification::power-management/lid_open
254+
255+id: limerick-automated-classic
256+unit: test plan
257+_name: Automated only QA tests for limerick classic image
258+_description:
259+ QA test plan for the limerick classic image. This test plan contains
260+ all of the automated tests used to validate the limerick device.
261+include:
262+mandatory_include:
263+ com.canonical.certification::connections
264+ com.canonical.certification::dmi_attachment
265+ com.canonical.certification::dpkg
266+ com.canonical.certification::info/buildstamp
267+ com.canonical.certification::info/systemd-analyze
268+ com.canonical.certification::interface
269+ com.canonical.certification::lsb
270+ com.canonical.certification::lspci_attachment
271+ com.canonical.certification::lsusb_attachment
272+ com.canonical.certification::meminfo
273+ com.canonical.certification::package
274+ com.canonical.certification::parts_meta_info_attachment
275+ com.canonical.certification::serial_assertion
276+ com.canonical.certification::snap
277+ com.canonical.certification::sysfs_attachment
278+ com.canonical.certification::system_info_json
279+ com.canonical.certification::udev_attachment
280+ com.canonical.certification::udev_json
281+ com.canonical.certification::uname
282+ com.canonical.certification::net_if_management_attachment
283+bootstrap_include:
284+ com.canonical.certification::cpuinfo
285+ com.canonical.certification::device
286+ com.canonical.certification::dmi
287+ com.canonical.certification::model_assertion
288+ com.canonical.certification::net_if_management
289+ limerick_sku
290+nested_part:
291+ dtb-automated
292+ com.canonical.certification::self-automated
293+ com.canonical.certification::graphics-integrated-gpu-cert-automated
294+ com.canonical.certification::usb-automated
295+ com.canonical.certification::cpu-automated
296+ com.canonical.certification::disk-automated
297+ com.canonical.certification::ethernet-automated
298+ com.canonical.certification::i2c-automated
299+ com.canonical.certification::memory-automated
300+ com.canonical.certification::networking-automated
301+ com.canonical.certification::camera-cert-automated
302+ com.canonical.certification::snappy-snap-automated
303+ com.canonical.certification::watchdog-automated
304+ com.canonical.certification::suspend-tp
305+ com.canonical.certification::after-suspend-ethernet-automated
306+ com.canonical.certification::after-suspend-networking-automated
307+exclude:
308+ com.canonical.certification::cpu/maxfreq_test
309+ com.canonical.certification::cpu/maxfreq_test-log-attach
310+ com.canonical.certification::cpu/offlining_test
311+ com.canonical.certification::cpu/topology
312+ com.canonical.certification::cpu/cstates
313+ com.canonical.certification::cpu/cstates_results.log
314+ com.canonical.certification::cpu/scaling_test
315+ com.canonical.certification::cpu/scaling_test-log-attach
316+ com.canonical.certification::disk/storage_device_mtd.*
317+
318+id: limerick-stress-classic
319+unit: test plan
320+_name: Stress only QA tests for limerick classic image
321+_description:
322+ QA test plan for the limerick classic image. This test plan contains
323+ all of the stree tests used to validate the limerick device.
324+include:
325+mandatory_include:
326+ com.canonical.certification::connections
327+ com.canonical.certification::dmi_attachment
328+ com.canonical.certification::dpkg
329+ com.canonical.certification::info/buildstamp
330+ com.canonical.certification::info/systemd-analyze
331+ com.canonical.certification::interface
332+ com.canonical.certification::lsb
333+ com.canonical.certification::lspci_attachment
334+ com.canonical.certification::lsusb_attachment
335+ com.canonical.certification::meminfo
336+ com.canonical.certification::package
337+ com.canonical.certification::parts_meta_info_attachment
338+ com.canonical.certification::serial_assertion
339+ com.canonical.certification::snap
340+ com.canonical.certification::sysfs_attachment
341+ com.canonical.certification::system_info_json
342+ com.canonical.certification::udev_attachment
343+ com.canonical.certification::udev_json
344+ com.canonical.certification::uname
345+ com.canonical.certification::net_if_management_attachment
346+bootstrap_include:
347+ com.canonical.certification::cpuinfo
348+ com.canonical.certification::device
349+ com.canonical.certification::dmi
350+ com.canonical.certification::model_assertion
351+ com.canonical.certification::net_if_management
352+ limerick_sku
353+nested_part:
354+ com.canonical.certification::stress-full
355+exclude:
356+ com.canonical.certification::stress-tests/hibernate.*
357diff --git a/units/test-plan.pxu b/units/test-plan.pxu
358new file mode 100644
359index 0000000..8d2b8ae
360--- /dev/null
361+++ b/units/test-plan.pxu
362@@ -0,0 +1,167 @@
363+# Copyright 2020 Canonical Ltd.
364+# All rights reserved.
365+#
366+# Test plans and (optionally) jobs unique to the limerick device.
367+#
368+
369+id: limerick
370+unit: test plan
371+_name: Full manual + automated tests for limerick
372+_description:
373+ Combined manual and automated test plans for limerick devices.
374+include:
375+nested_part:
376+ limerick-manual
377+ limerick-automated
378+
379+id: limerick-manual
380+unit: test plan
381+_name: Manual only QA tests for limerick
382+_description:
383+ QA test plan for the limerick hardware. This test plan contains
384+ all of the tests that require manual control of device hardware
385+ or some other user input to complete.
386+estimated_duration: 3600
387+include:
388+mandatory_include:
389+ com.canonical.certification::connections
390+ com.canonical.certification::dmi_attachment
391+ com.canonical.certification::dpkg
392+ com.canonical.certification::info/buildstamp
393+ com.canonical.certification::info/systemd-analyze
394+ com.canonical.certification::interface
395+ com.canonical.certification::lsb
396+ com.canonical.certification::lspci_attachment
397+ com.canonical.certification::lsusb_attachment
398+ com.canonical.certification::meminfo
399+ com.canonical.certification::package
400+ com.canonical.certification::parts_meta_info_attachment
401+ com.canonical.certification::serial_assertion
402+ com.canonical.certification::snap
403+ com.canonical.certification::sysfs_attachment
404+ com.canonical.certification::system_info_json
405+ com.canonical.certification::udev_attachment
406+ com.canonical.certification::udev_json
407+ com.canonical.certification::uname
408+ com.canonical.certification::net_if_management_attachment
409+bootstrap_include:
410+ com.canonical.certification::cpuinfo
411+ com.canonical.certification::device
412+ com.canonical.certification::dmi
413+ com.canonical.certification::model_assertion
414+ com.canonical.certification::net_if_management
415+ limerick_sku
416+nested_part:
417+ device-connections-tp
418+ com.canonical.certification::ethernet-manual
419+ com.canonical.certification::monitor-manual
420+ com.canonical.certification::power-manual
421+ com.canonical.certification::serial-manual
422+ # com.canonical.certification::snappy-snap-manual # covered by automated tests
423+ com.canonical.certification::usb-manual
424+ com.canonical.certification::usb3-manual
425+ com.canonical.certification::watchdog-manual
426+ # com.canonical.certification::wireless-manual # covered by automated tests
427+exclude:
428+ com.canonical.certification::monitor/dvi
429+ com.canonical.certification::monitor/dvi-to-vga
430+
431+
432+id: limerick-automated
433+unit: test plan
434+_name: Automated only QA tests for limerick
435+_description:
436+ QA test plan for the limerick hardware. This test plan contains
437+ all of the automated tests used to validate the limerick device.
438+include:
439+mandatory_include:
440+ com.canonical.certification::connections
441+ com.canonical.certification::dmi_attachment
442+ com.canonical.certification::dpkg
443+ com.canonical.certification::info/buildstamp
444+ com.canonical.certification::info/systemd-analyze
445+ com.canonical.certification::interface
446+ com.canonical.certification::lsb
447+ com.canonical.certification::lspci_attachment
448+ com.canonical.certification::lsusb_attachment
449+ com.canonical.certification::meminfo
450+ com.canonical.certification::package
451+ com.canonical.certification::parts_meta_info_attachment
452+ com.canonical.certification::serial_assertion
453+ com.canonical.certification::snap
454+ com.canonical.certification::sysfs_attachment
455+ com.canonical.certification::system_info_json
456+ com.canonical.certification::udev_attachment
457+ com.canonical.certification::udev_json
458+ com.canonical.certification::uname
459+ com.canonical.certification::net_if_management_attachment
460+bootstrap_include:
461+ com.canonical.certification::cpuinfo
462+ com.canonical.certification::device
463+ com.canonical.certification::dmi
464+ com.canonical.certification::model_assertion
465+ com.canonical.certification::net_if_management
466+ limerick_sku
467+nested_part:
468+ device-connections-tp
469+ com.canonical.certification::self-automated
470+ com.canonical.certification::usb-automated
471+ com.canonical.certification::cpu-automated
472+ com.canonical.certification::disk-automated
473+ com.canonical.certification::ethernet-automated
474+ com.canonical.certification::i2c-automated
475+ com.canonical.certification::kernel-snap-automated
476+ com.canonical.certification::memory-automated
477+ com.canonical.certification::networking-automated
478+ com.canonical.certification::snappy-snap-automated
479+ com.canonical.certification::watchdog-automated
480+exclude:
481+ com.canonical.certification::cpu/maxfreq_test
482+ com.canonical.certification::cpu/maxfreq_test-log-attach
483+ com.canonical.certification::cpu/offlining_test
484+ com.canonical.certification::cpu/topology
485+ com.canonical.certification::cpu/cstates
486+ com.canonical.certification::cpu/cstates_results.log
487+ com.canonical.certification::cpu/scaling_test
488+ com.canonical.certification::cpu/scaling_test-log-attach
489+ com.canonical.certification::disk/storage_device_mtd.*
490+
491+id: limerick-stress
492+unit: test plan
493+_name: Stress only QA tests for limerick
494+_description:
495+ QA test plan for the limerick hardware. This test plan contains
496+ all of the stree tests used to validate the limerick device.
497+include:
498+mandatory_include:
499+ com.canonical.certification::connections
500+ com.canonical.certification::dmi_attachment
501+ com.canonical.certification::dpkg
502+ com.canonical.certification::info/buildstamp
503+ com.canonical.certification::info/systemd-analyze
504+ com.canonical.certification::interface
505+ com.canonical.certification::lsb
506+ com.canonical.certification::lspci_attachment
507+ com.canonical.certification::lsusb_attachment
508+ com.canonical.certification::meminfo
509+ com.canonical.certification::package
510+ com.canonical.certification::parts_meta_info_attachment
511+ com.canonical.certification::serial_assertion
512+ com.canonical.certification::snap
513+ com.canonical.certification::sysfs_attachment
514+ com.canonical.certification::system_info_json
515+ com.canonical.certification::udev_attachment
516+ com.canonical.certification::udev_json
517+ com.canonical.certification::uname
518+ com.canonical.certification::net_if_management_attachment
519+bootstrap_include:
520+ com.canonical.certification::cpuinfo
521+ com.canonical.certification::device
522+ com.canonical.certification::dmi
523+ com.canonical.certification::model_assertion
524+ com.canonical.certification::net_if_management
525+ limerick_sku
526+nested_part:
527+ com.canonical.certification::stress-full
528+exclude:
529+ com.canonical.certification::stress-tests/hibernate.*

Subscribers

People subscribed via source and target branches