Fuzz every problem and language driver against the reference solutions
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 35/100
- Issue type
- Feature
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- javascript, node.js
Research direction
Start by reading backend/arena/runner/harness.js and the existing npm run validate:problems workflow to understand how reference solutions, problem metadata, and language drivers are run. Then inspect problem.function parameter types and the constraints referenced in issues #3 and #12. Done means the new seeded fuzzer supports the requested flags, shrinking, driver checks and CI run, and the stated validation commands pass.
Written by the indexing model from the issue text.
Description
Every problem is validated by running its JavaScript and Python references against its hand-written tests (npm run validate:problems). That only proves the references agree on inputs someone thought of. Bugs hide at the edges: empty arrays, negative numbers, duplicate values, maximum sizes, unicode strings.
What to do
Add backend/arena/scripts/fuzz-problems.js:
- Generate random inputs from each problem's parameter types in
problem.function(all types listed in #3), respecting declared constraints where present (see #12). - Bias generation toward edge cases: empty, single element, all equal, sorted, reverse sorted, min and max values.
- Run both reference solutions on each input and compare with the problem's
comparemode. - On a mismatch, shrink the input to the smallest failing case and print it, ready to paste into the problem as a new test.
- Run every language driver in
backend/arena/runner/harness.json a reference solution too, so driver bugs in serialization (big integers, floats, nested tuples, unicode) are caught. New language drivers (#1, #2, #3, #5, #6) should pass this before merging. - Deterministic by seed.
--seed,--runsand--problemflags.
Definition of done
- Runs over all 45 problems locally in a few minutes with
CODEARENA_RUNNER=local. - Prove it works: break one reference on purpose and show the fuzzer finding and shrinking the failure in the pull request.
- Any real disagreements found get their own issues or fixes, with the shrunk input added as a test.
- A short fuzz run (fixed seed, small run count) added to CI.
npm testandnode scripts/check-boundary.jspass.
- Dominant language
- JavaScript
- Stars
- 0
- Forks
- 2
- PR merge metrics
- No merged PRs in 30d
Getting set up
- No Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from sennaicodes/codearena
-
Add issue and pull request templatesMay be free again @franciscorodr26 claimed this 17 days ago, and no pull request is open. Opendocumentation good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
sennaicodes/codearena#13 · 1 comment ·
-
enhancement help wanted
Difficulty 5/5 Over a week Newbie friendliness 45/100
sennaicodes/codearena#34 ·
-
enhancement help wanted
Difficulty 5/5 Over a week Newbie friendliness 35/100
sennaicodes/codearena#33 ·
-
enhancement help wanted
Difficulty 5/5 Over a week Newbie friendliness 45/100
sennaicodes/codearena#32 ·
-
enhancement help wanted
Difficulty 5/5 Over a week Newbie friendliness 38/100
sennaicodes/codearena#31 ·
All issues in sennaicodes/codearena
Similar issues
-
Clinic sharing: fast sync refusal message suggests Delete Data, which only developer builds haveOpenbug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
avniproject/avni-client#2228 ·
-
bug confirmed issue
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
open-webui/open-webui#33196 · 2 comments ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
fable-compiler/Fable#5157 ·
Maintainers usually reply within 1 day
-
New tool: PaperBananaPossibly taken @github-actions claimed this today. Opensubmission triage
Difficulty 1/5 Under an hour Newbie friendliness 75/100
kausalflow/tools#243 · 1 comment ·
Maintainers usually reply within 1 day
-
area: apple-music area: build-release bug effort: small priority: high
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
ChristianTabor/Argon#32 ·
Maintainers usually reply within 1 day