Commit 9fa8257a authored by Jan Kiene's avatar Jan Kiene
Browse files

Merge branch 'ci/fix-usan-error-reporting' into 'main'

[CI] fix usan error reporting in ltv sanitizer tests

See merge request !1323
parents ca3bd0d1 c7aa4f42
Loading
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -173,8 +173,10 @@ class IvasBuildAndRunChecks(IvasScriptsCommon.IvasScript):
        if self.args["rebuild"] == True:
            br.force_build = True

        checks_ret_val = list()
        for check in checks:
            br.run(check)
            ret_val = br.run(check)
            checks_ret_val.append(ret_val)
            if self.args["create_html_output"]:
                cmd = ["git", "rev-parse", "HEAD"]
                commit_hash = subprocess.run(cmd, capture_output=True).stdout.decode("utf8")
@@ -199,11 +201,11 @@ class IvasBuildAndRunChecks(IvasScriptsCommon.IvasScript):
            )

        returncode = 0
        for check in checks:
        for check, ret_val in zip(checks, checks_ret_val):
            runner = br.build_and_run_dict[check]["runner"]
            failed_encs = runner.failed_modes["enc"]
            failed_decs = runner.failed_modes["dec"]
            if len(failed_encs) > 0 or len(failed_decs) > 0:
            if len(failed_encs) > 0 or len(failed_decs) > 0 or ret_val != 0:
                returncode =  RET_CODE_FAILURE

        return returncode
+8 −2
Original line number Diff line number Diff line
@@ -759,6 +759,8 @@ class IvasModeAnalyzer(IvasModeCollector):
        if num_total_errors == 0:
            self.logger.console("{} reports no errors".format(self.check), logging.INFO)

        return num_total_errors

    def get_valgrind_errors(self):

        total_vg_errors = 0
@@ -799,12 +801,16 @@ class IvasModeAnalyzer(IvasModeCollector):
                ),
                logging.ERROR,
            )
        return build_errors

    def get_errors(self, failed_modes):
        """ """
        self.get_build_errors()
        n_build_err = self.get_build_errors()
        n_run_err = 0
        if self.check in ["CLANG1", "CLANG2", "CLANG3", "VALGRIND"]:
            self.get_run_errors(failed_modes)
            n_run_err = self.get_run_errors(failed_modes)

        return n_build_err, n_run_err

    def set_select_list(self, select_list):
        self.log_select_list = select_list
+6 −1
Original line number Diff line number Diff line
@@ -1112,9 +1112,14 @@ class IvasBuilderAndRunner(IvasBaseClass):
            self.build_and_run_dict[cfg_name]["runner"].dir_name = run_dir
            self.build_and_run_dict[cfg_name]["analyzer"].dir = run_dir
            self.build_and_run_dict[cfg_name]["runner"].run()

            ret_val = 0
            if self.build_and_run_dict[cfg_name]["analyzer"].get_errors:
                failed_modes = self.build_and_run_dict[cfg_name]["runner"].failed_modes
                self.build_and_run_dict[cfg_name]["analyzer"].get_errors(failed_modes)
                _, n_runtime_err = self.build_and_run_dict[cfg_name]["analyzer"].get_errors(failed_modes)
                ret_val = int(n_runtime_err > 0)

            return ret_val

    def get_run_errors(self, cfg_name):
        """