diff options
author | PMR <pmr@pmr-lander> | 2020-09-16 01:56:13 +0000 |
---|---|---|
committer | PMR <pmr@pmr-lander> | 2020-09-16 01:56:13 +0000 |
commit | 18d34722547fd752ba6d4401a83ea6b147c59d76 (patch) | |
tree | b8771a6889730281780272eec2e64842a47baae3 | |
parent | 156dbdc09ac1fbeff078386d6a4bd071c7fd2cd0 (diff) | |
parent | d559672d80bae1aded753dc568e232012151213e (diff) |
Merge #386937 from ~stanley31/oem-qa-checkbox:oem_meta_version_check
-rwxr-xr-x | bin/check-oem-package-source.py | 481 | ||||
-rw-r--r-- | jobs/misc/misc-generic.txt | 44 | ||||
-rw-r--r-- | jobs/somerville/somerville-oem-meta.pxu | 13 | ||||
-rw-r--r-- | jobs/stella/stella-oem-meta.pxu | 14 | ||||
-rw-r--r-- | jobs/sutton/sutton-oem-meta.pxu | 14 | ||||
-rw-r--r-- | units/somerville-audio.pxu | 2 | ||||
-rw-r--r-- | units/somerville-auto.pxu | 2 | ||||
-rw-r--r-- | units/somerville-bios-regression.pxu | 2 | ||||
-rw-r--r-- | units/somerville-cpu.pxu | 2 | ||||
-rw-r--r-- | units/somerville-dock.pxu | 2 | ||||
-rw-r--r-- | units/somerville-fv-regression.pxu | 2 | ||||
-rw-r--r-- | units/somerville-graphic.pxu | 2 | ||||
-rw-r--r-- | units/somerville-iev-full-20-04.pxu | 2 | ||||
-rw-r--r-- | units/somerville-iev-regression.pxu | 2 | ||||
-rw-r--r-- | units/somerville-stress.pxu | 2 | ||||
-rw-r--r-- | units/somerville-touch-webcam.pxu | 2 | ||||
-rw-r--r-- | units/somerville-wireless.pxu | 2 | ||||
-rw-r--r-- | units/stella-full-20-04.pxu | 4 | ||||
-rw-r--r-- | units/stella-regression.pxu | 4 | ||||
-rw-r--r-- | units/sutton-full-20-04.pxu | 6 |
20 files changed, 581 insertions, 23 deletions
diff --git a/bin/check-oem-package-source.py b/bin/check-oem-package-source.py new file mode 100755 index 0000000..2f9714c --- /dev/null +++ b/bin/check-oem-package-source.py @@ -0,0 +1,481 @@ +#!/usr/bin/env python3 +import os +import sys +import argparse +import subprocess +import re +import json +import copy + +DEFAULT_OEM_URL = r"http://\w*\.archive.canonical.com" +DEFAULT_UBUNTU_URL = r"http://[\w.-]+/ubuntu" +OEM_URL_PATTERN = { + "oem-somerville": "http://dell.archive.canonical.com", + "oem-sutton": "http://lenovo.archive.canonical.com", + "oem-stella": "http://hp.archive.canonical.com", + "default": r"http://\w*\.archive.canonical.com" +} +OEM_DELL_URL = "http://dell.archive.canonical.com" +OEM_LENOVO_URL = "http://lenovo.archive.canonical.com" +OEM_HP_URL = "http://hp.archive.canonical.com" +DEFAULT_SOURCE_DIR = "/etc/apt/sources.list.d/" +UNSUPPORTED_CODENAME = ["bionic", "xenial", "trusty"] +OEM_KEY = "OEM_VersionInfo" +UBUNTU_KEY = "Ubuntu_VersionInfo" +SHELL_ENV = os.environ +SHELL_ENV.update({"LANG": "en_us.utf-8"}) + + +def issue_cmd(cmd): + output = None + result = False + try: + process = subprocess.Popen( + cmd, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + shell=True, + env=SHELL_ENV + ) + output, stderr = process.communicate() + output = output.decode("utf-8") + stderr = stderr.decode("utf-8") + result = process.returncode + except Exception as err: + print(err) + + print("Command: {}\nResponse: {}".format(cmd, output)) + if process.returncode != 0: + print("Error Message: {}".format(stderr), file=sys.stderr) + + return result, output + + +def _get_platform_name(): + platform_cmd = "ubuntu-report show | grep DCD" + platform_pattern = r"canonical-(\w*-\w*)-\S*\+([^+ ]*)\+\S*" + ret_code, dct_data = issue_cmd(platform_cmd) + if ret_code != 0: + print("Failed to get DCD data", file=sys.stderr) + sys.exit(1) + + filter_result = re.search(platform_pattern, dct_data) + if filter_result: + project, platform = filter_result.groups() + else: + print("Failed to filter out the project name or platform name", + file=sys.stderr) + sys.exit(1) + + return project, platform + + +def _get_code_name(): + codename_cmd = "lsb_release -cs" + ret_code, codename = issue_cmd(codename_cmd) + + if ret_code != 0: + print("Failed to get codename", file=sys.stderr) + sys.exit(1) + + return codename + + +def gen_oem_meta_name(project, platform, factory, meta_type): + project_code = platform_code = None + + if project in ["oem-sutton", "oem-stella"]: + # laptop platform format: sutton-newell-ace + # pc platform format: pc-stella-meric- + # need to trim if pc- is exists. + if platform.startswith("pc-"): + platform = platform[3:].rsplit("-", 2) + else: + platform.rsplit("-", 2) + + if len(platform) != 3: + print("Unexpected platform format: ", platform, file=sys.stderr) + sys.exit(1) + # Look into /etc/apt/sources.list.d/ + pattern = r"^(oem-{})-(\S*)-meta\.list$".format( + platform[0].replace("-", ".", 1)) + + files = os.listdir(DEFAULT_SOURCE_DIR) + for filename in files: + result = re.search(pattern, filename) + if result: + project_code = result.groups()[0] + platform_code = result.groups()[1] + break + elif project in ["oem-somerville"]: + # Replace "fossa-" for somerville + platform_code = platform.replace("fossa-", "") + project_code = project + else: + print("Unknown project name: ", project, file=sys.stderr) + sys.exit(1) + + if platform_code: + if meta_type == "platform": + oem_metaname = "{}{}-{}-meta".format( + project_code, "-factory" if factory else "", platform_code) + elif meta_type == "project": + oem_metaname = "{}{}-meta".format( + project_code, "-factory" if factory else "") + else: + oem_metaname = None + else: + oem_metaname = None + + if not oem_metaname: + print("Failed to generate oem-meta name", file=sys.stderr) + sys.exit(1) + + return oem_metaname + + +def check_pkg_in_repos(package_name): + + command = "apt-cache pkgnames | grep {}".format(package_name) + ret_code, output = issue_cmd(command) + return True if ret_code == 0 else False + + +def get_package_info(package_name, oem_url=None, ubuntu_url=None): + main_pkg_name_filter = r"^(\S*):" + installed_ver_filter = r" Installed: (\S*)" + candidate_ver_filter = r" Candidate: (\S*)" + version_table_filter = "Version table:" + package_info = {} + + def _parse_version_table(data): + detail_version_filter = r"\n[ \*]{4} (\S+) [0-9]+\n" + archive_filter = r"[ ]+([0-9]+ [^\n]+)\n*" + detail_arch_filter = (r"(?P<priority>[0-9]+) (?P<url>\S+) " + r"(?P<repo>\S+) (?P<platform>\S+ \S+)") + oem_url_filter = oem_url or DEFAULT_OEM_URL + ubuntu_url_filter = ubuntu_url or DEFAULT_UBUNTU_URL + ignore_content = ["priority", "platform"] + version_map = {} + archive_map = {OEM_KEY: {}, UBUNTU_KEY: {}} + + # Split data from version table + versions = re.split(detail_version_filter, data) + tmp_version = "" + for _data in versions: + if _data and not _data.startswith(" "): + tmp_version = _data + elif _data and _data.startswith(" ") and tmp_version: + version_map.update({tmp_version: _data}) + + # To parse available archive for specific version + for version, data in version_map.items(): + archives = re.split(archive_filter, data) + archives = [archive for archive in archives if archive] + archive_detail = [] + + for archive in archives: + if archive.find("100 /var/lib/dpkg/status") != -1: + archive_detail.append({"priority": "100", + "repo": "/var/lib/dpkg/status"}) + continue + + details = re.search(detail_arch_filter, archive) + if details: + ver_infos = details.groupdict() + archive_detail.append(copy.deepcopy(ver_infos)) + if not archive_map.get(OEM_KEY): + validate_oem = re.search(oem_url_filter, + ver_infos.get("url", "")) + if validate_oem: + [ver_infos.pop(key) for key in ignore_content] + ver_infos.update({"version": version}) + archive_map[OEM_KEY].update(ver_infos) + continue + if not archive_map.get(UBUNTU_KEY): + validate_ubuntu = re.search(ubuntu_url_filter, + ver_infos.get("url", "")) + if validate_ubuntu: + [ver_infos.pop(key) for key in ignore_content] + ver_infos.update({"version": version}) + archive_map[UBUNTU_KEY].update(ver_infos) + continue + version_map.update({version: archive_detail}) + + archive_map.update({"DetailedVersionInfo": version_map}) + return archive_map + + command = "apt-cache policy {}".format(package_name) + ret_code, output = issue_cmd(command) + + if ret_code == 0 and output: + # To collect package name + result = re.search(main_pkg_name_filter, output) + pkg_name = result.groups()[0] if result else None + # To collect installed version + result = re.search(installed_ver_filter, output) + installed_ver = result.groups()[0] if result else None + # To collect candidate version + result = re.search(candidate_ver_filter, output) + candidate_ver = result.groups()[0] if result else None + # To collect detail version information + idx_pos = output.find(version_table_filter) + len_tmp = len(version_table_filter) + version_table = output[idx_pos+len_tmp:] if idx_pos != -1 else None + version_data = _parse_version_table(version_table) + + if all([pkg_name, installed_ver, candidate_ver, version_data]): + version_data.update({"Installed": installed_ver, + "Candidate": candidate_ver}) + package_info = {package_name: version_data} + else: + print(("Unable to parse the detailed information of " + "{} package.").format(package_name), file=sys.stderr) + else: + print("apt-cache policy command failed for {} package.".format( + package_name), file=sys.stderr) + + return package_info + + +def check_source_list_content(source_list_file, meta_name, codename, uri=""): + result = False + + try: + # To defined correct uri for different project + # If meta_name start with unknown project name, uses default. + if meta_name.startswith("oem-somerville"): + uri = OEM_DELL_URL + repo_comp = re.search(r"oem-([\w\d-]*)-meta", + meta_name).groups()[0] + elif meta_name.startswith("oem-sutton"): + uri = OEM_LENOVO_URL + repo_comp = meta_name.split("-")[1] + elif meta_name.startswith("oem-stella"): + uri = OEM_HP_URL + repo_comp = meta_name.split("-")[1] + else: + uri = uri or DEFAULT_OEM_URL + repo_comp = meta_name + + if not all([uri, repo_comp, codename]): + raise ValueError + except ValueError: + print("Unexpected arguments! URI: {}, DIST: {}, REPO: {}".format( + uri, codename, meta_name)) + return result + except AttributeError: + print(("Unable to filter out the repository components" + " for {} package.").format(meta_name)) + return result + + validate_source_cmd = 'grep "^deb {uri}/ {dist} {comp}$"'.format( + uri=uri, dist=codename, comp=repo_comp) + + ret_code, output = issue_cmd(" ".join([validate_source_cmd, + source_list_file])) + if ret_code == 0: + result = True + else: + print("the content in {}.list is incorrect".format(meta_name), + file=sys.stderr) + + print("\n## Compare Package Content:\t{} ##".format( + "Passed" if result else "Failed")) + + return result + + +def _get_package_source_file(meta_name): + filename = None + file_pattern = r"(/etc/apt/sources.list.d/{}.list)\n".format(meta_name) + command = "dpkg -L " + meta_name + ret_code, output = issue_cmd(command) + + if ret_code == 0: + file_result = re.search(file_pattern, output) + if file_result: + filename = file_result.groups()[0] + else: + print("{} not in sources.list".format(meta_name), + file=sys.stderr) + else: + print("{} package not installed".format(meta_name), + file=sys.stderr) + + return filename + + +def check_meta_version(package, version_infos, check_stock): + # OEM-Meta package should be named as + # "oem-${project_name}-${platform_name}-meta" + + # list all available packages from apt repositories + # > apt-cache pkgnames + + # Collect the version information for meta package + # > apt-cache policy $meta-package-name + # + # This OEM-Meta package should be avaialble from OEM archive, + # stock ubuntu archive and current image + + # Compare the version between OEM archive, + # stock ubuntu archive and current image. + # Uses dpkg utitlity to compare version + # > dpkg --compare-versions ${a_version} ${b_version} + def _compare_version(ver_a, ver_b, operator): + command = "dpkg --compare-versions {ver1} {op} {ver2}".format( + ver1=ver_a, ver2=ver_b, op=operator) + ret_code, output = issue_cmd(command) + return True if ret_code == 0 else False + + cmp_result = False + + oem_ver = version_infos.get(OEM_KEY, {}).get("version", "") + real_oem_url = version_infos.get(OEM_KEY, {}).get("url", "") + oem_url_mapping = [OEM_URL_PATTERN.get(key) + for key in OEM_URL_PATTERN.keys() + if package.startswith(key)] + oem_url_mapping = oem_url_mapping[0] if len(oem_url_mapping) > 0 else "" + current_ver = version_infos.get("Installed", "") + + if current_ver == "" or re.search("[Nn]one", current_ver): + print("The {} package is not installed!".format(package), + file=sys.stderr) + else: + if oem_ver: + # The OEM-meta version in manifest should be less or + # equal to the version in OEM archive + oem_ver_check = _compare_version(current_ver, oem_ver, "eq") + print(("## Version in manifest equal to OEM archive:\t\t" + "{} ##").format("Passed" if oem_ver_check else "Failed"), + file=sys.stdout if oem_ver_check else sys.stderr) + oem_url_check = re.search(oem_url_mapping, real_oem_url) or False + print(("## Package comes from correct OEM archive:\t\t" + "{} ##").format("Passed" if oem_url_check else "Failed"), + file=sys.stdout if oem_url_check else sys.stderr) + else: + oem_ver_check = oem_url_check = False + print("## Package not available in OEM archive!", file=sys.stderr) + + # The OEM-meta version in OEM archive should be great or + # equal to the version in Ubuntu archive + if check_stock: + ubuntu_ver = version_infos.get(UBUNTU_KEY, {}).get("version", "") + if ubuntu_ver: + ubuntu_check = _compare_version(ubuntu_ver, oem_ver, "le") + print(("## Version in Stock archive is less or equal to " + "OEM archive:\t\t{} ##").format( + "Passed" if oem_ver_check else "Failed"), + file=sys.stdout if ubuntu_check else sys.stderr) + else: + ubuntu_check = False + print("## Package not available in Ubuntu archive!", + file=sys.stderr) + else: + ubuntu_check = True + + if oem_ver_check and oem_url_check and ubuntu_check: + cmp_result = True + + return cmp_result + + +def _register_arguments(): + + description = ("This utiltiy is uses to check the oem meta file " + "and validate the version between Ubuntu archive and " + "OEM archive.\nFor focal and later.") + parser = argparse.ArgumentParser( + description=description, + formatter_class=argparse.RawTextHelpFormatter) + + parser.add_argument( + "--meta", + type=str, + default="", + help=("OEM package name. If not specified, " + "generated OEM platform meta package from system.")) + parser.add_argument("--gen-meta-type", + choices=["platform", "project"], + default="platform", + help="The OEM platform meta type.") + parser.add_argument("--factory-meta", + action="store_true", + default=False, + help="Check OEM Factory Platform meta package") + parser.add_argument("--no-check-version", + action="store_true", + default=False, + help="Not to check the package metadata.") + parser.add_argument("--check-stock", + action="store_false", + default=False, + help=("To check the package in stock archive is " + "less than OEM archive.")) + parser.add_argument("--no-check-content", + action="store_true", + default=False, + help="Not to check the content in source list.") + parser.add_argument("--source-file", + type=str, + default="", + help=("Source List file. If not specified, " + "check OEM platform meta source list in " + "/etc/apt/sources.list.d/")) + + return parser.parse_args() + + +def main(): + + args = _register_arguments() + codename = _get_code_name() + if args.meta == "": + project, platform = _get_platform_name() + oem_metaname = gen_oem_meta_name(project, + platform, + args.factory_meta, + args.gen_meta_type) + else: + # User need to provided a package name + oem_metaname = args.meta + + results = [] + if not args.no_check_content: + check_result = False + source_file = args.source_file or _get_package_source_file( + oem_metaname) + + if source_file: + check_result = check_source_list_content(source_file, + oem_metaname, + codename) + results.append(check_result) + + if not args.no_check_version and codename not in UNSUPPORTED_CODENAME: + cmp_result = False + if check_pkg_in_repos(oem_metaname): + pkg_info = get_package_info(oem_metaname) + print(("## Detailed Information about the {} package ##\n" + "{}\n\n").format(oem_metaname, + json.dumps(pkg_info, indent=4))) + meta_pkg_info = pkg_info.get(oem_metaname) + if not meta_pkg_info: + print("Unable to get OEM metadata: {}".format(oem_metaname), + file=sys.stderr) + else: + cmp_result = check_meta_version(oem_metaname, + meta_pkg_info, + args.check_stock) + else: + print("{} package is not exists.".format(oem_metaname), + file=sys.stderr) + results.append(cmp_result) + + if results and not all(results): + sys.exit(1) + + +if __name__ == "__main__": + main() diff --git a/jobs/misc/misc-generic.txt b/jobs/misc/misc-generic.txt index 24568ca..98af1e4 100644 --- a/jobs/misc/misc-generic.txt +++ b/jobs/misc/misc-generic.txt @@ -17,10 +17,10 @@ command: sed -i 's/\#Storage=auto/Storage=persistent/' /etc/systemd/journald.con _summary: Set journald to preserve logs during stress test _description: PURPOSE: - 1. To make sure system will write journald log to disk during every boot. + 1. To make sure system will write journald log to disk during every boot. STEPS: 1. Press enter key - 2. Checkbox will modify /etc/systemd/journald.conf to set Storage=persistent + 2. Checkbox will modify /etc/systemd/journald.conf to set Storage=persistent 3. Then if any system hang occurs, the journald log will be preserved VERIFICATION: None @@ -31,7 +31,7 @@ user: root command: sed -i 's/\#Storage=auto/Storage=persistent/' /etc/systemd/journald.conf _summary: Set journald to preserve logs during stress test _description: - To make sure system will write journald log to disk during every boot. + To make sure system will write journald log to disk during every boot. plugin: shell id: misc/generic/check-unwanted-packages @@ -41,6 +41,44 @@ _description: For some packages which may have license or patent issues, this case checks if they are installed. plugin: shell +id: misc/generic/check-oem-project-meta +imports: from com.canonical.certification import lsb +requires: lsb.release >= "20.04" +command: check-oem-package-source.py --gen-meta-type project --no-check-content +_summary: Check OEM Project mata exists in manifest and OEM archive +_description: + To validate the OEM project meta in manifest and the version same as in OEM archive. + This test cases only supported in focal and later. + +plugin: shell +id: misc/generic/check-oem-project-factory-meta +imports: from com.canonical.certification import lsb +requires: lsb.release >= "20.04" +command: check-oem-package-source.py --gen-meta-type project --factory-meta --no-check-content +_summary: Check OEM Project factory mata exists in manifest and OEM archive +_description: + To validate the OEM platform meta in manifest and the version same as in OEM archive. + This test cases only supported in focal and later. + +plugin: shell +id: misc/generic/check-oem-platform-meta +imports: from com.canonical.certification import lsb +requires: lsb.release >= "20.04" +command: check-oem-package-source.py +_summary: Check OEM Platform mata exists in manifest, OEM and Ubuntu archive +_description: + To validate the OEM platform meta in manifest, OEM archive and Ubuntu archive. + This test cases only supported in focal and later. + +plugin: shell +id: misc/generic/check-oem-platform-factory-meta +imports: from com.canonical.certification import lsb +requires: lsb.release >= "20.04" +command: check-oem-package-source.py --factory-meta --no-check-content +_summary: Check OEM Platform factory mata exists in manifest and OEM archive +_description: + To validate the OEM platform factory meta in manifest and the version same as in OEM archive. + id: misc/generic/stock_ubuntu_platform_meta user: root command: diff --git a/jobs/somerville/somerville-oem-meta.pxu b/jobs/somerville/somerville-oem-meta.pxu new file mode 100644 index 0000000..7714fc9 --- /dev/null +++ b/jobs/somerville/somerville-oem-meta.pxu @@ -0,0 +1,13 @@ +unit: test plan +id: somerville-oem-meta +category_overrides: apply "somerville" to .* +_name: Somerville OEM meta test +_description: Somerville OEM Meta file test +include: + somerville/platform-meta-test + misc/generic/check-oem-project-meta + misc/generic/check-oem-project-factory-meta + misc/generic/check-oem-platform-meta + misc/generic/check-oem-platform-factory-meta +nested_part: + diff --git a/jobs/stella/stella-oem-meta.pxu b/jobs/stella/stella-oem-meta.pxu new file mode 100644 index 0000000..6b07b1a --- /dev/null +++ b/jobs/stella/stella-oem-meta.pxu @@ -0,0 +1,14 @@ +unit: test plan +id: stella-oem-meta +category_overrides: apply "stella" to .* +_name: Stella OEM meta test +_description: Stella OEM meta test +include: + # Mark below test case first, but need to confirm is it needed for beaver + # stella/sourcelist/.*-repository$ + misc/generic/check-oem-project-meta + misc/generic/check-oem-project-factory-meta + misc/generic/check-oem-platform-meta + misc/generic/check-oem-platform-factory-meta +nested_part: + diff --git a/jobs/sutton/sutton-oem-meta.pxu b/jobs/sutton/sutton-oem-meta.pxu new file mode 100644 index 0000000..5eb01a7 --- /dev/null +++ b/jobs/sutton/sutton-oem-meta.pxu @@ -0,0 +1,14 @@ +unit: test plan +id: sutton-oem-meta +category_overrides: apply "sutton" to .* +_name: Sutton OEM meta test +_description: Sutton OEM meta test +include: + com.canonical.ce::sutton/sourceslist/focal-oem + com.canonical.ce::sutton/sourceslist/security + com.canonical.ce::sutton/sourceslist/meta + misc/generic/check-oem-project-meta + misc/generic/check-oem-project-factory-meta + misc/generic/check-oem-platform-meta + misc/generic/check-oem-platform-factory-meta +nested_part: diff --git a/units/somerville-audio.pxu b/units/somerville-audio.pxu index b48ffc6..341238b 100644 --- a/units/somerville-audio.pxu +++ b/units/somerville-audio.pxu @@ -11,9 +11,9 @@ include: somerville/phase-platform somerville/dell-repository somerville/installation - somerville/platform-meta-test somerville/desktop-kpi-dashboard nested_part: + somerville-oem-meta oem-generic-audio power-management-s com.canonical.certification::power-management-reboot-poweroff-cert diff --git a/units/somerville-auto.pxu b/units/somerville-auto.pxu index 3661efa..7adc715 100644 --- a/units/somerville-auto.pxu +++ b/units/somerville-auto.pxu @@ -11,8 +11,8 @@ include: somerville/phase-platform somerville/dell-repository somerville/installation - somerville/platform-meta-test somerville/desktop-kpi-dashboard nested_part: + somerville-oem-meta oem-generic-auto com.canonical.certification::stress-suspend-30-cycles-with-reboots-automated diff --git a/units/somerville-bios-regression.pxu b/units/somerville-bios-regression.pxu index 3764630..224ce0f 100644 --- a/units/somerville-bios-regression.pxu +++ b/units/somerville-bios-regression.pxu @@ -11,10 +11,10 @@ include: somerville/phase-platform somerville/dell-repository somerville/installation - somerville/platform-meta-test somerville/desktop-kpi-dashboard misc/generic/grub_boothole nested_part: + somerville-oem-meta com.canonical.certification::submission-cert-full com.canonical.certification::audio-cert-full oobe diff --git a/units/somerville-cpu.pxu b/units/somerville-cpu.pxu index 2c2e64a..524468c 100644 --- a/units/somerville-cpu.pxu +++ b/units/somerville-cpu.pxu @@ -8,12 +8,12 @@ include: com.canonical.certification::info/detect_dell_recovery somerville/recovery/desktop-disk somerville/phase-sku - somerville/phase-platform somerville/dell-repository somerville/installation somerville/platform-meta-test somerville/desktop-kpi-dashboard nested_part: + somerville-oem-meta oem-generic-graphic power-management-s com.canonical.certification::cpu-cert-full diff --git a/units/somerville-dock.pxu b/units/somerville-dock.pxu index 0478c95..87c811d 100644 --- a/units/somerville-dock.pxu +++ b/units/somerville-dock.pxu @@ -11,8 +11,8 @@ include: somerville/phase-platform somerville/dell-repository somerville/installation - somerville/platform-meta-test somerville/desktop-kpi-dashboard nested_part: + somerville-oem-meta oem-generic-docking mandatory_include: diff --git a/units/somerville-fv-regression.pxu b/units/somerville-fv-regression.pxu index babd3b0..e31ee65 100644 --- a/units/somerville-fv-regression.pxu +++ b/units/somerville-fv-regression.pxu @@ -11,12 +11,12 @@ include: somerville/phase-platform somerville/dell-repository somerville/installation - somerville/platform-meta-test somerville/desktop-kpi-dashboard com.canonical.certification::audio/channels com.canonical.certification::audio/external-lineout misc/generic/grub_boothole nested_part: + somerville-oem-meta oobe oem-generic-blocker power-management-s diff --git a/units/somerville-graphic.pxu b/units/somerville-graphic.pxu index 9528f03..050bd6c 100644 --- a/units/somerville-graphic.pxu +++ b/units/somerville-graphic.pxu @@ -11,9 +11,9 @@ include: somerville/phase-platform somerville/dell-repository somerville/installation - somerville/platform-meta-test somerville/desktop-kpi-dashboard nested_part: + somerville-oem-meta oem-generic-graphic power-management-s com.canonical.certification::power-management-reboot-poweroff-cert diff --git a/units/somerville-iev-full-20-04.pxu b/units/somerville-iev-full-20-04.pxu index 6e33a5f..077ad22 100644 --- a/units/somerville-iev-full-20-04.pxu +++ b/units/somerville-iev-full-20-04.pxu @@ -11,13 +11,13 @@ include: somerville/phase-platform somerville/dell-repository somerville/installation - somerville/platform-meta-test somerville/desktop-kpi-dashboard somerville/fingerprint-login somerville/fingerprint-negative somerville/fingerprint-positive misc/generic/grub_boothole nested_part: + somerville-oem-meta oem-generic-full-20-04 power-management-s # The following part MUST run last diff --git a/units/somerville-iev-regression.pxu b/units/somerville-iev-regression.pxu index 425a086..e21d488 100644 --- a/units/somerville-iev-regression.pxu +++ b/units/somerville-iev-regression.pxu @@ -11,10 +11,10 @@ include: somerville/phase-platform somerville/dell-repository somerville/installation - somerville/platform-meta-test somerville/desktop-kpi-dashboard com.canonical.certification::audio/external-lineout nested_part: + somerville-oem-meta oem-generic-blocker power-management-s # The following part MUST run last diff --git a/units/somerville-stress.pxu b/units/somerville-stress.pxu index bd1423e..75365fb 100644 --- a/units/somerville-stress.pxu +++ b/units/somerville-stress.pxu @@ -10,8 +10,8 @@ include: somerville/phase-sku somerville/phase-platform somerville/dell-repository - somerville/platform-meta-test somerville/desktop-kpi-dashboard nested_part: + somerville-oem-meta oem-generic-stress mandatory_include: diff --git a/units/somerville-touch-webcam.pxu b/units/somerville-touch-webcam.pxu index d52923b..c991a2c 100644 --- a/units/somerville-touch-webcam.pxu +++ b/units/somerville-touch-webcam.pxu @@ -10,9 +10,9 @@ include: somerville/phase-sku somerville/phase-platform somerville/dell-repository - somerville/platform-meta-test somerville/desktop-kpi-dashboard nested_part: + somerville-oem-meta oem-generic-touch-webcam power-management-s com.canonical.certification::power-management-reboot-poweroff-cert diff --git a/units/somerville-wireless.pxu b/units/somerville-wireless.pxu index 697a924..22fef07 100644 --- a/units/somerville-wireless.pxu +++ b/units/somerville-wireless.pxu @@ -10,9 +10,9 @@ include: somerville/phase-sku somerville/phase-platform somerville/dell-repository - somerville/platform-meta-test somerville/desktop-kpi-dashboard nested_part: + somerville-oem-meta oem-generic-wireless power-management-s com.canonical.certification::power-management-reboot-poweroff-cert diff --git a/units/stella-full-20-04.pxu b/units/stella-full-20-04.pxu index e7d86c6..6e372ec 100644 --- a/units/stella-full-20-04.pxu +++ b/units/stella-full-20-04.pxu @@ -1,4 +1,4 @@ -# Version: 1.0.0 2020-04-23 +# Version: 1.0.1 2020-07-26 id: stella-full-20-04 _name: Stella Full Test 20.04 unit: test plan @@ -6,13 +6,13 @@ _description: Stella Full 20.04 include: stella/hp-documents stella/hp-wallpaper - stella/sourcelist/.*-repository$ stella/desktop-kpi-dashboard stella/fingerprint-login stella/fingerprint-negative stella/fingerprint-positive misc/generic/grub_boothole nested_part: + stella-oem-meta oem-generic-full-20-04 power-management-stella # The following part MUST run last diff --git a/units/stella-regression.pxu b/units/stella-regression.pxu index 922500f..288ebcc 100644 --- a/units/stella-regression.pxu +++ b/units/stella-regression.pxu @@ -1,4 +1,4 @@ -# Version: 1.1.1 2020-04-24 +# Version: 1.1.2 2020-07-26 id: stella-regression _name: Stella Regression Test unit: test plan @@ -6,10 +6,10 @@ _description: Stella Regression include: stella/hp-documents stella/hp-wallpaper - stella/sourcelist/.*-repository$ stella/desktop-kpi-dashboard misc/generic/grub_boothole nested_part: + stella-oem-meta oem-generic-blocker power-management-stella # The following part MUST run last diff --git a/units/sutton-full-20-04.pxu b/units/sutton-full-20-04.pxu index 0fc4bfa..5064a17 100644 --- a/units/sutton-full-20-04.pxu +++ b/units/sutton-full-20-04.pxu @@ -1,13 +1,10 @@ -# Version: 1.0.0 2020-04-22 +# Version: 1.0.1 2020-07-28 id: sutton-full-20-04 _name: Sutton Full Test 20.04 unit: test plan _description: Suttion Full Tests for 20.04 include: com.canonical.certification::recovery_info_attachment - com.canonical.ce::sutton/sourceslist/focal-oem - com.canonical.ce::sutton/sourceslist/security - com.canonical.ce::sutton/sourceslist/meta com.canonical.ce::sutton/user-documents com.canonical.ce::sutton/desktop-kpi-dashboard com.canonical.ce::sutton/fingerprint-login @@ -16,6 +13,7 @@ include: misc/generic/grub_boothole nested_part: oem-generic-full-20-04 + sutton-oem-meta # The following part MUST run last # The platform meta package is removed/re-installed from Ubuntu archives. stock-ubuntu-meta-package |