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())
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))
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)
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)
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)
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)
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
def test_empty_pira_config(self): with self.assertRaises(A.PiraAnalyzerException): analyzer = A.Analyzer(PiraConfiguration())