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
diff --git a/bin/component_test.py b/bin/component_test.py
0new file mode 1007550new file mode 100755
index 0000000..4f4c4ba
--- /dev/null
+++ b/bin/component_test.py
@@ -0,0 +1,55 @@
1#!/usr/bin/env python3
2#
3# This file is part of Checkbox.
4#
5# Copyright 2020 Canonical Ltd.
6#
7# Authors:
8# Sylvain Pineau <sylvain.pineau@canonical.com>
9#
10# Checkbox is free software: you can redistribute it and/or modify
11# it under the terms of the GNU General Public License version 3,
12# as published by the Free Software Foundation.
13#
14# Checkbox is distributed in the hope that it will be useful,
15# but WITHOUT ANY WARRANTY; without even the implied warranty of
16# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17# GNU General Public License for more details.
18#
19# You should have received a copy of the GNU General Public License
20# along with Checkbox. If not, see <http://www.gnu.org/licenses/>.
21
22import codecs
23import glob
24import os
25import re
26import subprocess
27import sys
28
29p = glob.glob('/usr/lib/firmware/*/device-tree/{}'.format(
30 codecs.decode("kvyvak", "rot-13")))[0]
31dtb = os.path.join(p, '{}.dtb'.format(sys.argv[1]))
32dt_lookup_list = []
33exit_status = 0
34
35dt_compatible_patterns = subprocess.check_output(
36 'find /proc/device-tree/ -name compatible -exec '
37 'bash -c "cat {} && echo" \\; | sort -u',
38 shell=True, universal_newlines=True).splitlines()
39for line in dt_compatible_patterns:
40 line = line.replace("\0", ", ")
41 dt_lookup_list.append(re.split(', ', line)[:-1])
42
43compatible_patterns = subprocess.check_output(
44 'fdtdump {} 2>/dev/null | grep -oP "(?<= compatible = ).*"'
45 ' | sort -u'.format(dtb),
46 shell=True, universal_newlines=True).splitlines()
47for l in compatible_patterns:
48 item = re.split(', ', l.replace('"', '').replace(';', ''))
49 if item in dt_lookup_list:
50 print('Found in /proc/device-tree/:', l)
51 else:
52 print('ERROR: Not found:', l, file=sys.stderr)
53 exit_status = 1
54
55raise SystemExit(exit_status)
diff --git a/manage.py b/manage.py
0new file mode 10075556new file mode 100755
index 0000000..da21a67
--- /dev/null
+++ b/manage.py
@@ -0,0 +1,16 @@
1#!/usr/bin/env python3
2# Copyright 2020 Canonical Ltd.
3# All rights reserved.
4
5"""Management script for the limerick provider."""
6
7from plainbox.provider_manager import setup
8from plainbox.provider_manager import N_
9
10setup(
11 name='checkbox-provider-limerick',
12 namespace='com.canonical.qa.limerick',
13 version="0.1",
14 description=N_("Checkbox Provider for limerick devices"),
15 gettext_domain='checkbox-provider-limerick',
16)
diff --git a/units/components/category.pxu b/units/components/category.pxu
0new file mode 10064417new file mode 100644
index 0000000..95a11eb
--- /dev/null
+++ b/units/components/category.pxu
@@ -0,0 +1,9 @@
1# Copyright 2020 Canonical Ltd.
2# All rights reserved.
3#
4# Written by:
5# Sylvain Pineau <sylvain.pineau@canonical.com>
6
7unit: category
8id: dtb_components
9_name: Device Tree Components
diff --git a/units/components/jobs.pxu b/units/components/jobs.pxu
0new file mode 10064410new file mode 100644
index 0000000..524bcd6
--- /dev/null
+++ b/units/components/jobs.pxu
@@ -0,0 +1,10 @@
1unit: template
2template-resource: limerick_sku
3id: dtb/components_{name}
4_summary: Check all DTB compatible properties are loaded in /proc/device-tree
5command: component_test.py {name}
6plugin: shell
7category_id: dtb_components
8estimated_duration: 1m
9imports: from com.canonical.certification import package
10requires: package.name == 'device-tree-compiler'
diff --git a/units/components/test-plan.pxu b/units/components/test-plan.pxu
0new file mode 10064411new file mode 100644
index 0000000..cefd8a5
--- /dev/null
+++ b/units/components/test-plan.pxu
@@ -0,0 +1,6 @@
1id: dtb-automated
2unit: test plan
3_name: Automated DTB tests
4_description: Automated DTB tests
5include:
6 dtb/components_.*
diff --git a/units/device/jobs.pxu b/units/device/jobs.pxu
0new file mode 1006447new file mode 100644
index 0000000..3a9fde5
--- /dev/null
+++ b/units/device/jobs.pxu
@@ -0,0 +1,34 @@
1id: connect-plugs
2estimated_duration: 60
3plugin: resource
4user: root
5command:
6 checkbox-support-snap_connect \
7 hardware-observe:core:hardware-observe \
8 mount-observe:core:mount-observe \
9 network-bind:core:network-bind \
10 system-observe:core:system-observe \
11 # bluez:bluez:service \
12 # bluetooth-control:core:bluetooth-control \
13 # network-manager:network-manager:service \
14 home:core:home
15_summary: Connect all checkbox plugs
16_description: Connect all checkbox plugs
17
18id: limerick_sku
19plugin: resource
20_summary: Detect which Limerick SKU the tool is running on
21command:
22 perl -ne 's/ /-/g;s/(.*?)([A-Z]?)\W+$/\L$1\U$2/; print "name: $_\n"' /proc/device-tree/model
23estimated_duration: 1s
24
25id: device-connections-tp
26unit: test plan
27_name: Test plan that connects all checkbox plugs
28_description:
29 This test plan is necessary to assure the proper ordering of resource jobs
30 being run
31estimated_duration: 60
32bootstrap_include:
33 connect-plugs
34include:
diff --git a/units/test-plan-classic.pxu b/units/test-plan-classic.pxu
0new file mode 10064435new file mode 100644
index 0000000..b333acf
--- /dev/null
+++ b/units/test-plan-classic.pxu
@@ -0,0 +1,184 @@
1# Copyright 2020 Canonical Ltd.
2# All rights reserved.
3#
4# Test plans and (optionally) jobs unique to the limerick device.
5#
6
7id: limerick-classic
8unit: test plan
9_name: Full manual + automated tests for limerick classic image
10_description:
11 Combined manual and automated test plans for limerick classic image.
12include:
13nested_part:
14 limerick-manual-classic
15 limerick-automated-classic
16
17id: limerick-manual-classic
18unit: test plan
19_name: Manual only QA tests for limerick classic image
20_description:
21 QA test plan for the limerick classic image. This test plan contains
22 all of the tests that require manual control of device hardware
23 or some other user input to complete.
24estimated_duration: 3600
25include:
26mandatory_include:
27 com.canonical.certification::connections
28 com.canonical.certification::dmi_attachment
29 com.canonical.certification::dpkg
30 com.canonical.certification::info/buildstamp
31 com.canonical.certification::info/systemd-analyze
32 com.canonical.certification::interface
33 com.canonical.certification::lsb
34 com.canonical.certification::lspci_attachment
35 com.canonical.certification::lsusb_attachment
36 com.canonical.certification::meminfo
37 com.canonical.certification::package
38 com.canonical.certification::parts_meta_info_attachment
39 com.canonical.certification::serial_assertion
40 com.canonical.certification::snap
41 com.canonical.certification::sysfs_attachment
42 com.canonical.certification::system_info_json
43 com.canonical.certification::udev_attachment
44 com.canonical.certification::udev_json
45 com.canonical.certification::uname
46 com.canonical.certification::net_if_management_attachment
47bootstrap_include:
48 com.canonical.certification::cpuinfo
49 com.canonical.certification::device
50 com.canonical.certification::dmi
51 com.canonical.certification::model_assertion
52 com.canonical.certification::net_if_management
53 limerick_sku
54nested_part:
55 dtb-automated
56 com.canonical.certification::ethernet-manual
57 com.canonical.certification::monitor-manual
58 com.canonical.certification::power-manual
59 com.canonical.certification::serial-manual
60 # com.canonical.certification::snappy-snap-manual # covered by automated tests
61 com.canonical.certification::usb-manual
62 com.canonical.certification::usb3-manual
63 com.canonical.certification::watchdog-manual
64 # com.canonical.certification::wireless-manual # covered by automated tests
65 com.canonical.certification::graphics-integrated-gpu-cert-manual
66 com.canonical.certification::camera-cert-manual
67 com.canonical.certification::after-suspend-monitor-manual
68 com.canonical.certification::after-suspend-usb-manual
69 com.canonical.certification::after-suspend-usb3-manual
70 com.canonical.certification::after-suspend-graphics-integrated-gpu-cert-manual
71 com.canonical.certification::after-suspend-camera-cert-full
72exclude:
73 com.canonical.certification::monitor/dvi
74 com.canonical.certification::monitor/dvi-to-vga
75 com.canonical.certification::monitor/hdmi-to-vga
76 com.canonical.certification::after-suspend-monitor/dvi
77 com.canonical.certification::after-suspend-monitor/dvi-to-vga
78 com.canonical.certification::after-suspend-monitor/hdmi-to-vga
79 com.canonical.certification::power-management/lid
80 com.canonical.certification::power-management/lid_close
81 com.canonical.certification::power-management/lid_open
82
83id: limerick-automated-classic
84unit: test plan
85_name: Automated only QA tests for limerick classic image
86_description:
87 QA test plan for the limerick classic image. This test plan contains
88 all of the automated tests used to validate the limerick device.
89include:
90mandatory_include:
91 com.canonical.certification::connections
92 com.canonical.certification::dmi_attachment
93 com.canonical.certification::dpkg
94 com.canonical.certification::info/buildstamp
95 com.canonical.certification::info/systemd-analyze
96 com.canonical.certification::interface
97 com.canonical.certification::lsb
98 com.canonical.certification::lspci_attachment
99 com.canonical.certification::lsusb_attachment
100 com.canonical.certification::meminfo
101 com.canonical.certification::package
102 com.canonical.certification::parts_meta_info_attachment
103 com.canonical.certification::serial_assertion
104 com.canonical.certification::snap
105 com.canonical.certification::sysfs_attachment
106 com.canonical.certification::system_info_json
107 com.canonical.certification::udev_attachment
108 com.canonical.certification::udev_json
109 com.canonical.certification::uname
110 com.canonical.certification::net_if_management_attachment
111bootstrap_include:
112 com.canonical.certification::cpuinfo
113 com.canonical.certification::device
114 com.canonical.certification::dmi
115 com.canonical.certification::model_assertion
116 com.canonical.certification::net_if_management
117 limerick_sku
118nested_part:
119 dtb-automated
120 com.canonical.certification::self-automated
121 com.canonical.certification::graphics-integrated-gpu-cert-automated
122 com.canonical.certification::usb-automated
123 com.canonical.certification::cpu-automated
124 com.canonical.certification::disk-automated
125 com.canonical.certification::ethernet-automated
126 com.canonical.certification::i2c-automated
127 com.canonical.certification::memory-automated
128 com.canonical.certification::networking-automated
129 com.canonical.certification::camera-cert-automated
130 com.canonical.certification::snappy-snap-automated
131 com.canonical.certification::watchdog-automated
132 com.canonical.certification::suspend-tp
133 com.canonical.certification::after-suspend-ethernet-automated
134 com.canonical.certification::after-suspend-networking-automated
135exclude:
136 com.canonical.certification::cpu/maxfreq_test
137 com.canonical.certification::cpu/maxfreq_test-log-attach
138 com.canonical.certification::cpu/offlining_test
139 com.canonical.certification::cpu/topology
140 com.canonical.certification::cpu/cstates
141 com.canonical.certification::cpu/cstates_results.log
142 com.canonical.certification::cpu/scaling_test
143 com.canonical.certification::cpu/scaling_test-log-attach
144 com.canonical.certification::disk/storage_device_mtd.*
145
146id: limerick-stress-classic
147unit: test plan
148_name: Stress only QA tests for limerick classic image
149_description:
150 QA test plan for the limerick classic image. This test plan contains
151 all of the stree tests used to validate the limerick device.
152include:
153mandatory_include:
154 com.canonical.certification::connections
155 com.canonical.certification::dmi_attachment
156 com.canonical.certification::dpkg
157 com.canonical.certification::info/buildstamp
158 com.canonical.certification::info/systemd-analyze
159 com.canonical.certification::interface
160 com.canonical.certification::lsb
161 com.canonical.certification::lspci_attachment
162 com.canonical.certification::lsusb_attachment
163 com.canonical.certification::meminfo
164 com.canonical.certification::package
165 com.canonical.certification::parts_meta_info_attachment
166 com.canonical.certification::serial_assertion
167 com.canonical.certification::snap
168 com.canonical.certification::sysfs_attachment
169 com.canonical.certification::system_info_json
170 com.canonical.certification::udev_attachment
171 com.canonical.certification::udev_json
172 com.canonical.certification::uname
173 com.canonical.certification::net_if_management_attachment
174bootstrap_include:
175 com.canonical.certification::cpuinfo
176 com.canonical.certification::device
177 com.canonical.certification::dmi
178 com.canonical.certification::model_assertion
179 com.canonical.certification::net_if_management
180 limerick_sku
181nested_part:
182 com.canonical.certification::stress-full
183exclude:
184 com.canonical.certification::stress-tests/hibernate.*
diff --git a/units/test-plan.pxu b/units/test-plan.pxu
0new file mode 100644185new file mode 100644
index 0000000..8d2b8ae
--- /dev/null
+++ b/units/test-plan.pxu
@@ -0,0 +1,167 @@
1# Copyright 2020 Canonical Ltd.
2# All rights reserved.
3#
4# Test plans and (optionally) jobs unique to the limerick device.
5#
6
7id: limerick
8unit: test plan
9_name: Full manual + automated tests for limerick
10_description:
11 Combined manual and automated test plans for limerick devices.
12include:
13nested_part:
14 limerick-manual
15 limerick-automated
16
17id: limerick-manual
18unit: test plan
19_name: Manual only QA tests for limerick
20_description:
21 QA test plan for the limerick hardware. This test plan contains
22 all of the tests that require manual control of device hardware
23 or some other user input to complete.
24estimated_duration: 3600
25include:
26mandatory_include:
27 com.canonical.certification::connections
28 com.canonical.certification::dmi_attachment
29 com.canonical.certification::dpkg
30 com.canonical.certification::info/buildstamp
31 com.canonical.certification::info/systemd-analyze
32 com.canonical.certification::interface
33 com.canonical.certification::lsb
34 com.canonical.certification::lspci_attachment
35 com.canonical.certification::lsusb_attachment
36 com.canonical.certification::meminfo
37 com.canonical.certification::package
38 com.canonical.certification::parts_meta_info_attachment
39 com.canonical.certification::serial_assertion
40 com.canonical.certification::snap
41 com.canonical.certification::sysfs_attachment
42 com.canonical.certification::system_info_json
43 com.canonical.certification::udev_attachment
44 com.canonical.certification::udev_json
45 com.canonical.certification::uname
46 com.canonical.certification::net_if_management_attachment
47bootstrap_include:
48 com.canonical.certification::cpuinfo
49 com.canonical.certification::device
50 com.canonical.certification::dmi
51 com.canonical.certification::model_assertion
52 com.canonical.certification::net_if_management
53 limerick_sku
54nested_part:
55 device-connections-tp
56 com.canonical.certification::ethernet-manual
57 com.canonical.certification::monitor-manual
58 com.canonical.certification::power-manual
59 com.canonical.certification::serial-manual
60 # com.canonical.certification::snappy-snap-manual # covered by automated tests
61 com.canonical.certification::usb-manual
62 com.canonical.certification::usb3-manual
63 com.canonical.certification::watchdog-manual
64 # com.canonical.certification::wireless-manual # covered by automated tests
65exclude:
66 com.canonical.certification::monitor/dvi
67 com.canonical.certification::monitor/dvi-to-vga
68
69
70id: limerick-automated
71unit: test plan
72_name: Automated only QA tests for limerick
73_description:
74 QA test plan for the limerick hardware. This test plan contains
75 all of the automated tests used to validate the limerick device.
76include:
77mandatory_include:
78 com.canonical.certification::connections
79 com.canonical.certification::dmi_attachment
80 com.canonical.certification::dpkg
81 com.canonical.certification::info/buildstamp
82 com.canonical.certification::info/systemd-analyze
83 com.canonical.certification::interface
84 com.canonical.certification::lsb
85 com.canonical.certification::lspci_attachment
86 com.canonical.certification::lsusb_attachment
87 com.canonical.certification::meminfo
88 com.canonical.certification::package
89 com.canonical.certification::parts_meta_info_attachment
90 com.canonical.certification::serial_assertion
91 com.canonical.certification::snap
92 com.canonical.certification::sysfs_attachment
93 com.canonical.certification::system_info_json
94 com.canonical.certification::udev_attachment
95 com.canonical.certification::udev_json
96 com.canonical.certification::uname
97 com.canonical.certification::net_if_management_attachment
98bootstrap_include:
99 com.canonical.certification::cpuinfo
100 com.canonical.certification::device
101 com.canonical.certification::dmi
102 com.canonical.certification::model_assertion
103 com.canonical.certification::net_if_management
104 limerick_sku
105nested_part:
106 device-connections-tp
107 com.canonical.certification::self-automated
108 com.canonical.certification::usb-automated
109 com.canonical.certification::cpu-automated
110 com.canonical.certification::disk-automated
111 com.canonical.certification::ethernet-automated
112 com.canonical.certification::i2c-automated
113 com.canonical.certification::kernel-snap-automated
114 com.canonical.certification::memory-automated
115 com.canonical.certification::networking-automated
116 com.canonical.certification::snappy-snap-automated
117 com.canonical.certification::watchdog-automated
118exclude:
119 com.canonical.certification::cpu/maxfreq_test
120 com.canonical.certification::cpu/maxfreq_test-log-attach
121 com.canonical.certification::cpu/offlining_test
122 com.canonical.certification::cpu/topology
123 com.canonical.certification::cpu/cstates
124 com.canonical.certification::cpu/cstates_results.log
125 com.canonical.certification::cpu/scaling_test
126 com.canonical.certification::cpu/scaling_test-log-attach
127 com.canonical.certification::disk/storage_device_mtd.*
128
129id: limerick-stress
130unit: test plan
131_name: Stress only QA tests for limerick
132_description:
133 QA test plan for the limerick hardware. This test plan contains
134 all of the stree tests used to validate the limerick device.
135include:
136mandatory_include:
137 com.canonical.certification::connections
138 com.canonical.certification::dmi_attachment
139 com.canonical.certification::dpkg
140 com.canonical.certification::info/buildstamp
141 com.canonical.certification::info/systemd-analyze
142 com.canonical.certification::interface
143 com.canonical.certification::lsb
144 com.canonical.certification::lspci_attachment
145 com.canonical.certification::lsusb_attachment
146 com.canonical.certification::meminfo
147 com.canonical.certification::package
148 com.canonical.certification::parts_meta_info_attachment
149 com.canonical.certification::serial_assertion
150 com.canonical.certification::snap
151 com.canonical.certification::sysfs_attachment
152 com.canonical.certification::system_info_json
153 com.canonical.certification::udev_attachment
154 com.canonical.certification::udev_json
155 com.canonical.certification::uname
156 com.canonical.certification::net_if_management_attachment
157bootstrap_include:
158 com.canonical.certification::cpuinfo
159 com.canonical.certification::device
160 com.canonical.certification::dmi
161 com.canonical.certification::model_assertion
162 com.canonical.certification::net_if_management
163 limerick_sku
164nested_part:
165 com.canonical.certification::stress-full
166exclude:
167 com.canonical.certification::stress-tests/hibernate.*

Subscribers

People subscribed via source and target branches