From 7705d9a8cca613eb7d168ba78619456bc89866f2 Mon Sep 17 00:00:00 2001 From: Jiajun Xu Date: Thu, 17 Nov 2011 14:05:50 +0800 Subject: [PATCH] sanitytest: remove rpm/zypper tests if PACKAGE_CLASSES does not set package_rpm If PACKAGE_CLASSES does not set package_rpm as the first item, the root filesystem will not be generated based on rpm. We need remove rpm/zypper tests against non-rpm filesystem. [YOCTO #1757] (From OE-Core rev: 43adb8dcf4461b68a7ce0ba9d8acdb2012a70416) (From OE-Core rev: f541517be97e27951157e1dd10256e132c31ab1f) Signed-off-by: Jiajun Xu Signed-off-by: Richard Purdie --- meta/classes/imagetest-qemu.bbclass | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/meta/classes/imagetest-qemu.bbclass b/meta/classes/imagetest-qemu.bbclass index 4ea86c04fe..e3a65f0419 100644 --- a/meta/classes/imagetest-qemu.bbclass +++ b/meta/classes/imagetest-qemu.bbclass @@ -80,9 +80,31 @@ def qemuimagetest_main(d): bb.note("Run %s test in scenario %s" % (case, scen)) os.system("%s" % fulltestpath) + """function to check testcase list and remove inappropriate cases""" + def check_list(list): + final_list = [] + for test in list: + (scen, case, fullpath) = test + + """Skip rpm/zypper if package_rpm not set for PACKAGE_CLASSES""" + if case.find("zypper") != -1 or case.find("rpm") != -1: + if d.getVar("PACKAGE_CLASSES", True).find("rpm", 0, 11) == -1: + bb.note("skip rpm/zypper cases since package_rpm not set in PACKAGE_CLASSES") + continue + else: + final_list.append((scen, case, fullpath)) + else: + final_list.append((scen, case, fullpath)) + + if not final_list: + raise bb.build.FuncFailed("There is no suitable testcase for this target") + + return final_list + """Generate testcase list in runtime""" def generate_list(testlist): list = [] + final_list = [] if len(testlist) == 0: raise bb.build.FuncFailed("No testcase defined in TEST_SCEN") @@ -114,7 +136,8 @@ def qemuimagetest_main(d): if not os.path.isfile(fulltestcase): raise bb.build.FuncFailed("Testcase %s not found" % fulltestcase) list.append((item, casefile, fulltestcase)) - return list + final_list = check_list(list) + return final_list """Clean tmp folder for testing""" def clean_tmp():