Beispiel #1
0
 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
Beispiel #2
0
    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
Beispiel #3
0
    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))
Beispiel #4
0
    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))
Beispiel #5
0
    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
Beispiel #6
0
 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)
Beispiel #7
0
 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)
Beispiel #8
0
    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
Beispiel #9
0
 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)
Beispiel #10
0
 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
Beispiel #11
0
    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
Beispiel #12
0
    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)
Beispiel #13
0
    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))