Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/alamvic/heapfuzzer
https://github.com/alamvic/heapfuzzer
Last synced: about 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/alamvic/heapfuzzer
- Owner: Alamvic
- License: mit
- Created: 2022-09-28T08:06:29.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2023-08-08T11:13:00.000Z (over 1 year ago)
- Last Synced: 2024-01-20T22:10:18.861Z (11 months ago)
- Language: Smalltalk
- Size: 154 KB
- Stars: 2
- Watchers: 4
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# HeapFuzzer
This repository presents an implementation of a lightweight test generation approach for memory managers and garbage collectors.
Directly fuzzing a memory manager allows us to control aspects such as the location where objects are allocated, and low-level events such as GC invocations and their parameters. Our solution generates large sequences of random heap events that exercise the garbage collection algorithms to generate VM crashes and find bugs. We combine fuzzing with a test reduction algorithm that finds the smaller subset of events reproducing an issue.This approach works on top of the PharoVM (https://github.com/pharo-project/pharo-vm/).
## Basic Usage
Execute the following and inspect the results:
```smalltalk
result := HeapFuzzer fullRandom fuzzEvents: 100."Then reproduce the error"
result fuzzing basicExecute.
```There are other pre-built fuzzers and you can configure your own:
```smalltalk
HeapFuzzer fullRandom.
HeapFuzzer forEphemerons.
HeapFuzzer forCompaction.
HeapFuzzer forCornerAllocationCases.
```Check the fuzzer creation methods for more information.