Beispiel #1
0
def quit_all(to):
    if not to.is_expired():
        return to.start()

    print("ERROR: *** component timed out.")
    check_gpu_hang(identify_test=False)
    sys.stdout.flush()
    os.kill(os.getpid(), signal.SIGINT)
Beispiel #2
0
    def test(self):
        o = bs.Options()
        pm = bs.ProjectMap()

        if not self.version:
            self.version = bs.mesa_version()

        conf_file = bs.get_conf_file(o.hardware, o.arch, "cts-test")

        # invoke piglit
        self.env["PIGLIT_CTS_GL_BIN"] = self.build_root + "/bin/gl/cts/glcts"
        out_dir = self.build_root + "/test/" + o.hardware

        include_tests = []
        if o.retest_path:
            testlist = bs.TestLister(o.retest_path + "/test/")
            include_tests = testlist.RetestIncludes(project="cts-test")
            if not include_tests:
                # we were supposed to retest failures, but there were none
                return

        # this test is flaky in glcts.  It passes enough for
        # submission, but as per Ken, no developer will want to look
        # at it to figure out why the test is flaky.
        extra_excludes = ["packed_depth_stencil.packed_depth_stencil_copyteximage"]

        suite_names = []
        # disable gl cts on stable versions of mesa, which do not
        # support the feature set.
        if "13.0" in self.version or "12.0" in self.version:
            return
        suite_names.append("cts_gl")
        # as per Ian, only run gl45
        extra_excludes += ["gl30-cts",
                           "gl31-cts",
                           "gl32-cts",
                           "gl33-cts",
                           "gl40-cts",
                           "gl41-cts",
                           "gl42-cts",
                           "gl43-cts",
                           "gl44-cts"]
        if "hsw" in o.hardware:
            # flaky cts_gl tests
            extra_excludes += ["shader_image_load_store.multiple-uniforms",
                               "shader_image_size.basic-nonms-fs",
                               "shader_image_size.advanced-nonms-fs",
                               "texture_gather.gather-tesselation-shader",
                               "vertex_attrib_binding.basic-inputl-case1",
                               "gpu_shader_fp64.named_uniform_blocks",
                               # gpu hang
                               "gl45-cts.tessellation_shader.vertex_spacing",
                               "gl45-cts.tessellation_shader.vertex_ordering",
                               "gl45-cts.tessellation_shader.tessellation_control_to_tessellation_evaluation.gl_maxpatchvertices_position_pointsize"]

        exclude_tests = []
        for  a in extra_excludes:
            exclude_tests += ["--exclude-tests", a]
        if not suite_names:
            # for master, on old hardware, this component will not
            # test anything.  The gles tests are instead targeted with
            # the gles32 cts, in the glescts-test component
            return
        cmd = [self.build_root + "/bin/piglit",
               "run",
               #"-p", "gbm",
               "-b", "junit",
               "--config", conf_file,
               "-c",
               "--exclude-tests", "esext-cts",
               "--junit_suffix", "." + o.hardware + o.arch] + \
               exclude_tests + \
               include_tests + suite_names + [out_dir]

        bs.run_batch_command(cmd, env=self.env,
                             expected_return_code=None,
                             streamedOutput=True)
        single_out_dir = self.build_root + "/../test"
        if not os.path.exists(single_out_dir):
            os.makedirs(single_out_dir)

        if os.path.exists(out_dir + "/results.xml"):
            # Uniquely name all test files in one directory, for
            # jenkins
            filename_components = ["/piglit-cts",
                                   o.hardware,
                                   o.arch]
            if o.shard != "0":
                # only put the shard suffix on for non-zero shards.
                # Having _0 suffix interferes with bisection.
                filename_components.append(o.shard)

            revisions = bs.RepoSet().branch_missing_revisions()
            print "INFO: filtering tests from " + out_dir + "/results.xml"
            self.filter_tests(revisions,
                              out_dir + "/results.xml",
                              single_out_dir + "_".join(filename_components) + ".xml")

            # create a copy of the test xml in the source root, where
            # jenkins can access it.
            cmd = ["cp", "-a", "-n",
                   self.build_root + "/../test", pm.source_root()]
            bs.run_batch_command(cmd)
            bs.Export().export_tests()
        else:
            print "ERROR: no results at " + out_dir + "/results.xml"

        bs.check_gpu_hang()
Beispiel #3
0
    def test(self):
        o = bs.Options()
        pm = bs.ProjectMap()

        if not self.version:
            self.version = bs.mesa_version()

        conf_file = bs.get_conf_file(o.hardware, o.arch, "cts-test")

        # invoke piglit
        self.env["PIGLIT_CTS_GL_BIN"] = self.build_root + "/bin/gl/cts/glcts"
        out_dir = self.build_root + "/test/" + o.hardware

        include_tests = []
        if o.retest_path:
            testlist = bs.TestLister(o.retest_path + "/test/")
            include_tests = testlist.RetestIncludes(project="cts-test")
            if not include_tests:
                # we were supposed to retest failures, but there were none
                return

        # this test is flaky in glcts.  It passes enough for
        # submission, but as per Ken, no developer will want to look
        # at it to figure out why the test is flaky.
        extra_excludes = [
            "packed_depth_stencil.packed_depth_stencil_copyteximage"
        ]

        suite_names = []
        # disable gl cts on stable versions of mesa, which do not
        # support the feature set.
        if "13.0" in self.version:
            return
        if "17.0" in self.version and "glk" in o.hardware:
            # glk not supported by stable mesa
            return
        suite_names.append("cts_gl")
        # as per Ian, only run gl45
        extra_excludes += [
            "gl30-cts", "gl31-cts", "gl32-cts", "gl33-cts", "gl40-cts",
            "gl41-cts", "gl42-cts", "gl43-cts", "gl44-cts"
        ]
        if "hsw" in o.hardware:
            # flaky cts_gl tests
            extra_excludes += [
                "shader_image_load_store.multiple-uniforms",
                "shader_image_size.basic-nonms-fs",
                "shader_image_size.advanced-nonms-fs",
                "texture_gather.gather-tesselation-shader",
                "vertex_attrib_binding.basic-inputl-case1",
                "gpu_shader_fp64.named_uniform_blocks",
                # gpu hang
                "gl45-cts.tessellation_shader.vertex_spacing",
                "gl45-cts.tessellation_shader.vertex_ordering",
                "gl45-cts.tessellation_shader.tessellation_control_to_tessellation_evaluation.gl_maxpatchvertices_position_pointsize"
            ]

        exclude_tests = []
        for a in extra_excludes:
            exclude_tests += ["--exclude-tests", a]
        if not suite_names:
            # for master, on old hardware, this component will not
            # test anything.  The gles tests are instead targeted with
            # the gles32 cts, in the glescts-test component
            return
        cmd = [self.build_root + "/bin/piglit",
               "run",
               #"-p", "gbm",
               "-b", "junit",
               "--config", conf_file,
               "-c",
               "--exclude-tests", "esext-cts",
               "--junit_suffix", "." + o.hardware + o.arch] + \
               exclude_tests + \
               include_tests + suite_names + [out_dir]

        bs.run_batch_command(cmd,
                             env=self.env,
                             expected_return_code=None,
                             streamedOutput=True)
        single_out_dir = self.build_root + "/../test"
        if not os.path.exists(single_out_dir):
            os.makedirs(single_out_dir)

        if os.path.exists(out_dir + "/results.xml"):
            # Uniquely name all test files in one directory, for
            # jenkins
            filename_components = ["/piglit-cts", o.hardware, o.arch]
            if o.shard != "0":
                # only put the shard suffix on for non-zero shards.
                # Having _0 suffix interferes with bisection.
                filename_components.append(o.shard)

            revisions = bs.RepoSet().branch_missing_revisions()
            print "INFO: filtering tests from " + out_dir + "/results.xml"
            self.filter_tests(
                revisions, out_dir + "/results.xml",
                single_out_dir + "_".join(filename_components) + ".xml")

            # create a copy of the test xml in the source root, where
            # jenkins can access it.
            cmd = [
                "cp", "-a", "-n", self.build_root + "/../test",
                pm.source_root()
            ]
            bs.run_batch_command(cmd)
        else:
            print "ERROR: no results at " + out_dir + "/results.xml"

        bs.check_gpu_hang()
        bs.Export().export_tests()
Beispiel #4
0
    def test(self):
        pm = bs.ProjectMap()
        build_root = pm.build_root()
        global_opts = bs.Options()
        if global_opts.arch == "m64":
            icd_name = "intel_icd.x86_64.json"
        elif global_opts.arch == "m32":
            icd_name = "intel_icd.i686.json"
        env = {
            "LD_LIBRARY_PATH": build_root + "/lib",
            "VK_ICD_FILENAMES": build_root + "/share/vulkan/icd.d/" + icd_name,
            "ANV_ABORT_ON_DEVICE_LOSS": "true"
        }
        o = bs.Options()
        o.update_env(env)
        br = bs.ProjectMap().build_root()
        out_dir = br + "/../test"
        if not path.exists(out_dir):
            os.makedirs(out_dir)
        out_xml = out_dir + "/piglit-crucible_" + o.hardware + "_" + o.arch + ".xml"
        include_tests = []
        if o.retest_path:
            include_tests = bs.TestLister(
                o.retest_path + "/test/").RetestIncludes("crucible-test")

        # flaky
        excludes = ["!func.query.timestamp", "!func.ssbo.interleve"]
        parallelism = []

        if "hsw" in o.hardware:
            # issue 4
            excludes += [
                "!func.copy.copy-buffer.large",
                "!func.interleaved-cmd-buffers.end1*",
                "!func.miptree.d32-sfloat.aspect-depth.view*",
                "!func.miptree.r8g8b8a8-unorm.aspect-color.view*",
                "!func.miptree.s8-uint.aspect-stencil*",
                "!func.renderpass.clear.color08", "!func.ssbo.interleve"
            ]
        if "ivb" in o.hardware:
            # issue 5
            excludes += [
                "!func.depthstencil*",
                "!func.miptree.r8g8b8a8-unorm.aspect-color.view*",
                "!func.miptree.s8-uint.aspect-stencil*",
                "!func.miptree.d32-sfloat.aspect-depth.view*",
                "!stress.lots-of-surface-state.fs.static"
            ]
            parallelism = ['-j', '1']

        if "byt" in o.hardware:
            # issue 6
            excludes += [
                "!func.miptree.d32-sfloat.aspect-depth.view-3d.levels0*",
                "!func.depthstencil*", "!func.miptree.s8-uint.aspect-stencil*",
                "!stress.lots-of-surface-state.fs.static"
            ]
            parallelism = ['-j', '1']

        if "bsw" in o.hardware:
            excludes += ["!func.event.cmd_buffer"]  # intermittent fail/crash

        if "bxt" in o.hardware:
            excludes += [
                "!func.miptree.s8-uint.aspect-stencil*",
                "!stress.lots-of-surface-state.fs.static"
            ]

        bs.run_batch_command([
            br + "/bin/crucible", "run", "--fork", "--log-pids",
            "--junit-xml=" + out_xml
        ] + parallelism + include_tests + excludes,
                             env=env,
                             expected_return_code=None)
        post_process_results(out_xml)
        bs.run_batch_command(["cp", "-a", "-n", out_dir, pm.source_root()])

        bs.check_gpu_hang()
        bs.Export().export_tests()
Beispiel #5
0
    def test(self):
        pm = bs.ProjectMap()
        build_root = pm.build_root()
        env = { "LD_LIBRARY_PATH" : build_root + "/lib"}
        o = bs.Options()
        o.update_env(env)
        br = bs.ProjectMap().build_root()
        out_dir = br + "/../test"
        if not path.exists(out_dir):
            os.makedirs(out_dir)
        out_xml = out_dir + "/piglit-crucible_" + o.hardware + "_"  + o.arch + ".xml"
        include_tests = []
        if o.retest_path:
            include_tests = bs.TestLister(o.retest_path + "/test/").RetestIncludes("crucible-test")

        # flaky
        excludes = ["!func.query.timestamp"]
        parallelism = []

        if "hsw" in o.hardware:
            # issue 4
            excludes += ["!func.copy.copy-buffer.large",
                         "!func.interleaved-cmd-buffers.end1*",
                         "!func.miptree.d32-sfloat.aspect-depth.view*",
                         "!func.miptree.r8g8b8a8-unorm.aspect-color.view*",
                         "!func.miptree.s8-uint.aspect-stencil*",
                         "!func.renderpass.clear.color08",
                         "!func.ssbo.interleve"]
        if "ivb" in o.hardware:
            # issue 5
            excludes += ["!func.depthstencil*",
                         "!func.miptree.r8g8b8a8-unorm.aspect-color.view*",
                         "!func.miptree.s8-uint.aspect-stencil*",
                         "!func.miptree.d32-sfloat.aspect-depth.view*",
                         "!stress.lots-of-surface-state.fs.static"]
            parallelism = ['-j', '1']
            
        if "byt" in o.hardware:
            # issue 6
            excludes += ["!func.miptree.d32-sfloat.aspect-depth.view-3d.levels0*",
                         "!func.depthstencil*",
                         "!func.miptree.s8-uint.aspect-stencil*",
                         "!stress.lots-of-surface-state.fs.static"]
            parallelism = ['-j', '1']

        if "bsw in o.hardware":
            excludes += ["!func.event.cmd_buffer"] # intermittent fail/crash


        if "bxt" in o.hardware:
            excludes += ["!func.miptree.s8-uint.aspect-stencil*",
                         "!stress.lots-of-surface-state.fs.static"]

        bs.run_batch_command([ br + "/bin/crucible",
                               "run", "--fork", "--log-pids",
                               "--junit-xml=" + out_xml] + parallelism + include_tests + excludes,
                             env=env,
                             expected_return_code=None)
        post_process_results(out_xml)
        bs.run_batch_command(["cp", "-a", "-n",
                              out_dir, pm.source_root()])

        bs.check_gpu_hang()
        bs.Export().export_tests()