trying to fix Export
All checks were successful
Create tag and build when new code gets to main / Export (push) Successful in 6m53s
All checks were successful
Create tag and build when new code gets to main / Export (push) Successful in 6m53s
This commit is contained in:
@@ -1,80 +0,0 @@
|
||||
## Base interface for fuzz testing.[br]
|
||||
##
|
||||
## Fuzzer is an abstract base class that provides the foundation for creating
|
||||
## custom fuzzers used in automated testing. Fuzz testing (fuzzing) is a software
|
||||
## testing technique that involves providing invalid, unexpected, or random data
|
||||
## as inputs to a program to find bugs and potential security vulnerabilities.
|
||||
## [br][br]
|
||||
## To use a fuzzer in your test cases, add optional parameters to your test function:
|
||||
## [codeblock]
|
||||
## func test_foo(fuzzer := Fuzzers.randomInt(), _fuzzer_iterations := 10, _fuzzer_seed := 12345):
|
||||
## var value := fuzzer.next_value()
|
||||
## # Test logic using the fuzzed value
|
||||
## [/codeblock]
|
||||
## [br]
|
||||
## @tutorial(Fuzzing on Wikipedia): https://en.wikipedia.org/wiki/Fuzzing
|
||||
@abstract
|
||||
class_name Fuzzer
|
||||
extends RefCounted
|
||||
|
||||
## Default number of iterations for fuzz testing when not specified.
|
||||
const ITERATION_DEFAULT_COUNT := 1000
|
||||
## Parameter name for passing the fuzzer instance to test functions.
|
||||
const ARGUMENT_FUZZER_INSTANCE := "fuzzer"
|
||||
## Parameter name for specifying the number of iterations in test functions.
|
||||
const ARGUMENT_ITERATIONS := "fuzzer_iterations"
|
||||
## Parameter name for specifying the random seed in test functions.
|
||||
const ARGUMENT_SEED := "fuzzer_seed"
|
||||
|
||||
## Current iteration index during fuzzing execution.
|
||||
var _iteration_index := 0
|
||||
## Maximum number of iterations to run for this fuzzer.
|
||||
var _iteration_limit := ITERATION_DEFAULT_COUNT
|
||||
|
||||
|
||||
## Generates the next fuzz value.[br]
|
||||
##
|
||||
## This abstract method must be implemented by derived classes to provide
|
||||
## the specific fuzzing logic for generating test values.[br]
|
||||
##
|
||||
## [b]Example implementation:[/b]
|
||||
## [codeblock]
|
||||
## func next_value() -> int:
|
||||
## return randi_range(0, 100)
|
||||
## [/codeblock]
|
||||
##
|
||||
## @returns The next generated fuzz value. The type depends on the specific fuzzer implementation.
|
||||
@abstract
|
||||
func next_value() -> Variant
|
||||
|
||||
|
||||
## Returns the current iteration index.[br]
|
||||
##
|
||||
## Useful for tracking progress during fuzzing or for debugging purposes
|
||||
## when a specific iteration causes a failure.[br]
|
||||
##
|
||||
## [b]Example:[/b]
|
||||
## [codeblock]
|
||||
## if fuzzer.iteration_index() % 100 == 0:
|
||||
## print("Processed %d iterations" % fuzzer.iteration_index())
|
||||
## [/codeblock]
|
||||
##
|
||||
## @returns The current iteration index, starting from 0.
|
||||
func iteration_index() -> int:
|
||||
return _iteration_index
|
||||
|
||||
|
||||
## Returns the maximum number of iterations for this fuzzer.[br]
|
||||
##
|
||||
## This value determines how many times the fuzzer will generate values
|
||||
## during a test run. It can be overridden by the [code]fuzzer_iterations[/code]
|
||||
## parameter in test functions.[br]
|
||||
##
|
||||
## [b]Example:[/b]
|
||||
## [codeblock]
|
||||
## print("Running %d fuzzing iterations" % fuzzer.iteration_limit())
|
||||
## [/codeblock]
|
||||
##
|
||||
## @returns The maximum number of iterations to be executed.
|
||||
func iteration_limit() -> int:
|
||||
return _iteration_limit
|
||||
Reference in New Issue
Block a user