Unit tests for the XISOSharp.Core library. Uses xUnit to verify the correctness of the C# implementation against the original extract-xiso reference.
- AVL Tree — insertion, balancing, left/right rotations, fetching, traversal (prefix/infix/postfix)
- AVL Tree edge cases — empty trees, duplicate keys, single node, degenerate inserts
- Boyer-Moore — pattern initialization, search, media-enable pattern matching
- Types —
ExtractError,ExtractErrorException,ExtractMode,CreateList - Constants — magic values, header data, offsets, padding constants
- DirEntry — directory entry structure and serialization
- FileTimeHelper — Unix epoch to Windows FILETIME conversion
- Logger — output suppression flags
- XisoReader — header verification and traversal
- XisoInfo — volume metadata, directory listing, entry info lookup
- XisoReader.Tree — recursive tree listing with sizes
- XisoReader.CopyOut — single file and directory extraction
- XisoReader.CopyIn / XisoPatcher — in-place patching: replace/add, table moves, errors, backup,
.xbe,--copy-inCLI - DirectoryEntryTableWriter — table offsets, record encoding, byte-identity with writer output
- XisoReader.ComputeFileHash — MD5 and SHA-256 per-file hashing
- XisoReader.ComputeDirectoryHashes — batch hashing of all files in a directory
- XisoReader.AuditXiso — deep integrity audit (header, tree, sectors, cycles)
- Snapshot —
Fixtures/test_fixture.iso: deterministic create (fileTime: 0) is byte-identical across runs and to the reference; extract/rewrite round-trips match SHA-256 per file - Corruption resilience — truncated tables, manipulated header pointers, out-of-image extents,
uint.MaxValuesizes, invalid filenames, >4 GB inputs fail fast with named errors - Reader gap-closers — multi-sector tables, disc-layout probes, block-device errors, sentinel shapes (line coverage:
XisoReader95.9%,XisoWriter86.6%,AvlTree100%) - Legacy interop — images created by reference extract-xiso 2.7.1 round-trip through
llCompatextract/list/rewrite - File copier —
XisoFileCopier.CopyExactsize matrix, truncation counts, short-read stitching, pooled buffers, mid-copy cancel, per-chunkFileProgresson copy-out/unpack - Filesystem destinations —
IFilesystem/LocalFilesystem/MemoryFilesystemsemantics, genericUnpackImagebyte-parity with the legacy disk unpack, resume/continue-on-error/cancel/truncation through custom destinations - Image explorer —
XisoExplorerload/navigate/copy-out/hash/XEX/path helpers over.isoand.cso(engine behind the Tester's Explore tab) - Image splitting —
XisoSplittersplit/halves/join round-trips, sector alignment, guards, progress/cancel,split/joinCLI verbs - In-place repair —
XisoRepairerclass-C fixes (reserved bits, tag, separator renames + collision refusal), convergence, backup/dry-run semantics, CISO/split refusals,--repairCLI - Salvage rebuild —
XisoSalvagercarry/drop exactness (forged sizes/sectors, real truncation, cycles, depth gate), CISO→plain ISO, re-salvage stability,--salvage/--repair-outCLI - Executable info —
GetXexInfo/GetXbeInfopath + stream overloads, all-fields parsing, cert bounds, explorer surface, CLI end-to-end - Disc identity —
VolumeInfo.DiscFormatacross RAW/GLOBAL/XGD3/Hybrid/XGD1/unknown layouts
dotnet test
MIT