コード例 #1
0
ファイル: RunnerFactoryTest.py プロジェクト: mority/pira
    def test_get_simple_local_runner_empty_config(self):
        prf = PiraRunnerFactory(self._ic, PiraConfiguration())
        self.assertIsNotNone(prf)

        runner = prf.get_simple_local_runner()
        self.assertIsNotNone(runner)
        self.assertTrue(isinstance(runner, LocalRunner))
        self.assertTrue(runner.has_sink())
コード例 #2
0
ファイル: RunnerFactoryTest.py プロジェクト: mority/pira
    def test_init_empty_config(self):
        prf = PiraRunnerFactory(self._ic, PiraConfiguration())
        self.assertIsNotNone(prf)
        self.assertTrue(isinstance(prf, PiraRunnerFactory))

        prfII = PiraRunnerFactory(self._ic, PiraConfigurationII())
        self.assertIsNotNone(prf)
        self.assertTrue(isinstance(prfII, PiraRunnerFactory))
コード例 #3
0
 def test_scorep_mh_init(self):
     s_mh = m.ScorepSystemHelper(PiraConfiguration())
     self.assertIn('.cubex', s_mh.known_files)
     self.assertDictEqual(s_mh.data, {})
     self.assertEqual('False', s_mh.cur_overwrite_exp_dir)
     self.assertEqual('', s_mh.cur_mem_size)
     self.assertEqual('', s_mh.cur_base_name)
     self.assertEqual('', s_mh.cur_filter_file)
     self.assertEqual('', s_mh.cur_exp_directory)
コード例 #4
0
ファイル: RunnerFactoryTest.py プロジェクト: mority/pira
    def test_get_scalability_runner_empty_config(self):
        prf = PiraRunnerFactory(self._ic, PiraConfiguration())
        self.assertIsNotNone(prf)

        ep_cfg = ExtrapConfiguration('/extrap', 'pre', 'post')

        with self.assertRaises(PiraConfigurationErrorException):
            prf.get_scalability_runner(ep_cfg)

        prfII = PiraRunnerFactory(self._ic, PiraConfigurationII())
        self.assertIsNotNone(prfII)

        with self.assertRaises(PiraConfigurationErrorException):
            prfII.get_scalability_runner(ep_cfg)
コード例 #5
0
  def setUp(self):
    # Pira I configuration (we probably drop the support anyway...)
    self._p_cfg = PiraConfiguration()

    # Pira II configuration and adapter
    self._pira_two_cfg = PiraConfigurationII()
    self._it_dir = '/tmp/test_item'
    item = PiraItem('/tmp/test_item')
    item.set_analyzer_dir('/analyzer')
    item.set_cubes_dir('/cubes')
    item.set_flavors(['dflt'])
    item.set_functors_base_path('/functors')
    item.set_mode('ct')

    run_opts = CmdlineLinearArgumentMapper({'x': [1]})

    item.set_run_options(run_opts)
    self._item = item

    self._pira_two_cfg.add_item(self._it_dir, item)
    self._pira_two_cfg._empty = False # This is usually done in ConfigurationLoader
    self._pira_two_adapter = PiraConfigurationAdapter(self._pira_two_cfg)
コード例 #6
0
class CheckerTestCase(unittest.TestCase):

  @classmethod
  def setUp(self):
    self.config_v1= PiraConfiguration()
    self.config_v1.set_build_directories([tempdir + '/home/pira/build_dir'])
    self.config_v1.populate_build_dict(self.config_v1.directories)
    self.config_v1.set_items(['item1', 'item2'], self.config_v1.directories[0])
    self.config_v1.initialize_item_dict(self.config_v1.directories[0], self.config_v1.builds[self.config_v1.directories[0]]['items'])

    for build_dir in self.config_v1.directories:
      for item in self.config_v1.builds[build_dir]['items']:
        self.config_v1.set_item_instrument_analysis(dep_aw_ins_anal[item], build_dir, item)
        self.config_v1.set_item_builders(tempdir + '/home/pira/build_dir/item1/functors', build_dir, item)
        self.config_v1.set_item_args([], build_dir, item)
        self.config_v1.set_item_runner("/" + item + "/runner/functors.dir", build_dir, item)

    self.config_v2 = PiraConfigurationII()

    pira_item1 = PiraItem("item1")
    pira_item1.set_analyzer_dir(tempdir + "/home/pira/build_dir/item1/analyzer")
    pira_item1.set_cubes_dir(tempdir + "/home/pira/build_dir/item1/cubes")
    pira_item1.set_flavors(["ct"])
    pira_item1.set_functors_base_path(tempdir + "/home/pira/build_dir/item1/functors")
    pira_item1.set_mode("CT")
    self.config_v2.add_item(tempdir + "/home/pira/build_dir/item1/",pira_item1)

    pira_item2 = PiraItem("item2")
    pira_item2.set_analyzer_dir(tempdir + "/home/pira/build_dir/item2/analyzer")
    pira_item2.set_cubes_dir(tempdir + "/home/pira/build_dir/item2/cubes")
    pira_item2.set_flavors([])
    pira_item2.set_functors_base_path(tempdir + "/home/pira/build_dir/item2/functors")
    pira_item2.set_mode("CT")
    self.config_v2.add_item(tempdir + "/home/pira/build_dir/item2/",pira_item2)

    self.config_adapter = PiraConfigurationAdapter(self.config_v2)
    self.create_tempfiles(self)



  def tearDown(self):
    self.delete_tempfolders()

  def create_tempfiles(self):
    for directory in directories_to_create:
      U.make_dirs(tempdir + directory)

    for filepath in functor_files:
      tempfile = open(tempdir + filepath,'a')
      tempfile.close()

  def delete_tempfolders(self):
    U.remove_dir(tempdir + "/home/pira/")

  def test_checker_v1_valid_config(self):
    C.Checker.check_configfile_v1(self.config_v1)

  def test_checker_v1_general_valid_config(self):
    C.Checker.check_configfile(self.config_v1,1)

  def test_checker_v1_dirs_missing(self):
    for directory in directories_to_create:
      U.remove_dir(tempdir + directory)
      with self.assertRaises(PiraConfigurationErrorException): C.Checker.check_configfile_v1(self.config_v1)
      self.create_tempfiles()

  def test_checker_v2_valid_config(self):
    C.Checker.check_configfile_v2(self.config_v2)

  def test_checker_v2_general_valid_config(self):
    C.Checker.check_configfile(self.config_v2,2)

  def test_checker_v2_adapter_valid_config(self):
    C.Checker.check_configfile_v2(self.config_adapter)

  def test_checker_v2_functors_missing(self):
    for file in functor_files:
      U.remove_file(tempdir + file)
      with self.assertRaises(PiraConfigurationErrorException): C.Checker.check_configfile_v2(self.config_v2)
      self.create_tempfiles()

  def test_checker_v2_dirs_missing(self):
    for directory in directories_to_create:
      U.remove_dir(tempdir + directory)
      with self.assertRaises(PiraConfigurationErrorException): C.Checker.check_configfile_v2(self.config_v2)
      self.create_tempfiles()

  def test_check_basic_config_005(self):
    cl = CL.SimplifiedConfigurationLoader()
    cfg = cl.load_conf('../inputs/configs/basic_config_005.json')
    C.Checker.check_configfile_v2(cfg)
コード例 #7
0
    def construct_from_json(self, json_tree) -> PiraConfiguration:
        conf = PiraConfiguration()
        # json_to_canonic can construct lists
        conf.set_build_directories(U.json_to_canonic(json_tree[_DESC][_DIRS]))
        conf.populate_build_dict(conf.directories)

        conf.set_global_flavors(U.json_to_canonic(
            json_tree[_DESC][_G_FLAVORS]))

        for glob_flav in conf.get_global_flavors():
            conf.set_glob_submitter(
                U.json_to_canonic(json_tree[_DESC][_G_SUBMITTER][glob_flav]),
                glob_flav)

        for build_dir in conf.directories:
            conf.set_prefix(
                U.json_to_canonic(
                    json_tree[_DESC][_BUILDS][build_dir][_PREFIX]), build_dir)
            conf.set_items(
                U.json_to_canonic(
                    json_tree[_DESC][_BUILDS][build_dir][_ITEMS]), build_dir)
            conf.initialize_item_dict(build_dir,
                                      conf.builds[build_dir][_ITEMS])

            for item in conf.builds[build_dir][_ITEMS]:
                conf.set_item_instrument_analysis(
                    U.json_to_canonic(json_tree[_DESC][_BUILDS][build_dir]
                                      [_FLAVORS][_INSTRUMENT_ANALYSIS][item]),
                    build_dir, item)
                conf.set_item_builders(
                    U.json_to_canonic(json_tree[_DESC][_BUILDS][build_dir]
                                      [_FLAVORS][_BUILDERS][item]), build_dir,
                    item)
                conf.set_item_args(
                    U.json_to_canonic(json_tree[_DESC][_BUILDS][build_dir]
                                      [_FLAVORS][_RUN][item][_ARGS]),
                    build_dir, item)
                conf.set_item_runner(
                    U.json_to_canonic(json_tree[_DESC][_BUILDS][build_dir]
                                      [_FLAVORS][_RUN][item][_RUNNER]),
                    build_dir, item)
                conf.set_item_submitter(
                    U.json_to_canonic(json_tree[_DESC][_BUILDS][build_dir]
                                      [_FLAVORS][_RUN][item][_SUBMITTER]),
                    build_dir, item)
                conf.set_item_batch_script(
                    U.json_to_canonic(json_tree[_DESC][_BUILDS][build_dir]
                                      [_FLAVORS][_RUN][item][_BATCH_SCRIPT]),
                    build_dir, item)
                conf.set_flavours(
                    U.json_to_canonic(
                        json_tree[_DESC][_BUILDS][build_dir][_FLAVORS][item]),
                    build_dir)
                conf.set_item_flavor(
                    U.json_to_canonic(
                        json_tree[_DESC][_BUILDS][build_dir][_FLAVORS][item]),
                    build_dir, item)

        conf._empty = False

        return conf
コード例 #8
0
 def test_empty_pira_config(self):
   with self.assertRaises(A.PiraAnalyzerException):
     analyzer = A.Analyzer(PiraConfiguration())