Skip to content

Modernize dependencies and add comprehensive edge-case tests#5

Merged
endeav0r merged 1 commit intomasterfrom
modernize-deps-and-add-tests
Mar 13, 2026
Merged

Modernize dependencies and add comprehensive edge-case tests#5
endeav0r merged 1 commit intomasterfrom
modernize-deps-and-add-tests

Conversation

@endeav0r
Copy link
Member

Summary

  • Update all dependencies to latest versions: falcon 0.5.2→0.6.0, falcon-z3 0.5.2→0.6.0, clap 2→4, nom 6→8, rustyline 9→17, goblin 0.4→0.10, byteorder 1.3→1.5, lazy_static 1.4→1.5, simplelog 0.10→0.12
  • Remove obsolete dependencies and code: drop falcon_capstone, rayon, unicorn; delete unicorn_verify_amd64.rs, unicorn_verify_mips.rs, unicorn_verify_x86.rs
  • Adapt codebase to new dependency APIs: clap 4 builder pattern, nom 8 parsers, rustyline 17 history types, falcon 0.6 IL changes (AShr support, Page simplification, lifetime annotations)
  • Add 63 new edge-case tests (25 → 88 total) across Memory, State, simplify, and FileSystem

Test coverage added

Memory (15 tests)

Byte ordering (LE/BE), page boundary crossing, partial uninitialized loads, backing memory fallback, page-overrides-backing, permission alignment validation, flatten (concrete→backing, symbolic stays), merge (differing→ITE, identical unchanged), symbolic store/load roundtrip, load_buf partially uninitialized, initialize_blank

Simplify (6 tests)

And+bitmask eliminates zext via Or, preserves wider zext, trun eliminates upper Or bits, trun/zext different-bits no-collapse, or-zero identity, idempotency

State (22 tests)

Scalar not set, nested symbolization, eval constant fast path, unsatisfiable→None, eval_and_concretize (adds constraint for symbolic / skips for constant), symbolize_and_assert (satisfiable/unsatisfiable/constant true/false), execute (assign/store/load-uninitialized/undefined-scalar-in-index/branch/nop/intrinsic-error), make_symbolic_buffer, make_symbolic_string null termination, get_string, merge (differing/same/extra scalars), expression_complexity_variable

FileSystem (17 tests)

stdin/stdout/stderr creation, duplicate fd, read at EOF, short reads, seek (Set/Cursor/End), write past EOF with zero fill, write to nonexistent (with/without offset), close_fd (reclaim highest/gap no-reclaim/invalid), fd_valid after close, zeroize, size_fd invalid, write_fd extends file

Test plan

  • cargo fmt — no formatting issues
  • cargo clippy --all-targets — no new warnings
  • cargo test — all 88 tests pass

🤖 Generated with Claude Code

…corn verification

Update all dependencies to latest versions:
- falcon 0.5.2 → 0.6.0, falcon-z3 0.5.2 → 0.6.0
- clap 2 → 4, nom 6 → 8, rustyline 9 → 17, goblin 0.4 → 0.10
- byteorder 1.3 → 1.5, lazy_static 1.4 → 1.5, simplelog 0.10 → 0.12
- Remove falcon_capstone, rayon, unicorn dependencies

Adapt codebase to new dependency APIs (clap 4 builder, nom 8 parsers,
rustyline 17, falcon 0.6 IL changes including AShr support).

Remove unicorn_verify_*.rs modules (unicorn dependency removed).

Add 63 new edge-case tests across Memory, State, simplify, and FileSystem
covering byte ordering, page boundaries, backing memory, symbolic roundtrips,
Z3 solver paths, merge operations, execute operations, and filesystem I/O.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@endeav0r endeav0r merged commit 328faa4 into master Mar 13, 2026
2 checks passed
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.

1 participant