-
Notifications
You must be signed in to change notification settings - Fork 0
Run picofuzz conformance tests #90
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
base: main
Are you sure you want to change the base?
Conversation
tomusdrw
commented
Jan 31, 2026
- add picofuzz-conformance as sub-module
- Rename picofuzz-data to picofuzz-stf-data
- run conformance tests
|
Important Review skippedAuto incremental reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the You can disable this status message by setting the
📝 WalkthroughWalkthroughThe PR reorganizes project submodules by consolidating jam-conformance into a new picofuzz-conformance-data submodule and renaming picofuzz-data to picofuzz-stf-data. Updates workflow configurations, test files, Dockerfiles, and documentation to reference the new submodule structure and adds conformance testing to the test matrix. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR reorganizes the submodule structure to separate conformance data from STF (State Transition Function) data, and adds picofuzz conformance tests. The jam-conformance submodule has been replaced with picofuzz-conformance-data, and picofuzz-data has been renamed to picofuzz-stf-data for clarity.
Changes:
- Added new
picofuzz-conformance-datasubmodule and removedjam-conformancesubmodule - Renamed
picofuzz-datatopicofuzz-stf-datathroughout the codebase - Added conformance test execution to the picofuzz test suite
Reviewed changes
Copilot reviewed 21 out of 22 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| .gitmodules | Updated submodule definitions to replace jam-conformance with picofuzz-conformance-data and rename picofuzz-data to picofuzz-stf-data |
| picofuzz-conformance-data | Added new submodule for conformance test data |
| jam-conformance | Removed old conformance submodule |
| tests/picofuzz/conformance.test.ts | Added new conformance test file pointing to the new submodule |
| tests/picofuzz/*.test.ts | Updated directory paths to use picofuzz-stf-data instead of picofuzz-data |
| tests/minifuzz/*.test.ts | Updated directory paths to use picofuzz-conformance-data/jam-conformance instead of jam-conformance |
| tests/docker-*.test.ts | Updated Docker mount paths to reflect new submodule names |
| tests/common.ts | Updated Docker volume mount paths for both picofuzz and minifuzz |
| minifuzz/minifuzz.Dockerfile | Updated COPY path to use new conformance data location |
| picofuzz/package.json | Updated prepare-data script path to use picofuzz-stf-data |
| picofuzz/README.md | Updated example command paths to use picofuzz-stf-data |
| README.md | Updated submodule documentation and example commands |
| biome.jsonc | Updated excluded paths to reflect new submodule names |
| .github/workflows/update-submodules.yml | Updated workflow to reference new submodule paths and names |
| .github/workflows/picofuzz.yml | Added conformance to test matrix |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 4
🤖 Fix all issues with AI agents
In `@picofuzz-conformance-data`:
- Line 1: Multiple tests and Dockerfile still reference the old subdirectory
path "picofuzz-conformance-data/jam-conformance"; update each occurrence in the
listed files (tests/minifuzz/burn.test.ts, tests/minifuzz/no_forks.test.ts,
tests/minifuzz/forks.test.ts, tests/docker-conformance.test.ts, tests/common.ts,
minifuzz/minifuzz.Dockerfile) to the actual subpaths now present in the
picofuzz-conformance-data submodule (inspect the submodule root to determine the
new directory names and replace "picofuzz-conformance-data/jam-conformance/..."
with the correct relative paths), ensure imports/require/file reads point to the
updated locations and run tests/Docker build to verify no remaining references.
- Line 1: Update the broken submodule path string in
tests/picofuzz/conformance.test.ts: replace the reference
"picofuzz-conformance-data/picofuzz-data" with
"picofuzz-conformance-data/jam-conformance" so the test imports the correct
submodule layout (matches docker-conformance.test.ts and .gitmodules); search
for that exact string literal in conformance.test.ts and update it accordingly.
In `@README.md`:
- Around line 124-126: Update the examples that show commands using paths like
picofuzz-stf-data/picofuzz-data/... to explicitly instruct users to initialize
the submodule and generate the data first: add a short note before or alongside
the three example commands stating to run git submodule update --init
--recursive from the repo root and then run the populate.sh script inside the
picofuzz-stf-data directory to create the fallback, safrole, and storage
subdirectories; reference the example command strings (e.g., "npm start -w
`@fluffylabs/picofuzz` picofuzz-stf-data/picofuzz-data/fallback
/tmp/jam_target.sock") so readers know these directories are produced by
populate.sh.
In `@tests/minifuzz/burn.test.ts`:
- Line 8: Update the EXAMPLES_DIR constant to remove the leading
"picofuzz-conformance-data/" prefix so the path matches the container mount
point; specifically change the value of EXAMPLES_DIR in
tests/minifuzz/burn.test.ts (the EXAMPLES_DIR symbol) to start with
"jam-conformance/..." instead of
"picofuzz-conformance-data/jam-conformance/...". Make the same adjustment for
the EXAMPLES_DIR constant in tests/minifuzz/forks.test.ts and
tests/minifuzz/no_forks.test.ts so minifuzz() builds paths like
/app/jam-conformance/... that exist inside the container.
🧹 Nitpick comments (1)
.gitmodules (1)
1-6: Consider using consistent URL protocols for submodules.The submodules use different URL protocols:
picofuzz-stf-data: SSH (git@github.com:...)picofuzz-conformance-data: HTTPS (https://github.com/...)This inconsistency may cause authentication issues in different environments (CI pipelines may be configured for one protocol but not the other, or developers may have SSH keys but not HTTPS tokens, or vice versa).
♻️ Suggested fix: Use consistent HTTPS URLs
[submodule "picofuzz-stf-data"] path = picofuzz-stf-data - url = git@github.com:FluffyLabs/picofuzz-data.git + url = https://github.com/FluffyLabs/picofuzz-data.git [submodule "picofuzz-conformance-data"] path = picofuzz-conformance-data url = https://github.com/FluffyLabs/picofuzz-conformance-data
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>