예제 #1
0
    def test_gen_afl_args(self):
        """Test that we are generating arguments for AFL correctly."""
        target_path = '/targetpath'
        output_dir = '/afl_output_dir'
        input_dir = '/inputdir'
        extra_args = ['extra1', 'extra2']
        testcase_file_path = '/testcase'
        config = launcher.AflConfig.from_target_path(target_path)
        config.additional_afl_arguments.extend(extra_args)
        runner = launcher.AflRunner(target_path, config, testcase_file_path,
                                    input_dir)

        afl_args = runner.generate_afl_args()

        self.assertIn(target_path, afl_args)
        target_idx = afl_args.index(target_path)

        # Test that output_dir is the parameter for -o and that it is being passed
        # to afl and not the target binary.
        output_dir_argument = [arg for arg in afl_args if output_dir in arg][0]
        self.assertIn('-o', output_dir_argument)
        self.assertLess(afl_args.index(output_dir_argument), target_idx)

        input_dir_argument = [arg for arg in afl_args if input_dir in arg][0]
        self.assertIn('-i', input_dir_argument)
        self.assertLess(afl_args.index(input_dir_argument), target_idx)

        for extra_arg in extra_args:
            self.assertIn(extra_arg, afl_args)
            self.assertLess(afl_args.index(extra_arg), afl_args)
예제 #2
0
  def setUp(self):
    super(AflRunnerTest, self).setUp()
    test_helpers.patch_environ(self)
    environment.set_value('HARD_TIMEOUT_OVERRIDE', 600)
    config = launcher.AflConfig.from_target_path(self.TARGET_PATH)
    self.runner = launcher.AflRunner(self.TARGET_PATH, config,
                                     self.TESTCASE_FILE_PATH, self.INPUT_DIR)

    self.fuzz_result = new_process.ProcessResult()
    self.args = ['-iinput1', '-ooutput', '123', '456']
    self.times_called = 0
예제 #3
0
    def setUp(self):
        super().setUp()
        test_helpers.patch_environ(self)
        test_helpers.patch(self,
                           ['bot.fuzzers.engine_common.is_lpm_fuzz_target'])
        self.mock.is_lpm_fuzz_target.return_value = True
        environment.set_value('HARD_TIMEOUT_OVERRIDE', 600)
        config = launcher.AflConfig.from_target_path(self.TARGET_PATH)

        self.runner = launcher.AflRunner(self.TARGET_PATH, config,
                                         self.TESTCASE_FILE_PATH,
                                         self.INPUT_DIR)

        self.fuzz_result = new_process.ProcessResult()
        self.args = ['-iinput1', '-ooutput', '123', '456']
        self.times_called = 0