def tests(self, env): # don't execute tests that are part of the other suite whitelist_txt = None cases_xml = None if "gles2" in self.binary: whitelist_txt = (self.pm.project_source_dir("deqp") + "/android/cts/master/gles2-master.txt") cases_xml = "dEQP-GLES2-cases.xml" if "gles3" in self.binary: whitelist_txt = (self.pm.project_source_dir("deqp") + "/android/cts/master/gles3-master.txt") cases_xml = "dEQP-GLES3-cases.xml" if "gles31" in self.binary: whitelist_txt = (self.pm.project_source_dir("deqp") + "/android/cts/master/gles31-master.txt") cases_xml = "dEQP-GLES31-cases.xml" if "egl" in self.binary: whitelist_txt = (self.pm.project_source_dir("deqp") + "/android/cts/master/egl-master.txt") cases_xml = "dEQP-EGL-cases.xml" deqp_dir = os.path.dirname(self.binary) os.chdir(deqp_dir) cmd = [self.binary, "--deqp-runmode=xml-caselist"] bs.run_batch_command(cmd, env=env) all_tests = bs.DeqpTrie() all_tests.add_xml(cases_xml) whitelist = bs.DeqpTrie() whitelist.add_txt(whitelist_txt) all_tests.filter_whitelist(whitelist) os.chdir(self.pm.project_build_dir()) return all_tests
def tests(self, env=None): br = self.pm.build_root() env = { "MESA_GLES_VERSION_OVERRIDE": "3.2", "LD_LIBRARY_PATH": bs.get_libdir(), "MESA_GL_VERSION_OVERRIDE": "4.6", "MESA_GLSL_VERSION_OVERRIDE": "460", "LIBGL_DRIVERS_PATH": bs.get_libgl_drivers() } self.o.update_env(env) savedir = os.getcwd() os.chdir(self.pm.build_root() + "/bin/es/modules") bs.run_batch_command(["./glcts", "--deqp-runmode=xml-caselist"], env=env) must_pass_root = br + "/bin/es/modules/gl_cts/data/mustpass/" must_pass_lookup = { "KHR-GLES2-cases.xml": "gles/khronos_mustpass/3.2.4.x/gles2-khr-master.txt", "KHR-GLES3-cases.xml": "gles/khronos_mustpass/3.2.4.x/gles3-khr-master.txt", "KHR-GLES31-cases.xml": "gles/khronos_mustpass/3.2.4.x/gles31-khr-master.txt", "KHR-GLES32-cases.xml": "gles/khronos_mustpass/3.2.4.x/gles32-khr-master.txt", "KHR-GLESEXT-cases.xml": None } suites = ["KHR-GLES2-cases.xml", "KHR-GLES3-cases.xml"] if self.supports_gles_31(): suites.append("KHR-GLES31-cases.xml") if self.supports_gles_32(): suites.append("KHR-GLES32-cases.xml") suites.append("KHR-GLESEXT-cases.xml") all_tests = bs.DeqpTrie() for a_list in suites: tmp_trie = bs.DeqpTrie() tmp_trie.add_xml(a_list) if must_pass_lookup[a_list]: tmp_whitelist = bs.DeqpTrie() tmp_whitelist.add_txt(must_pass_root + must_pass_lookup[a_list]) tmp_trie.filter_whitelist(tmp_whitelist) all_tests.merge(tmp_trie) os.chdir(savedir) return all_tests
def test(self): cts_blacklist = bs.CtsTestList().tests() for suite in ["ES32", "ES31", "ES3", "ES2"]: if suite + "-CTS" in cts_blacklist._trie: cts_blacklist._trie["dEQP-GL" + suite] = cts_blacklist._trie[suite + "-CTS"] if "hsw" in self.o.hardware or "byt" in self.o.hardware or "ivb" in self.o.hardware: self.env["MESA_GLES_VERSION_OVERRIDE"] = "3.1" t = bs.DeqpTester() all_results = bs.DeqpTrie() if not self.version: self.version = bs.mesa_version() if "glk" in self.o.hardware: if "13.0" in self.version or "17.0" in self.version: return modules = ["gles2", "gles3", "egl"] for hardware in ["skl", "bdw", "bsw", "hsw", "byt", "ivb"]: if hardware in self.o.hardware: modules += ["gles31"] break for module in modules: binary = self.pm.build_root() + "/opt/deqp/modules/" + module + "/deqp-" + module results = t.test(binary, DeqpLister(binary, cts_blacklist), [], self.env) all_results.merge(results) config = bs.get_conf_file(self.o.hardware, self.o.arch, project=self.pm.current_project()) t.generate_results(all_results, bs.ConfigFilter(config, self.o))
def test(self): if "hsw" in self.o.hardware or "byt" in self.o.hardware or "ivb" in self.o.hardware: self.env["MESA_GLES_VERSION_OVERRIDE"] = "3.1" t = bs.DeqpTester() all_results = bs.DeqpTrie() if not self.version: self.version = bs.mesa_version() if "glk" in self.o.hardware: if "13.0" in self.version or "17.0" in self.version: return modules = ["gles2", "egl"] if self.supports_gles_3(): modules += ["gles3"] if self.supports_gles_31(): modules += ["gles31"] for module in modules: binary = self.pm.build_root() + "/opt/deqp/modules/" + module + "/deqp-" + module results = t.test(binary, DeqpLister(binary), [], self.env) all_results.merge(results) config = bs.get_conf_file(self.o.hardware, self.o.arch, project=self.pm.current_project()) t.generate_results(all_results, bs.ConfigFilter(config, self.o))
def tests(self, env=None): br = self.pm.build_root() env = {"MESA_GLES_VERSION_OVERRIDE" : "3.2", "LD_LIBRARY_PATH" : bs.get_libdir(), "LIBGL_DRIVERS_PATH" : bs.get_libgl_drivers(), "MESA_GL_VERSION_OVERRIDE" : "4.6", "MESA_GLSL_VERSION_OVERRIDE" : "460"} self.o.update_env(env) savedir = os.getcwd() os.chdir(self.pm.build_root() + "/bin/gl/modules") bs.run_batch_command(["./glcts", "--deqp-runmode=xml-caselist"], env=env) all_tests = bs.DeqpTrie() # Enable GL33 tests for supporting hw # Note: ilk, g45, etc are all < GL30 and not supported in glcts if self.o.hardware in ['snb', 'ivb', 'byt']: all_tests.add_xml("KHR-GL33-cases.xml") all_tests.add_xml("GTF-GL33-cases.xml") else: all_tests.add_xml("KHR-GL46-cases.xml") all_tests.add_xml("GTF-GL46-cases.xml") all_tests.add_xml("KHR-NoContext-cases.xml") os.chdir(savedir) return all_tests
def blacklist(self, all_tests): # filter tests for the platform o = bs.Options() blacklist_file = self.pm.project_build_dir( ) + o.hardware[:3] + "_expectations/vk_unstable_tests.txt" blacklist = bs.DeqpTrie() blacklist.add_txt(blacklist_file) all_tests.filter(blacklist)
def blacklist(self, all_tests): if self.blacklist_txt: blacklist = bs.DeqpTrie() blacklist.add_txt(self.blacklist_txt) all_tests.filter(blacklist) # The following test exceeds 30 seconds on all platforms, so # we ignore it unsupported = ["dEQP-GLES2.functional.flush_finish.wait"] all_tests.filter(unsupported)
def tests(self, env): # provide a DeqpTrie with all tests deqp_dir = os.path.dirname(self.binary()) os.chdir(deqp_dir) cmd = [ "./" + os.path.basename(self.binary()), "--deqp-runmode=xml-caselist" ] bs.run_batch_command(cmd, env=env) trie = bs.DeqpTrie() trie.add_xml("dEQP-VK-cases.xml") os.chdir(self.pm.project_build_dir()) whitelist_txt = self.pm.project_source_dir( "vulkancts") + "/external/vulkancts/mustpass/1.0.2/vk-default.txt" whitelist = bs.DeqpTrie() whitelist.add_txt(whitelist_txt) trie.filter_whitelist(whitelist) return trie
def blacklist(self, all_tests): # filter tests for the platform o = bs.Options() blacklist_file = self.pm.project_build_dir( ) + o.hardware[:3] + "_expectations/vk_unstable_tests.txt" if "glk" in o.hardware: blacklist_file = self.pm.project_source_dir( "prerelease" ) + "/vulkancts-test/glk_expectations/vk_unstable_tests.txt" blacklist = bs.DeqpTrie() blacklist.add_txt(blacklist_file) all_tests.filter(blacklist)
def blacklist(self, all_tests): blacklist_txt = self.pm.project_build_dir( ) + "/" + self.o.hardware + "_blacklist.txt" if not os.path.exists(blacklist_txt): blacklist_txt = self.pm.project_build_dir( ) + "/" + self.o.hardware[:3] + "_blacklist.txt" if not os.path.exists(blacklist_txt): return all_tests blacklist = bs.DeqpTrie() blacklist.add_txt(blacklist_txt) all_tests.filter(blacklist) return all_tests
def blacklist(self, all_tests): blacklist_txt = self.pm.project_build_dir() + "/" + self.o.hardware[:3] + "_blacklist.txt" if not os.path.exists(blacklist_txt): return all_tests blacklist = bs.DeqpTrie() blacklist.add_txt(blacklist_txt) all_tests.filter(blacklist) if "17.3" in bs.mesa_version(): blacklist = bs.DeqpTrie() blacklist.add_txt(self.pm.project_build_dir() + "/17_3_blacklist.txt") all_tests.filter(blacklist) if self.o.type != "daily" and not self.o.retest_path: blacklist = bs.DeqpTrie() blacklist.add_txt(self.pm.project_build_dir() + "/non-daily_blacklist.txt") all_tests.filter(blacklist) # Do not run GTF33 on hardware that supports >GL33 if self.o.hardware not in ['snb', 'ivb', 'byt']: blacklist = bs.DeqpTrie() blacklist.add_line("GTF-GL33") all_tests.filter(blacklist) return all_tests
def blacklist(self, all_tests): if self.blacklist_txt: blacklist = bs.DeqpTrie() blacklist.add_txt(self.blacklist_txt) all_tests.filter(blacklist) all_tests.filter(self.cts_blacklist) if not self.version: self.version = bs.mesa_version() unsupported = [] if "daily" != self.o.type and not self.o.retest_path: # these tests triple the run-time unsupported.append("dEQP-GLES31.functional.copy_image") if "13.0" in self.version: # Tapani's egl fixes not merged into 13.0 branch unsupported += ["dEQP-EGL.functional.create_context_ext", "dEQP-EGL.functional.reusable_sync", "dEQP-EGL.functional.thread_cleanup"] if "hsw" in self.o.hardware: unsupported += ["dEQP-GLES31.functional.debug.negative_coverage"] if "kbl" in self.o.hardware: unsupported += ["dEQP-EGL.functional.image.api.create_image_gles2_tex2d_luminance", "dEQP-EGL.functional.image.api.create_image_gles2_tex2d_luminance_alpha"] if "bdw" in self.o.hardware: unsupported += ["dEQP-EGL.functional.buffer_age.no_preserve"] # filter immediately, since any unsupported tests under these # top-level categories will prevent them from being filtered. if "gles2" not in self.binary: all_tests.filter(["dEQP-GLES2"]) if "gles31" not in self.binary: all_tests.filter(["dEQP-GLES31"]) if "gles3" not in self.binary: all_tests.filter(["dEQP-GLES3"]) if "egl" not in self.binary: all_tests.filter(["dEQP-EGL"]) if "17.0" in self.version: if "byt" in self.o.hardware or "ivb" in self.o.hardware: unsupported += ["dEQP-GLES31.functional.debug.negative_coverage"] unsupported += ["dEQP-EGL.functional.robustness.reset_context.shaders.infinite_loop", "dEQP-EGL.functional.render.multi_thread.gles3.rgb888_window", "dEQP-EGL.functional.render.multi_thread.gles3.rgba8888_window", "dEQP-EGL.functional.render.multi_thread.gles2_gles3.rgba8888_window", "dEQP-EGL.functional.robustness.negative_context.invalid_robust_shared_context_creation"] all_tests.filter(unsupported)
def test(self): t = bs.DeqpTester(runtime=30) all_results = bs.DeqpTrie() if not self.version: self.version = bs.mesa_version() modules = ["gles2", "gles3", "gles31"] for module in modules: binary = os.path.join(self.pm.build_root(), "opt/deqp/modules", module, "deqp-" + module) results = t.test(binary, DeqpRuntimeLister(binary), [], self.env) all_results.merge(results) config = bs.get_conf_file(self.o.hardware, self.o.arch, project=self.pm.current_project()) t.generate_results(all_results, bs.ConfigFilter(config, self.o))