예제 #1
0
def _getBenchmarkRuns(info, meta, outdir):
    dir_name = os.path.join(
        outdir,
        getFilename(meta["platform"]),
        getFilename(meta["framework"]),
        getFilename(meta["net_name"]),
        getFilename(meta["metric"]),
        getFilename(meta["identifier"]),
    )

    assert "regression_commits" in info, "regression_commits field is missing from info"

    dirs = []
    for entry in info["regression_commits"]:
        one_dir = os.path.jon(
            dir_name, getDirectory(entry["commit"], entry["commit_time"])
        )
        if not os.path.isdir(one_dir):
            continue

        last_run = _getLatestRun(one_dir)
        if last_run is None:
            continue
        dirs.append(last_run)
    return dirs
예제 #2
0
    def _buildProgram(self, platform, repo_info):
        directory = "/" + \
            getDirectory(repo_info['commit'], repo_info['commit_time'])

        dst = getArgs().exec_dir + "/" + getArgs().framework + "/" + \
            platform + "/" + directory + getArgs().framework + \
            "_benchmark"

        repo_info["program"] = dst
        if not _runIndividual() and os.path.isfile(dst):
            return True
        else:
            return self._buildProgramPlatform(repo_info, dst, platform)
예제 #3
0
 def report(self, content):
     data = content[self.DATA]
     if data is None or len(data) == 0:
         getLogger().info("No data to write")
         return
     meta = content[self.META]
     net_name = meta["net_name"]
     netdir = getFilename(net_name)
     platform_name = meta[self.PLATFORM]
     platformdir = getFilename(platform_name)
     framework_name = meta["framework"]
     frameworkdir = getFilename(framework_name)
     metric_name = meta["metric"]
     metric_dir = getFilename(metric_name)
     id_dir = getFilename(meta["identifier"])
     ts = float(meta["commit_time"])
     commit = meta["commit"]
     datedir = getDirectory(commit, ts)
     dirname = os.path.join(
         self.local_reporter,
         platformdir,
         frameworkdir,
         netdir,
         metric_dir,
         id_dir,
         datedir,
     )
     i = 0
     while os.path.exists(os.path.join(dirname, str(i))):
         i = i + 1
     dirname = os.path.join(dirname, str(i))
     os.makedirs(dirname)
     for d in data:
         filename = os.path.join(dirname, getFilename(d) + ".txt")
         content_d = json.dumps(data[d], indent=2, sort_keys=True)
         with open(filename, "w") as file:
             file.write(content_d)
     filename = os.path.join(dirname, getFilename(self.META) + ".txt")
     with open(filename, "w") as file:
         content_meta = json.dumps(meta, indent=2, sort_keys=True)
         file.write(content_meta)
     pname = platform_name
     if "platform_hash" in meta:
         pname = pname + " ({})".format(meta["platform_hash"])
     getLogger().info("Writing file for {}: {}".format(pname, dirname))
예제 #4
0
 def report(self, content):
     data = content[self.DATA]
     if data is None or len(data) == 0:
         getLogger().info("No data to write")
         return
     meta = content[self.META]
     net_name = meta['net_name']
     netdir = getFilename(net_name) + "/"
     platform_name = meta[self.PLATFORM]
     platformdir = getFilename(platform_name) + "/"
     framework_name = meta["framework"]
     frameworkdir = getFilename(framework_name) + "/"
     metric_name = meta['metric']
     metric_dir = getFilename(metric_name) + "/"
     id_dir = getFilename(meta["identifier"]) + "/"
     ts = float(meta['commit_time'])
     commit = meta['commit']
     datedir = getDirectory(commit, ts)
     dirname = platformdir + frameworkdir + netdir + metric_dir + id_dir + datedir
     dirname = getArgs().local_reporter + "/" + dirname
     i = 0
     while os.path.exists(dirname + str(i)):
         i = i + 1
     dirname = dirname + str(i) + "/"
     os.makedirs(dirname)
     for d in data:
         filename = dirname + getFilename(d) + ".txt"
         content_d = json.dumps(data[d], indent=2, sort_keys=True)
         with open(filename, 'w') as file:
             file.write(content_d)
     filename = dirname + getFilename(self.META) + ".txt"
     with open(filename, 'w') as file:
         content_meta = json.dumps(meta, indent=2, sort_keys=True)
         file.write(content_meta)
     pname = platform_name
     if "platform_hash" in meta:
         pname = pname + " ({})".format(meta["platform_hash"])
     getLogger().info("Writing file for {}: {}".format(pname, dirname))
예제 #5
0
    def _buildProgram(self, platform, repo_info):
        directory = getDirectory(repo_info['commit'], repo_info['commit_time'])
        program = getArgs().framework + "_benchmark"
        if os.name == "nt":
            program = program + ".exe"
        elif platform.startswith("ios"):
            program = program + ".ipa"
        dst = os.path.join(getArgs().exec_dir,
                           getArgs().framework, platform, directory, program)

        repo_info["program"] = dst
        repo_info["programs"] = {"program": {"location": dst}}
        filedir = os.path.dirname(dst)
        if not _runIndividual() and os.path.isfile(dst):
            return True
        else:
            result = self._buildProgramPlatform(repo_info, dst, platform)
            for fn in os.listdir(filedir):
                if fn != program:
                    repo_info["programs"][fn] = {
                        "location": os.path.join(filedir, fn)
                    }
            return result