Exemplo 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)
Exemplo 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)
Exemplo 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')
Exemplo 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)
Exemplo 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')
Exemplo 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)
Exemplo 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')
Exemplo 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')
Exemplo 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)
Exemplo 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')
Exemplo 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')
Exemplo 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)
Exemplo 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)
Exemplo 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')
Exemplo 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')
Exemplo 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')
Exemplo 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')
Exemplo 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)
Exemplo 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')
Exemplo 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)
Exemplo 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')
Exemplo 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')
Exemplo 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)
Exemplo 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')
Exemplo 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')
Exemplo 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')
Exemplo 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')
Exemplo 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)
Exemplo 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)
Exemplo 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)
Exemplo 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)
Exemplo 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)
Exemplo 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')
Exemplo 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')
Exemplo 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)
Exemplo 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')
Exemplo 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')
Exemplo 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)
Exemplo 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')
Exemplo 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')
Exemplo 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')
Exemplo 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')
Exemplo 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')
Exemplo 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)
Exemplo 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)
Exemplo 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')
Exemplo 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')
Exemplo 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')
Exemplo n.º 49
0
 def test_file_is_parsed_correctly(self):
     args = parse_args(['decompiler.py', 'prog.exe'])
     self.assertEqual(args.input_file, 'prog.exe')
Exemplo 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')
Exemplo 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')
Exemplo 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')
Exemplo 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)
Exemplo 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')
Exemplo 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)
Exemplo 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')
Exemplo 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)
Exemplo 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)
Exemplo 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)
Exemplo 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')