def run()

in benchmarking/harness.py [0:0]


    def run(self):
        tempdir = tempfile.mkdtemp(
            prefix="_".join(["aibench", str(self.args.user_identifier), ""])
        )
        getLogger().info("Temp directory: {}".format(tempdir))
        info = self._getInfo()
        frameworks = getFrameworks()
        assert (
            self.args.framework in frameworks
        ), "Framework {} is not supported".format(self.args.framework)
        framework = frameworks[self.args.framework](tempdir, self.args)
        bcollector = BenchmarkCollector(
            framework, self.args.model_cache, args=self.args
        )
        benchmarks = bcollector.collectBenchmarks(
            info, self.args.benchmark_file, self.args.user_identifier
        )
        platforms = getPlatforms(self.args, tempdir, self.usb_controller)
        threads = []
        for platform in platforms:
            t = threading.Thread(
                target=self.runBenchmark, args=(info, platform, benchmarks)
            )
            t.start()
            threads.append(t)
        for t in threads:
            t.join()

        if not self.args.debug:
            shutil.rmtree(tempdir, True)

        status = self.status | getRunStatus()
        if getRunKilled():
            status_str = "killed"
        elif getRunTimeout():
            status_str = "timeout"
        elif status == 0:
            status_str = "success"
        elif status == 1:
            status_str = "user error"
        elif status == 2:
            status_str = "harness error"
        else:
            status_str = "user and harness error"
        getLogger().info(" ======= {} =======".format(status_str))
        if getRunKilled():
            return RUN_KILLED
        if getRunTimeout():
            return RUN_TIMEOUT
        return status