* YJIT: implement call fuzzer script Attempt to detect bugs in YJIT call implementation. * Add basic checks for rest, kwrest. Impprove formatting. * Refactor call fuzzer to make it more powerful and maintainable Compute checksum of arguments * Fix checksum computation. Add useless locals as sussged by Alan. * Add some useless if statements * Add arguments of different types * Pass object arguments as well. Force different shapes. * Compute fuzzing time/speed * Make use of block param
14 lines
422 B
Bash
Executable File
14 lines
422 B
Bash
Executable File
# Stop at first error
|
|
set -e
|
|
|
|
# TODO
|
|
# TODO: boost --num-iters to 1M+ for actual test
|
|
# TODO
|
|
export NUM_ITERS=25000
|
|
|
|
# Enable code GC so we don't stop compiling when we hit the code size limit
|
|
ruby --yjit-call-threshold=1 --yjit-code-gc misc/call_fuzzer.rb --num-iters=$NUM_ITERS
|
|
|
|
# Do another pass with --verify-ctx
|
|
ruby --yjit-call-threshold=1 --yjit-code-gc --yjit-verify-ctx misc/call_fuzzer.rb --num-iters=$NUM_ITERS
|