Exemple #1
0
    def _getMatchedString(self, root, match, files=None):
        if not isinstance(root, dict):
            return None
        if match in root:
            return getString(root[match])
        # split on .
        fields = match.split('.')
        found = True
        entry = root
        for i in range(len(fields)):
            field = fields[i]
            if field not in entry:
                found = False
                break
            entry = entry[field]
        if not found:
            return None

        if "location" in entry:
            # is a file field
            if files and fields[-1] in files:
                return getString(files[fields[-1]])
        assert isinstance(entry, string_types), "Output {}".format(entry) + \
            " is not string type"
        return getString(entry)
Exemple #2
0
 def _getRawArgs(self, repo_info):
     platform = repo_info["platform"]
     # Remove it from repo_info to avoid polution, should clean up later
     del repo_info["platform"]
     unknowns = self.unknowns
     # a not so elegant way of merging info construct
     if '--info' in unknowns:
         info_idx = unknowns.index('--info')
         info = json.loads(unknowns[info_idx + 1])
         deepMerge(repo_info, info)
         del unknowns[info_idx + 1]
         del unknowns[info_idx]
     info = json.dumps(repo_info)
     raw_args = []
     raw_args.extend([
         "--platform",
         getString(platform), "--framework",
         getString(self.args.framework), "--info", info
     ])
     raw_args.extend(unknowns)
     if self.args.env:
         raw_args.append("--env")
         env_vars = self.args.env.split()
         for env_var in env_vars:
             raw_args.append(env_var)
     return raw_args
Exemple #3
0
 def _getCommand(self, repo_info):
     platform = repo_info["platform"]
     # Remove it from repo_info to avoid polution, should clean up later
     del repo_info["platform"]
     dir_path = os.path.dirname(os.path.realpath(__file__))
     unknowns = getUnknowns()
     # a not so elegant way of merging info construct
     if '--info' in unknowns:
         info_idx = unknowns.index('--info')
         info = json.loads(unknowns[info_idx + 1])
         deepMerge(repo_info, info)
         del unknowns[info_idx + 1]
         del unknowns[info_idx]
     info = getString(json.dumps(repo_info))
     command = getPythonInterpreter() + " " + \
         os.path.join(dir_path, "harness.py") + " " + \
         " --platform " + getString(platform) + \
         " --framework " + getString(getArgs().framework) + \
         " --info " + info + " " + \
         ' '.join([getString(u) for u in unknowns])
     if getArgs().env:
         command = command + " --env "
         env_vars = getArgs().env.split()
         for env_var in env_vars:
             command = command + ' ' + env_var + ' '
     return command
Exemple #4
0
 def _getRawArgs(self):
     args = self._getSavedArgs()
     raw_args = []
     for u in args:
         raw_args.extend([getString(u),
             getString(args[u]) if args[u] is not None else ""])
     raw_args.extend([getString(u) for u in self.unknowns])
     return raw_args
Exemple #5
0
 def _getRawArgs(self):
     args = self._getSavedArgs()
     self._updateArgsWithBenchmarkOverrides(args)
     raw_args = []
     for u in args:
         raw_args.extend([getString(u),
             getString(args[u]) if args[u] is not None else ""])
     raw_args.extend([getString(u) for u in self.unknowns])
     raw_args.extend(["--logger_level", self.args.logger_level])
     return raw_args
Exemple #6
0
 def _getCMD(self):
     args = self._getSavedArgs()
     unknowns = getUnknowns()
     dir_path = os.path.dirname(os.path.realpath(__file__))
     command = getPythonInterpreter() + " " + \
         os.path.join(dir_path, "repo_driver.py") + " " + \
         ' '.join([getString(u) + ' ' +
                  (getString(args[u])
                   if args[u] is not None else "")
                   for u in args]) + ' ' + \
         ' '.join([getString(u) for u in unknowns])
     return command