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

Indicate Domains that are cheap vs. expensive to vary, and vary the cheap ones first #634

Open
dank-cruise opened this issue Oct 12, 2023 · 1 comment

Comments

@dank-cruise
Copy link

Is there some way we can indicate that some Domains are expensive to change, while others are cheap and should be varied first? For example, imagine a situation where the code under test can execute much faster if the expensive Domains are unchanged while the cheap Domains are varied arbitrarily. Once the cheap Domains have been 'exhausted' of interesting things by varying them, the expensive Domains are allowed to arbitrarily change exactly once. Then we go back to varying the cheap Domains, rinse and repeat.

A prime example of this would be testing a compiler and the generated program. Assume compilation is expensive while executing the generated program on a specific program input is cheap. The Domains that change the compiler's behavior should be varied less frequently, and only when the generated program has been thoroughly tested by varying all the Domains that are inputs to the generated program. The code under test would, of course, only recompile the program when needed (i.e. when the inputs defining the program to compile have changed), effectively caching the compiled program.

@dank-cruise dank-cruise changed the title Indicate Domains that are cheap or expensive to vary Indicate Domains that are cheap vs. expensive to vary, and vary the cheap ones first Oct 12, 2023
@kcc
Copy link
Contributor

kcc commented Nov 15, 2023

No such thing is implemented, although I can see why this could be useful.
For now, I would suggest:

  1. Fuzz with expensive domains disabled until fuzzing converges
  2. Fuzz with expensive domains enabled for some period, go back to 1)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants