Esempio n. 1
0
 def test_correct(self):
     file_name = 'data/correct.pbs'
     nr_syntax_events = 0
     nr_semantic_events = 0
     parser = PbsScriptParser(self._config, self._event_defs)
     with open(file_name, 'r') as pbs_file:
         parser.parse_file(pbs_file)
     self.assertEquals(nr_syntax_events, len(parser.events))
     checker = JobChecker(self._config, self._event_defs)
     checker.check(parser.job)
     self.assertEquals(nr_semantic_events, len(checker.events))
Esempio n. 2
0
 def test_pmem_violation(self):
     file_name = 'data/pmem_violation.pbs'
     event_names = ['insufficient_nodes_mem']
     parser = PbsScriptParser(self._config, self._event_defs)
     with open(file_name, 'r') as pbs_file:
         parser.parse_file(pbs_file)
     checker = JobChecker(self._config, self._event_defs)
     checker.check(parser.job)
     self.assertEquals(len(event_names), len(checker.events))
     for event in checker.events:
         self.assertTrue(event['id'] in event_names)
     self.assertEquals(len(event_names), checker.nr_errors)
Esempio n. 3
0
 def test_mem_pmem(self):
     file_name = 'data/mem_pmem.pbs'
     event_names = ['both_mem_pmem_specs']
     parser = PbsScriptParser(self._config, self._event_defs)
     with open(file_name, 'r') as pbs_file:
         parser.parse_file(pbs_file)
     checker = JobChecker(self._config, self._event_defs)
     checker.check(parser.job)
     self.assertEquals(len(event_names), len(checker.events))
     for event in checker.events:
         self.assertTrue(event['id'] in event_names)
     self.assertEquals(len(event_names), checker.nr_warnings)
Esempio n. 4
0
 def test_too_large_ppn(self):
     file_name = 'data/too_large_ppn.pbs'
     nr_syntax_events = 0
     nr_semantic_events = 1
     event_name = 'insufficient_ppn_nodes'
     parser = PbsScriptParser(self._config, self._event_defs)
     with open(file_name, 'r') as pbs_file:
         parser.parse_file(pbs_file)
     self.assertEquals(nr_syntax_events, len(parser.events))
     checker = JobChecker(self._config, self._event_defs)
     checker.check(parser.job)
     self.assertEquals(nr_semantic_events, len(checker.events))
     self.assertEquals(event_name, checker.events[0]['id'])
Esempio n. 5
0
 def test_unknown_feature(self):
     file_name = 'data/unknown_feature.pbs'
     nr_syntax_events = 0
     nr_semantic_events = 1
     event_name = 'unknown_feature'
     parser = PbsScriptParser(self._config, self._event_defs)
     with open(file_name, 'r') as pbs_file:
         parser.parse_file(pbs_file)
     self.assertEquals(nr_syntax_events, len(parser.events))
     checker = JobChecker(self._config, self._event_defs)
     checker.check(parser.job)
     self.assertEquals(nr_semantic_events, len(checker.events))
     self.assertEquals(event_name, checker.events[0]['id'])
Esempio n. 6
0
 def test_too_many_nodes(self):
     file_name = 'data/too_many_nodes.pbs'
     nr_syntax_events = 0
     event_names = ['insufficient_nodes', 'insufficient_ppn_nodes',
                    'insufficient_nodes_mem']
     parser = PbsScriptParser(self._config, self._event_defs)
     with open(file_name, 'r') as pbs_file:
         parser.parse_file(pbs_file)
     self.assertEquals(nr_syntax_events, len(parser.events))
     checker = JobChecker(self._config, self._event_defs)
     checker.check(parser.job)
     self.assertEquals(len(event_names), len(checker.events))
     for event in checker.events:
         self.assertTrue(event['id'] in event_names)
Esempio n. 7
0
 def test_working_dir_no_var(self):
     file_name = 'tests/test/data/working_dir_no_var.pbs'
     event_names = ['missspelled']
     parser = PbsScriptParser(self._config, self._event_defs)
     with open(file_name, 'r') as pbs_file:
         parser.parse_file(pbs_file)
     self.assertEqual(0, len(parser.events))
     checker = JobChecker(self._config, self._event_defs)
     checker.check(parser.job)
     script_checker = ScriptChecker(self._config, self._event_defs)
     script_checker.check(parser.job, parser.script_first_line_nr)
     self.assertEqual(len(event_names), len(script_checker.events))
     for event in script_checker.events:
         self.assertTrue(event['id'] in event_names)
     self.assertEqual(len(event_names), script_checker.nr_warnings)
Esempio n. 8
0
 def test_walltime_no_queue(self):
     file_name = 'data/walltime_no_queue.pbs'
     nr_syntax_events = 0
     nr_semantic_events = 0
     queue_name = 'qdef'
     expected_walltime = 45*3600 + 15*60
     parser = PbsScriptParser(self._config, self._event_defs)
     with open(file_name, 'r') as pbs_file:
         parser.parse_file(pbs_file)
     self.assertEquals(nr_syntax_events, len(parser.events))
     checker = JobChecker(self._config, self._event_defs)
     checker.check(parser.job)
     self.assertEquals(nr_semantic_events, len(checker.events))
     job = parser.job
     self.assertEquals(queue_name, job.queue)
     self.assertEquals(expected_walltime, job.resource_spec('walltime'))