Repository navigation
End to end smoke tests and generated fixtures with source manifests - #123
Merged
Merged
Conversation
Rock Ridge + Joliet (300 file directory, unusual names), relocated Rock Ridge directories, El Torito BIOS + EFI, pure UDF 2.01 (Linux driver), genisoimage UDF bridge and pycdlib UDF 2.60, built in Docker by fixtures/build-fixtures.sh. manifests/ holds the SHA-256 of the source files of each image.
Every fixture through every action with expected outputs, extraction checked against the source manifests, exit codes, standard input, binary safe --cat, odd paths and damaged images.
Up to standards ✅🟢 Issues
|
| Metric | Results |
|---|---|
| Complexity | 0 |
| Duplication | 0 |
NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.
2.0.0 was already released at 931ca0a: CHANGELOG.md describes what it contained, the work since then is 2.1.0, and UPGRADE-2.1.md lists its breaking changes.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #123 +/- ##
============================================
+ Coverage 97.42% 97.47% +0.05%
Complexity 888 888
============================================
Files 25 25
Lines 1904 1904
============================================
+ Hits 1855 1856 +1
+ Misses 49 48 -1 ☔ View full report in Codecov by Harness. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
End to end smoke tests for
bin/isotool, and more real-world fixtures with an expectation that does not come from this library.Smoke tests (
tests/smoke/run.sh,composer run smoke)These run as separate processes on Linux, Windows and macOS for every PHP version. On Windows they also run a second time through
bin\isotool.bat. They check what the in-process PHPUnit CLI tests can't:-l --ndjson,-j, info--files, and--volume=primary|joliet|udf -l, compared withtests/smoke/expected/(line endings ignored).--strictand--findmust succeed.fixtures/manifests/. Those hold the SHA-256 of the source files each image was built from, so the expectation is independent of this library. The El Torito default boot image is checked the same way.-f -) gives the same listing as the file--catis binary safe and returns the same bytes as extractionERROR:line, and never print a PHP warning or crash.UPDATE=1 tests/smoke/run.shregenerates the expected outputs. A full run takes about 85 s locally on Windows.New fixtures (
fixtures/build-fixtures.sh, Docker)rr_joliet.isorr_relocated.isorr_moved, CL/RE/PL)eltorito.isoudf201.isoudf_bridge.isopycdlib_udf260.isoAll 22 manifest comparisons pass, along with the boot image. The fixtures add about 9 MB to the repository, and
tests/smoke/expected/adds about 37k lines (mostly the 300-file listings in several formats).Limit: a real UDF 2.50+ image with a metadata partition could not be produced.
mkudffswrites 2.50 only for write-once media, which use a virtual allocation table, and the Linux driver can't write those. That feature is still covered only by the synthetic PHPUnit images, asfixtures/README.mdnotes.Verification
tests/smoke/run.sh: 321 checks pass withphp bin/isotooland withbin/isotool.baton Windows.composer run check: 614 tests (the fuzz test also covers the new fixtures), plus shellcheck and actionlint, all clean.🤖 Generated with Claude Code