Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Port v8 fuzzer to the new framework #4739

Merged
merged 2 commits into from
Aug 19, 2022

Commits on Aug 19, 2022

  1. Port v8 fuzzer to the new framework

    This commit aims to improve the support for the new "meta" differential
    fuzzer added in bytecodealliance#4515 by ensuring that all existing differential fuzzing
    is migrated to this new fuzzer. This PR includes features such as:
    
    * The V8 differential execution is migrated to the new framework.
    * `Config::set_differential_config` no longer force-disables wasm
      features, instead allowing them to be enabled as per the fuzz input.
    * `DiffInstance::{hash, hash}` was replaced with
      `DiffInstance::get_{memory,global}` to allow more fine-grained
      assertions.
    * Support for `FuncRef` and `ExternRef` have been added to `DiffValue`
      and `DiffValueType`. For now though generating an arbitrary
      `ExternRef` and `FuncRef` simply generates a null value.
    * Arbitrary `DiffValue::{F32,F64}` values are guaranteed to use
      canonical NaN representations to fix an issue with v8 where with the
      v8 engine we can't communicate non-canonical NaN values through JS.
    * `DiffEngine::evaluate` allows "successful failure" for cases where
      engines can't support that particular invocation, for example v8 can't
      support `v128` arguments or return values.
    * Smoke tests were added for each engine to ensure that a simple wasm
      module works at PR-time.
    * Statistics printed from the main fuzzer now include percentage-rates
      for chosen engines as well as percentage rates for styles-of-module.
    
    There's also a few small refactorings here and there but mostly just
    things I saw along the way.
    alexcrichton committed Aug 19, 2022
    Configuration menu
    Copy the full SHA
    f8f67d4 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    212aaf5 View commit details
    Browse the repository at this point in the history