Esempio n. 1
0
 def test_prints_version_when_requested_and_exits(self):
     with self.assertRaises(SystemExit) as cm:
         parse_args(['decompiler.py', '--version'])
     self.assertEqual(cm.exception.code, 0)
     # Python < 3.4 emits the version to stderr, Python >= 3.4 to stdout.
     output = self.stdout.getvalue() + self.stderr.getvalue()
     self.assertIn(__version__, output)
Esempio n. 2
0
 def test_prints_version_when_requested_and_exits(self):
     with self.assertRaises(SystemExit) as cm:
         parse_args(['decompiler.py', '--version'])
     self.assertEqual(cm.exception.code, 0)
     # Python < 3.4 emits the version to stderr, Python >= 3.4 to stdout.
     output = self.stdout.getvalue() + self.stderr.getvalue()
     self.assertIn(__version__, output)
Esempio n. 3
0
    def test_decomp_var_names_is_parsed_correctly_long_form(self):
        args = parse_args(
            ['decompiler.py', '--var-names', 'simple', 'prog.exe'])

        self.assertEqual(args.decomp_var_names, 'simple')
Esempio n. 4
0
 def test_generate_archive_is_set_to_false_when_with_archive_not_given(self):
     args = parse_args(['decompiler.py', 'prog.exe'])
     self.assertFalse(args.generate_archive)
Esempio n. 5
0
    def test_target_language_is_parsed_correctly_long_form(self):
        args = parse_args(['decompiler.py', '--target-language', 'py', 'prog.exe'])

        self.assertEqual(args.target_language, 'py')
Esempio n. 6
0
 def test_file_is_required(self):
     with self.assertRaises(SystemExit) as cm:
         parse_args(['decompiler.py'])
     self.assertNotEqual(cm.exception.code, 0)
Esempio n. 7
0
 def test_mode_is_parsed_correctly_long_form(self):
     args = parse_args(['decompiler.py', '--mode', 'bin', 'prog.exe'])
     self.assertEqual(args.mode, 'bin')
Esempio n. 8
0
    def test_decomp_raw_entry_point_is_parsed_correctly_long_form(self):
        args = parse_args(
            ['decompiler.py', '--raw-entry-point', '0x8000', 'prog.exe'])

        self.assertEqual(args.raw_entry_point, '0x8000')
Esempio n. 9
0
    def test_generate_cfgs_is_set_to_true_when_with_cfgs_given(self):
        args = parse_args(['decompiler.py', '--with-cfgs', 'prog.exe'])

        self.assertTrue(args.generate_cfgs)
Esempio n. 10
0
    def test_decomp_var_names_is_parsed_correctly_long_form(self):
        args = parse_args(['decompiler.py', '--var-names', 'simple', 'prog.exe'])

        self.assertEqual(args.decomp_var_names, 'simple')
Esempio n. 11
0
    def test_decomp_optimizations_is_parsed_correctly_long_form(self):
        args = parse_args(['decompiler.py', '--optimizations', 'none', 'prog.exe'])

        self.assertEqual(args.decomp_optimizations, 'none')
Esempio n. 12
0
    def test_comp_debug_is_parsed_correctly_short_form(self):
        args = parse_args(['decompiler.py', '-g', 'file.c'])

        self.assertTrue(args.comp_debug)
Esempio n. 13
0
    def test_comp_strip_is_parsed_correctly_long_form(self):
        args = parse_args(['decompiler.py', '--compiler-strip', 'file.c'])

        self.assertTrue(args.comp_strip)
Esempio n. 14
0
    def test_comp_optimizations_is_parsed_correctly_long_form(self):
        args = parse_args(['decompiler.py', '--compiler-optimizations', 'O1', 'file.c'])

        self.assertEqual(args.comp_optimizations, 'O1')
Esempio n. 15
0
    def test_comp_compiler_is_parsed_correctly_long_form(self):
        args = parse_args(['decompiler.py', '--compiler', 'clang', 'file.c'])

        self.assertEqual(args.comp_compiler, 'clang')
Esempio n. 16
0
    def test_file_format_is_parsed_correctly_long_form(self):
        args = parse_args(['decompiler.py', '--file-format', 'elf', 'file.c'])

        self.assertEqual(args.file_format, 'elf')
Esempio n. 17
0
    def test_architecture_is_parsed_correctly_long_form(self):
        args = parse_args(['decompiler.py', '--architecture', 'arm', 'file.c'])

        self.assertEqual(args.architecture, 'arm')
Esempio n. 18
0
    def test_decomp_unreach_funcs_is_parsed_correctly_short_form(self):
        args = parse_args(['decompiler.py', '-K', 'prog.exe'])

        self.assertTrue(args.decomp_unreach_funcs)
Esempio n. 19
0
    def test_decomp_sel_ranges_is_parsed_correctly_long_form(self):
        args = parse_args(
            ['decompiler.py', '--only-ranges', '0x0-0x2,0x7-0x9', 'prog.exe'])

        self.assertEqual(args.sel_decomp_ranges, '0x0-0x2,0x7-0x9')
Esempio n. 20
0
    def test_decomp_unreach_funcs_is_parsed_correctly_long_form(self):
        args = parse_args(['decompiler.py', '--keep-unreach-funcs', 'prog.exe'])

        self.assertTrue(args.decomp_unreach_funcs)
Esempio n. 21
0
    def test_ar_index_is_parsed_correctly_long_form(self):
        args = parse_args(['decompiler.py', '--ar-index', '1', 'prog.exe'])

        self.assertEqual(args.ar_index, '1')
Esempio n. 22
0
    def test_decomp_sel_funcs_is_parsed_correctly_long_form(self):
        args = parse_args(['decompiler.py', '--only-funcs', 'func1,func2', 'prog.exe'])

        self.assertEqual(args.sel_decomp_funcs, 'func1,func2')
Esempio n. 23
0
    def test_brief_is_set_to_true_when_given_in_long_form(self):
        args = parse_args(['decompiler.py', '--brief', 'prog.exe'])

        self.assertTrue(args.brief)
Esempio n. 24
0
    def test_decomp_sel_ranges_is_parsed_correctly_long_form(self):
        args = parse_args(['decompiler.py', '--only-ranges', '0x0-0x2,0x7-0x9', 'prog.exe'])

        self.assertEqual(args.sel_decomp_ranges, '0x0-0x2,0x7-0x9')
Esempio n. 25
0
 def test_api_key_is_parsed_correctly_long_form(self):
     args = parse_args(['decompiler.py', '--api-key', 'KEY', 'prog.exe'])
     self.assertEqual(args.api_key, 'KEY')
Esempio n. 26
0
    def test_decomp_sel_decoding_is_parsed_correctly_long_form(self):
        args = parse_args(['decompiler.py', '--decoding', 'only', 'prog.exe'])

        self.assertEqual(args.sel_decomp_decoding, 'only')
Esempio n. 27
0
 def test_output_dir_is_parsed_correctly_long_form(self):
     args = parse_args(['decompiler.py', '--output-dir', 'dir', 'prog.exe'])
     self.assertEqual(args.output_dir, 'dir')
Esempio n. 28
0
    def test_decomp_emit_addresses_is_parsed_correctly_long_form(self):
        args = parse_args(['decompiler.py', '--no-addresses', 'prog.exe'])

        self.assertFalse(args.decomp_emit_addresses)
Esempio n. 29
0
 def test_brief_is_set_to_false_when_not_given(self):
     args = parse_args(['decompiler.py', 'prog.exe'])
     self.assertFalse(args.brief)
Esempio n. 30
0
    def test_decomp_unreach_funcs_is_parsed_correctly_short_form(self):
        args = parse_args(['decompiler.py', '-K', 'prog.exe'])

        self.assertTrue(args.decomp_unreach_funcs)
Esempio n. 31
0
    def test_comp_strip_is_parsed_correctly_long_form(self):
        args = parse_args(['decompiler.py', '--compiler-strip', 'file.c'])

        self.assertTrue(args.comp_strip)
Esempio n. 32
0
    def test_decomp_emit_addresses_is_parsed_correctly_long_form(self):
        args = parse_args(['decompiler.py', '--no-addresses', 'prog.exe'])

        self.assertFalse(args.decomp_emit_addresses)
Esempio n. 33
0
    def test_decomp_optimizations_is_parsed_correctly_long_form(self):
        args = parse_args(
            ['decompiler.py', '--optimizations', 'none', 'prog.exe'])

        self.assertEqual(args.decomp_optimizations, 'none')
Esempio n. 34
0
    def test_graph_format_is_parsed_correctly_long_form(self):
        args = parse_args(['decompiler.py', '--graph-forma', 'svg', 'prog.exe'])

        self.assertEqual(args.graph_format, 'svg')
Esempio n. 35
0
    def test_decomp_unreach_funcs_is_parsed_correctly_long_form(self):
        args = parse_args(
            ['decompiler.py', '--keep-unreach-funcs', 'prog.exe'])

        self.assertTrue(args.decomp_unreach_funcs)
Esempio n. 36
0
    def test_mode_is_parsed_correctly_long_form(self):
        args = parse_args(['decompiler.py', '--mode', 'bin', 'prog.exe'])

        self.assertEqual(args.mode, 'bin')
Esempio n. 37
0
    def test_decomp_sel_funcs_is_parsed_correctly_long_form(self):
        args = parse_args(
            ['decompiler.py', '--only-funcs', 'func1,func2', 'prog.exe'])

        self.assertEqual(args.sel_decomp_funcs, 'func1,func2')
Esempio n. 38
0
    def test_output_dir_is_set_to_none_when_not_given(self):
        args = parse_args(['decompiler.py', 'prog.exe'])

        self.assertIsNone(args.output_dir)
Esempio n. 39
0
    def test_decomp_sel_decoding_is_parsed_correctly_long_form(self):
        args = parse_args(['decompiler.py', '--decoding', 'only', 'prog.exe'])

        self.assertEqual(args.sel_decomp_decoding, 'only')
Esempio n. 40
0
    def test_output_dir_is_parsed_correctly_long_form(self):
        args = parse_args(['decompiler.py', '--output-dir', 'dir', 'prog.exe'])

        self.assertEqual(args.output_dir, 'dir')
Esempio n. 41
0
    def test_decomp_raw_section_vma_is_parsed_correctly_long_form(self):
        args = parse_args(
            ['decompiler.py', '--raw-section-vma', '0x8000', 'prog.exe'])

        self.assertEqual(args.raw_section_vma, '0x8000')
Esempio n. 42
0
    def test_pdb_file_is_parsed_correctly_long_form(self):
        args = parse_args(
            ['decompiler.py', '--pdb-file', 'prog.pdb', 'prog.exe'])

        self.assertEqual(args.pdb_file, 'prog.pdb')
Esempio n. 43
0
    def test_ar_name_is_parsed_correctly_long_form(self):
        args = parse_args(['decompiler.py', '--ar-name', 'file.o', 'prog.exe'])

        self.assertEqual(args.ar_name, 'file.o')
Esempio n. 44
0
    def test_quiet_is_set_to_true_when_given_in_short_form(self):
        args = parse_args(['decompiler.py', '-q', 'prog.exe'])

        self.assertTrue(args.quiet)
Esempio n. 45
0
    def test_brief_is_set_to_false_when_not_given(self):
        args = parse_args(['decompiler.py', 'prog.exe'])

        self.assertFalse(args.brief)
Esempio n. 46
0
    def test_target_language_is_parsed_correctly_long_form(self):
        args = parse_args(
            ['decompiler.py', '--target-language', 'py', 'prog.exe'])

        self.assertEqual(args.target_language, 'py')
Esempio n. 47
0
    def test_graph_format_is_parsed_correctly_long_form(self):
        args = parse_args(
            ['decompiler.py', '--graph-forma', 'svg', 'prog.exe'])

        self.assertEqual(args.graph_format, 'svg')
Esempio n. 48
0
    def test_architecture_is_parsed_correctly_long_form(self):
        args = parse_args(['decompiler.py', '--architecture', 'arm', 'file.c'])

        self.assertEqual(args.architecture, 'arm')
Esempio n. 49
0
 def test_file_is_parsed_correctly(self):
     args = parse_args(['decompiler.py', 'prog.exe'])
     self.assertEqual(args.input_file, 'prog.exe')
Esempio n. 50
0
    def test_file_format_is_parsed_correctly_long_form(self):
        args = parse_args(['decompiler.py', '--file-format', 'elf', 'file.c'])

        self.assertEqual(args.file_format, 'elf')
Esempio n. 51
0
 def test_api_url_is_parsed_correctly_long_form(self):
     args = parse_args(['decompiler.py', '--api-url', 'URL', 'prog.exe'])
     self.assertEqual(args.api_url, 'URL')
Esempio n. 52
0
    def test_decomp_endian_is_parsed_correctly_long_form(self):
        args = parse_args(['decompiler.py', '--endian', 'big', 'prog.exe'])

        self.assertEqual(args.endian, 'big')
Esempio n. 53
0
 def test_output_dir_is_set_to_none_when_not_given(self):
     args = parse_args(['decompiler.py', 'prog.exe'])
     self.assertIsNone(args.output_dir)
Esempio n. 54
0
    def test_comp_compiler_is_parsed_correctly_long_form(self):
        args = parse_args(['decompiler.py', '--compiler', 'clang', 'file.c'])

        self.assertEqual(args.comp_compiler, 'clang')
Esempio n. 55
0
 def test_quiet_is_set_to_true_when_given_in_short_form(self):
     args = parse_args(['decompiler.py', '-q', 'prog.exe'])
     self.assertTrue(args.quiet)
Esempio n. 56
0
    def test_comp_optimizations_is_parsed_correctly_long_form(self):
        args = parse_args(
            ['decompiler.py', '--compiler-optimizations', 'O1', 'file.c'])

        self.assertEqual(args.comp_optimizations, 'O1')
Esempio n. 57
0
 def test_generate_archive_is_set_to_true_when_with_archive_given(self):
     args = parse_args(['decompiler.py', '--with-archive', 'prog.exe'])
     self.assertTrue(args.generate_archive)
Esempio n. 58
0
    def test_comp_debug_is_parsed_correctly_short_form(self):
        args = parse_args(['decompiler.py', '-g', 'file.c'])

        self.assertTrue(args.comp_debug)
Esempio n. 59
0
 def test_brief_is_set_to_true_when_given_in_long_form(self):
     args = parse_args(['decompiler.py', '--brief', 'prog.exe'])
     self.assertTrue(args.brief)
Esempio n. 60
0
    def test_pdb_file_is_parsed_correctly_long_form(self):
        args = parse_args(['decompiler.py', '--pdb-file', 'prog.pdb', 'prog.exe'])

        self.assertEqual(args.pdb_file, 'prog.pdb')