Example #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)
Example #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)
Example #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')
 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)
Example #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')
 def test_file_is_required(self):
     with self.assertRaises(SystemExit) as cm:
         parse_args(['decompiler.py'])
     self.assertNotEqual(cm.exception.code, 0)
 def test_mode_is_parsed_correctly_long_form(self):
     args = parse_args(['decompiler.py', '--mode', 'bin', 'prog.exe'])
     self.assertEqual(args.mode, 'bin')
Example #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')
Example #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)
Example #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')
Example #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')
Example #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)
Example #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)
Example #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')
Example #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')
Example #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')
Example #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')
Example #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)
Example #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')
Example #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)
Example #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')
Example #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')
Example #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)
Example #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')
Example #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')
Example #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')
Example #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')
Example #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)
Example #29
0
 def test_brief_is_set_to_false_when_not_given(self):
     args = parse_args(['decompiler.py', 'prog.exe'])
     self.assertFalse(args.brief)
Example #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)
Example #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)
Example #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)
Example #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')
Example #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')
Example #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)
Example #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')
Example #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')
Example #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)
Example #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')
Example #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')
Example #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')
Example #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')
Example #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')
Example #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)
Example #45
0
    def test_brief_is_set_to_false_when_not_given(self):
        args = parse_args(['decompiler.py', 'prog.exe'])

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