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)
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
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