Skip to content

Conversation

@tomusdrw
Copy link
Contributor

updated to the latest fuzzer round (PR #115)

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Nov 17, 2025

📝 Walkthrough

Summary by CodeRabbit

  • Chores
    • Updated test infrastructure and reference configurations
    • Expanded test exclusion list with additional test cases
    • Enhanced error handling in test runner

Summary by CodeRabbit

  • Tests
    • Updated test vector reference to use a new commit baseline
    • Expanded the list of test results excluded from validation runs
    • Enhanced error handling in the test runner to properly report failures with exit codes

Walkthrough

The PR updates the test-vectors reference commit SHA in .github/scripts/load-test-ref.sh from 49835bae9bafe1be63d91e38c826a6d4f3edbd44 to 3d2ad356bb631ae0e18533bfd71c758af7db9ad5. In bin/test-runner/jam-conformance-071.ts it expands the ignored test-result JSON list with seven additional entries and adds a catch block to the main promise chain to log errors and exit with code -1.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

  • Small, localized edits across two files: a single-line SHA update, additions to an ignore list, and an added promise catch.
  • Pay attention to:
    • The new REF SHA in .github/scripts/load-test-ref.sh.
    • The seven newly ignored test-result filenames in bin/test-runner/jam-conformance-071.ts.
    • The catch block’s logging and use of exit code -1.

Possibly related PRs

Suggested reviewers

  • mateuszsikora
  • DrEverr
  • skoszuta

Poem

🐰
I nudged a SHA, then tucked some tests to sleep,
Seven little files I hushed in a heap.
I caught a tumble, logged with a sigh—no dread,
Hopped off homeward with carrots in my stead. 🥕✨

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title 'Update test vectors' accurately reflects the main changes in the changeset, which updates test vector references and adds ignored test results.
Description check ✅ Passed The description 'updated to the latest fuzzer round (PR #115)' is directly related to the changeset, which updates test vectors from a fuzzer round.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch td-vectors

📜 Recent review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between d3cd4f4 and 3a9143f.

📒 Files selected for processing (1)
  • .github/scripts/load-test-ref.sh (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • .github/scripts/load-test-ref.sh
⏰ Context from checks skipped due to timeout of 120000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (5)
  • GitHub Check: run (22.x)
  • GitHub Check: e2e (22.x)
  • GitHub Check: run (22.x)
  • GitHub Check: run (22.x)
  • GitHub Check: test (22.x)

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 2473e55 and 13683a6.

📒 Files selected for processing (2)
  • .github/scripts/load-test-ref.sh (1 hunks)
  • bin/test-runner/jam-conformance-071.ts (1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
**/*.ts

⚙️ CodeRabbit configuration file

**/*.ts: rules from ./CODESTYLE.md should be adhered to.

**/*.ts: Any function whose documentation mention it must not be used in production code,
can be safely used in *.test.ts files. Other usage should be carefuly reviewed
and the comment must explain why it's safe to use there.

**/*.ts: as conversions must not be used. Suggest using tryAs conversion methods.

**/*.ts: Classes with static Codec field must have private constructor and static create method.

**/*.ts: Casting a bigint (or U64) using Number(x) must have an explanation comment why
it is safe.

**/*.ts: When making changes to code with comments containing links (in classes, constants, methods, etc.)
to graypaper.fluffylabs.dev, ensure those links point to the current version for this update.

Files:

  • bin/test-runner/jam-conformance-071.ts
🪛 GitHub Actions: Build - Lint & Test
bin/test-runner/jam-conformance-071.ts

[error] 16-16: File content differs from formatting output. Prettier formatting check failed. No fixes applied.

⏰ Context from checks skipped due to timeout of 120000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
  • GitHub Check: e2e (22.x)
  • GitHub Check: jam-e2e (22.x)
🔇 Additional comments (1)
bin/test-runner/jam-conformance-071.ts (1)

9-16: Consider tracking ignored test cases as issues.

Four new test cases are being added to the ignore list. While the comments provide context, it's unclear whether these represent:

  • Known bugs that need fixing
  • Legitimate edge cases that should be handled
  • Issues with the test vectors themselves

Consider creating tracking issues for each ignored test case to ensure they're properly addressed, especially for the "mismatch" cases which may indicate implementation discrepancies.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 13683a6 and 5122c5b.

📒 Files selected for processing (1)
  • bin/test-runner/jam-conformance-071.ts (1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
**/*.ts

⚙️ CodeRabbit configuration file

**/*.ts: rules from ./CODESTYLE.md should be adhered to.

**/*.ts: Any function whose documentation mention it must not be used in production code,
can be safely used in *.test.ts files. Other usage should be carefuly reviewed
and the comment must explain why it's safe to use there.

**/*.ts: as conversions must not be used. Suggest using tryAs conversion methods.

**/*.ts: Classes with static Codec field must have private constructor and static create method.

**/*.ts: Casting a bigint (or U64) using Number(x) must have an explanation comment why
it is safe.

**/*.ts: When making changes to code with comments containing links (in classes, constants, methods, etc.)
to graypaper.fluffylabs.dev, ensure those links point to the current version for this update.

Files:

  • bin/test-runner/jam-conformance-071.ts

@mateuszsikora mateuszsikora enabled auto-merge (squash) November 17, 2025 11:32
@github-actions
Copy link

View all
File Benchmark Ops
bytes/hex-from.ts[0] parse hex using Number with NaN checking 119759.17 ±1.45% 84.39% slower
bytes/hex-from.ts[1] parse hex from char codes 767428.79 ±1.81% fastest ✅
bytes/hex-from.ts[2] parse hex from string nibbles 417877.76 ±6.5% 45.55% slower
logger/index.ts[0] console.log with string concat 4800384.44 ±54.62% fastest ✅
logger/index.ts[1] console.log with args 1319289.4 ±100.99% 72.52% slower
math/add_one_overflow.ts[0] add and take modulus 130913389.32 ±86.67% 46.42% slower
math/add_one_overflow.ts[1] condition before calculation 244339199.99 ±5.42% fastest ✅
math/count-bits-u32.ts[0] standard method 79125280.2 ±2.29% 64.76% slower
math/count-bits-u32.ts[1] magic 224534759.09 ±5.92% fastest ✅
math/count-bits-u64.ts[0] standard method 2099454.75 ±2.43% 97.11% slower
math/count-bits-u64.ts[1] magic 72770477.01 ±2.78% fastest ✅
math/mul_overflow.ts[0] multiply and bring back to u32 230752724.42 ±4.6% fastest ✅
math/mul_overflow.ts[1] multiply and take modulus 206910016.56 ±6.41% 10.33% slower
collections/map-set.ts[0] 2 gets + conditional set 106391.82 ±1.15% fastest ✅
collections/map-set.ts[1] 1 get 1 set 53197.27 ±1.3% 50% slower
hash/index.ts[0] hash with numeric representation 170.04 ±1.55% 27.07% slower
hash/index.ts[1] hash with string representation 105.52 ±1.55% 54.74% slower
hash/index.ts[2] hash with symbol representation 159.87 ±1.46% 31.43% slower
hash/index.ts[3] hash with uint8 representation 144.7 ±1.68% 37.94% slower
hash/index.ts[4] hash with packed representation 233.16 ±1.43% fastest ✅
hash/index.ts[5] hash with bigint representation 170.91 ±1.27% 26.7% slower
hash/index.ts[6] hash with uint32 representation 167.83 ±2.25% 28.02% slower
codec/bigint.compare.ts[0] compare custom 243458044.5 ±4.16% fastest ✅
codec/bigint.compare.ts[1] compare bigint 228730242.38 ±5.83% 6.05% slower
codec/bigint.decode.ts[0] decode custom 147485947.97 ±3.7% fastest ✅
codec/bigint.decode.ts[1] decode bigint 56507588.11 ±3.53% 61.69% slower
bytes/hex-to.ts[0] number toString + padding 161900.04 ±3% fastest ✅
bytes/hex-to.ts[1] manual 10489.54 ±1.41% 93.52% slower
math/switch.ts[0] switch 244795411.79 ±4.1% fastest ✅
math/switch.ts[1] if 238295993.58 ±5.44% 2.66% slower
codec/decoding.ts[0] manual decode 48730.38 ±30.97% 99.96% slower
codec/decoding.ts[1] int32array decode 128139589.81 ±3.2% 5.34% slower
codec/decoding.ts[2] dataview decode 135370089.67 ±3.48% fastest ✅
codec/encoding.ts[0] manual encode 1189379.85 ±4.96% 50.19% slower
codec/encoding.ts[1] int32array encode 1725077.59 ±1.41% 27.76% slower
codec/encoding.ts[2] dataview encode 2387839.8 ±1.86% fastest ✅
codec/view_vs_object.ts[0] Get the first field from Decoded 389765.39 ±0.92% 1.58% slower
codec/view_vs_object.ts[1] Get the first field from View 80715.82 ±1.06% 79.62% slower
codec/view_vs_object.ts[2] Get the first field as view from View 79355.16 ±1.74% 79.96% slower
codec/view_vs_object.ts[3] Get two fields from Decoded 396028.85 ±0.83% fastest ✅
codec/view_vs_object.ts[4] Get two fields from View 63561.03 ±1.15% 83.95% slower
codec/view_vs_object.ts[5] Get two fields from materialized from View 131374.74 ±2.07% 66.83% slower
codec/view_vs_object.ts[6] Get two fields as views from View 65548.52 ±0.84% 83.45% slower
codec/view_vs_object.ts[7] Get only third field from Decoded 379755.44 ±1.17% 4.11% slower
codec/view_vs_object.ts[8] Get only third field from View 79688.74 ±1.2% 79.88% slower
codec/view_vs_object.ts[9] Get only third field as view from View 81085.4 ±0.85% 79.53% slower
codec/view_vs_collection.ts[0] Get first element from Decoded 21271.36 ±2.22% 51.38% slower
codec/view_vs_collection.ts[1] Get first element from View 43752.16 ±4.21% fastest ✅
codec/view_vs_collection.ts[2] Get 50th element from Decoded 20331.35 ±4.84% 53.53% slower
codec/view_vs_collection.ts[3] Get 50th element from View 24520.54 ±1.03% 43.96% slower
codec/view_vs_collection.ts[4] Get last element from Decoded 21762.6 ±1.68% 50.26% slower
codec/view_vs_collection.ts[5] Get last element from View 15066.33 ±1.45% 65.56% slower
collections/map_vs_sorted.ts[0] Map 268481.47 ±2.42% fastest ✅
collections/map_vs_sorted.ts[1] Map-array 89087.26 ±1.18% 66.82% slower
collections/map_vs_sorted.ts[2] Array 28311.92 ±5.45% 89.45% slower
collections/map_vs_sorted.ts[3] SortedArray 176871.09 ±0.82% 34.12% slower
bytes/compare.ts[0] Comparing Uint32 bytes 12791.56 ±2.69% 3.75% slower
bytes/compare.ts[1] Comparing raw bytes 13290.12 ±3.82% fastest ✅
hash/blake2b.ts[0] our hasher 1.93 ±4.15% fastest ✅
hash/blake2b.ts[1] blake2b js 0.04 ±2.24% 97.93% slower
crypto/ed25519.ts[0] native crypto 8.03 ±0.87% 73.22% slower
crypto/ed25519.ts[1] wasm lib 10.77 ±0.28% 64.08% slower
crypto/ed25519.ts[2] wasm lib batch 29.98 ±0.61% fastest ✅

Benchmarks summary: 63/63 OK ✅

@mateuszsikora mateuszsikora merged commit 13b653d into main Nov 17, 2025
16 checks passed
@mateuszsikora mateuszsikora deleted the td-vectors branch November 17, 2025 11:49
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.

3 participants