Пример #1
0
    def test_get_chm_task_stats(self):
        con = CHMConfig('./images', './model', './outdir', '500x500', '20x20')
        cfig = configparser.ConfigParser()
        cfig.add_section('1')
        cfig.set('1', 'hi', 'val')
        cfig.add_section('2')
        cfig.set('2', 'hi', 'val')
        cfig.add_section('3')
        cfig.set('3', 'hi', 'val')
        cfig.add_section('4')
        cfig.set('4', 'hi', 'val')

        # try with none for lists
        con.set_config(cfig)
        tsf = TaskSummaryFactory(con)
        ts = tsf._get_chm_task_stats()
        self.assertEqual(ts.get_completed_task_count(), 0)
        self.assertEqual(ts.get_total_task_count(), 4)

        # try with empty lists
        tsf = TaskSummaryFactory(con,
                                 chm_incomplete_tasks=[],
                                 merge_incomplete_tasks=[])
        ts = tsf._get_chm_task_stats()
        self.assertEqual(ts.get_completed_task_count(), 4)
        self.assertEqual(ts.get_total_task_count(), 4)

        # try with lists with elements
        tsf = TaskSummaryFactory(con,
                                 chm_incomplete_tasks=['hi'],
                                 merge_incomplete_tasks=['a', 'b'])
        ts = tsf._get_chm_task_stats()
        self.assertEqual(ts.get_completed_task_count(), 3)
        self.assertEqual(ts.get_total_task_count(), 4)

        # try with lists with elements 2 incomplete
        tsf = TaskSummaryFactory(con,
                                 chm_incomplete_tasks=['hi', 'bye'],
                                 merge_incomplete_tasks=['a', 'b'])
        ts = tsf._get_chm_task_stats()
        self.assertEqual(ts.get_completed_task_count(), 2)
        self.assertEqual(ts.get_total_task_count(), 4)
Пример #2
0
    def test_get_chm_task_stats_outputcompute_true(self):
        temp_dir = tempfile.mkdtemp()
        try:
            con = CHMConfig('./images', './model', temp_dir, '500x500',
                            '20x20')
            run_dir = os.path.join(temp_dir, CHMJobCreator.RUN_DIR)
            stdout_dir = os.path.join(run_dir, CHMJobCreator.STDOUT_DIR)
            os.makedirs(stdout_dir, mode=0o755)

            new_format_file2 = os.path.join(stdout_dir, '778786.2')
            f = open(new_format_file2, 'w')
            f.write('a\n\b\nc\n')
            f.write('        User time (seconds): 100.00\n')
            f.write('  System time (seconds): 200.00\n')
            f.write('  Percent of CPU this job got: 1591%\n')
            f.write(' Elapsed (wall clock) time (h:mm:ss or m:ss): 20:15\n')
            f.write('Average shared text size (kbytes): 0\n')
            f.write('Average unshared data size (kbytes): 0\n')
            f.write('Average stack size (kbytes): 0\n')
            f.write('        Maximum resident set size (kbytes): 5287148\n')
            f.flush()
            f.close()

            cfig = configparser.ConfigParser()
            cfig.add_section('1')
            cfig.set('1', 'hi', 'val')
            cfig.add_section('2')
            cfig.set('2', 'hi', 'val')
            cfig.add_section('3')
            cfig.set('3', 'hi', 'val')
            cfig.add_section('4')
            cfig.set('4', 'hi', 'val')
            con.set_config(cfig)
            # try with lists with elements
            tsf = TaskSummaryFactory(con,
                                     chm_incomplete_tasks=['hi'],
                                     merge_incomplete_tasks=['a', 'b'],
                                     output_compute=True)
            ts = tsf._get_chm_task_stats()
            self.assertEqual(ts.get_completed_task_count(), 3)
            self.assertEqual(ts.get_total_task_count(), 4)
            self.assertEqual(ts.get_total_tasks_with_cputimes(), 1)
            self.assertEqual(ts.get_max_memory_in_kb(), 5287148)
            self.assertEqual(ts.get_total_cpu_usertime(), 100)
            self.assertEqual(ts.get_total_cpu_walltime(), 1215)

            # try with a second output file
            oldformatfile = os.path.join(stdout_dir, '1234.1')
            f = open(oldformatfile, 'w')
            f.write('HOST: comet-22-63\nDATE: blah\ns\n\n')
            f.write('real 150.0\nuser 250.0\nsys 60.0\n')
            f.write('chmrunner.py exited with code: 0\n')
            f.flush()
            f.close()
            tsf = TaskSummaryFactory(con,
                                     chm_incomplete_tasks=['hi'],
                                     merge_incomplete_tasks=['a', 'b'],
                                     output_compute=True)
            ts = tsf._get_chm_task_stats()
            self.assertEqual(ts.get_completed_task_count(), 3)
            self.assertEqual(ts.get_total_task_count(), 4)
            self.assertEqual(ts.get_total_tasks_with_cputimes(), 2)
            self.assertEqual(ts.get_max_memory_in_kb(), 5287148)
            self.assertEqual(ts.get_total_cpu_usertime(), 350)
            self.assertEqual(ts.get_total_cpu_walltime(), 1365)

        finally:
            shutil.rmtree(temp_dir)
Пример #3
0
 def test_get_chm_task_stats_get_config_is_none(self):
     con = CHMConfig('./images', './model', './outdir', '500x500', '20x20')
     tsf = TaskSummaryFactory(con)
     ts = tsf._get_chm_task_stats()
     self.assertEqual(ts.get_completed_task_count(), 0)
     self.assertEqual(ts.get_total_task_count(), 0)
Пример #4
0
 def test_get_chm_task_stats_everything_is_none(self):
     tsf = TaskSummaryFactory(None)
     ts = tsf._get_chm_task_stats()
     self.assertEqual(ts.get_completed_task_count(), 0)
     self.assertEqual(ts.get_total_task_count(), 0)