ruby/misc/call_fuzzer.sh
Maxime Chevalier-Boisvert 3f25c08fa5
YJIT: implement call fuzzer script (#9129)
* 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
2023-12-11 12:52:47 -05:00

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