Skip to content

Conversation

@xydxydxyd1
Copy link

Summary

Record metadata during seed generation and add harness <lib> record-coverage

Description

New features

  • fuzzer binary now records timestamp of each seed relative to program start time
    • Outputs metadata to `output//seed_metas.csv
  • New command: harness <lib> record-coverage calculates cumulative coverage of each seed
    • Requires metadata from `output//seed_metas.csv
    • Outputs coverage information back to `output//seed_metas.csv

Relevant implementation details

  • New module crate::cntg_program, decoupling from crate::program as they have different compilation/processing needs
  • crate::cntg_program::CNTGProgram is decoupled from project paths. Path-related information will be passed at a higher level (harness binary)
  • New module crate::cntg_program::seed_metas used for calculating and recording seed metadata (timestamp and cumulative coverage)

Misc. changes

  • Minor fixes such as typos
  • Add csv package for processing seed_metas.csv in harness and fuzzer binaries

Originally takes ownership of deopt, which may be used later.
Allow for coverage collection of arbitrary paths of CNTG Programs. This will
allow for features such as coverage collection during generation
This separates CNTG programs from fuzz programs, which makes sense as they have
different compilation and coverage collection.
needed for logging seed metadata like generation timestamp
the fuzzer binary that generates api sequences now logs the timestamp (in
seconds, relative to program start) a particular seed is generated. This will be
needed for coverage-over-time testing
Needed to modify seed metadata during coverage collection
Now, `harness record-coverage` accumulates coverage from all previous seeds.
@xydxydxyd1 xydxydxyd1 marked this pull request as ready for review October 21, 2025 21:04
@Tonyyang0606 Tonyyang0606 merged commit a2da952 into main Oct 25, 2025
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

Successfully merging this pull request may close these issues.

2 participants