feat: extract complete multi-cabinet sets
This commit is contained in:
34
tests/fixtures/README.md
vendored
34
tests/fixtures/README.md
vendored
@@ -133,6 +133,40 @@ required `0xFF` byte after each CFDATA block in memory. These are CAB-level
|
||||
codec fixtures, not OneNote exports, and do not establish producer-specific
|
||||
`.onepkg` compatibility.
|
||||
|
||||
## libmspack five-part CAB fixture
|
||||
|
||||
`libmspack-multi-basic-pt1.cab.b64` through
|
||||
`libmspack-multi-basic-pt5.cab.b64` are byte-for-byte copies of libmspack's
|
||||
[`multi_basic_pt*.cab`](https://github.com/kyz/libmspack/tree/55d501976171397ccd5d5a7a1ca7da065b1d9a06/libmspack/test/test_files/cabd)
|
||||
fixtures at commit
|
||||
[`55d501976171397ccd5d5a7a1ca7da065b1d9a06`](https://github.com/kyz/libmspack/commit/55d501976171397ccd5d5a7a1ca7da065b1d9a06).
|
||||
The immediate reviewed source is LGPL-2.1-only; its exact licence text is in
|
||||
`LICENSES/libmspack-LGPL-2.1.txt`.
|
||||
|
||||
The CAB headers name the parts `cabd_multi_basic_pt1.cab` through
|
||||
`cabd_multi_basic_pt5.cab`. They form set ID 12345, indexes 0 through 4, and
|
||||
split one 190-byte uncompressed CFDATA block across all five cabinets. The
|
||||
three spanning files contain the five ASCII lines
|
||||
`This is the data from cabinet part N.` (plus line feeds), grouped as parts
|
||||
1–2, part 3, and parts 4–5.
|
||||
|
||||
- Part 1: 221 bytes; SHA-256
|
||||
`3658aaf68b0d538a5b321919f1de3eb1bcc258cba44e97b07a1938230995c632`.
|
||||
- Part 2: 274 bytes; SHA-256
|
||||
`ce5fac4470fb850ae593de70ab03d3493069b77f8f81376216768bbf74e52321`.
|
||||
- Part 3: 274 bytes; SHA-256
|
||||
`e58b57f63ac0858effa75ceb6f242b447fbce6a910d3840c37228fdbc9e7bc95`.
|
||||
- Part 4: 274 bytes; SHA-256
|
||||
`fbcd45e503c3cffd5f5946ccc45bbc46b9884fe47abef7d09247154c7f8148fb`.
|
||||
- Part 5: 221 bytes; SHA-256
|
||||
`16ebbb274c8dc09f98415795212683b9ea8b2d6450080a79ab63cd5cdbac7cc4`.
|
||||
|
||||
Tests retain all hashes and exercise unordered selection, strict link/set/order
|
||||
validation, `0xFFFD`/`0xFFFE`/`0xFFFF` spanning-file reconciliation, split-block
|
||||
reassembly, reserve/compression continuity, aggregate limits, and cancellation.
|
||||
These are generic CAB fixtures, not OneNote exports, and do not establish
|
||||
producer-specific `.onepkg` compatibility.
|
||||
|
||||
## Distribution policy
|
||||
|
||||
The decoded fixture bytes are used only by tests. Vite does not copy them into
|
||||
|
||||
1
tests/fixtures/libmspack-multi-basic-pt1.cab.b64
vendored
Normal file
1
tests/fixtures/libmspack-multi-basic-pt1.cab.b64
vendored
Normal file
@@ -0,0 +1 @@
|
||||
TVNDRgAAAADdAAAAAAAAAGEAAAAAAAAAAwEBAAMAAgA5MAAAY2FiZF9tdWx0aV9iYXNpY19wdDIuY2FiAGJhc2ljIG11bHRpcGFydCB0ZXN0IHBhcnQgMgCvAAAAAQAAAEwAAAAAAAAA/v9sIrpZIAB0ZXN0MS50eHQAJgAAAEwAAAD+/2wiulkgAHRlc3QyLnR4dABMAAAAcgAAAP7/bCK6WSAAdGVzdDMudHh0AAAAAAAmAAAAVGhpcyBpcyB0aGUgZGF0YSBmcm9tIGNhYmluZXQgcGFydCAxLgo=
|
||||
1
tests/fixtures/libmspack-multi-basic-pt2.cab.b64
vendored
Normal file
1
tests/fixtures/libmspack-multi-basic-pt2.cab.b64
vendored
Normal file
@@ -0,0 +1 @@
|
||||
TVNDRgAAAAASAQAAAAAAAJYAAAAAAAAAAwEBAAMAAwA5MAEAY2FiZF9tdWx0aV9iYXNpY19wdDEuY2FiAGJhc2ljIG11bHRpcGFydCB0ZXN0IHBhcnQgMQBjYWJkX211bHRpX2Jhc2ljX3B0My5jYWIAYmFzaWMgbXVsdGlwYXJ0IHRlc3QgcGFydCAzAOQAAAABAAAATAAAAAAAAAD//2wiulkgAHRlc3QxLnR4dAAmAAAATAAAAP//bCK6WSAAdGVzdDIudHh0AEwAAAByAAAA//9sIrpZIAB0ZXN0My50eHQAAAAAACYAAABUaGlzIGlzIHRoZSBkYXRhIGZyb20gY2FiaW5ldCBwYXJ0IDIuCg==
|
||||
1
tests/fixtures/libmspack-multi-basic-pt3.cab.b64
vendored
Normal file
1
tests/fixtures/libmspack-multi-basic-pt3.cab.b64
vendored
Normal file
@@ -0,0 +1 @@
|
||||
TVNDRgAAAAASAQAAAAAAAJYAAAAAAAAAAwEBAAMAAwA5MAIAY2FiZF9tdWx0aV9iYXNpY19wdDIuY2FiAGJhc2ljIG11bHRpcGFydCB0ZXN0IHBhcnQgMgBjYWJkX211bHRpX2Jhc2ljX3B0NC5jYWIAYmFzaWMgbXVsdGlwYXJ0IHRlc3QgcGFydCA0AOQAAAABAAAATAAAAAAAAAD//2wiulkgAHRlc3QxLnR4dAAmAAAATAAAAP//bCK6WSAAdGVzdDIudHh0AEwAAAByAAAA//9sIrpZIAB0ZXN0My50eHQAAAAAACYAAABUaGlzIGlzIHRoZSBkYXRhIGZyb20gY2FiaW5ldCBwYXJ0IDMuCg==
|
||||
1
tests/fixtures/libmspack-multi-basic-pt4.cab.b64
vendored
Normal file
1
tests/fixtures/libmspack-multi-basic-pt4.cab.b64
vendored
Normal file
@@ -0,0 +1 @@
|
||||
TVNDRgAAAAASAQAAAAAAAJYAAAAAAAAAAwEBAAMAAwA5MAMAY2FiZF9tdWx0aV9iYXNpY19wdDMuY2FiAGJhc2ljIG11bHRpcGFydCB0ZXN0IHBhcnQgMwBjYWJkX211bHRpX2Jhc2ljX3B0NS5jYWIAYmFzaWMgbXVsdGlwYXJ0IHRlc3QgcGFydCA1AOQAAAABAAAATAAAAAAAAAD//2wiulkgAHRlc3QxLnR4dAAmAAAATAAAAP//bCK6WSAAdGVzdDIudHh0AEwAAAByAAAA//9sIrpZIAB0ZXN0My50eHQAAAAAACYAAABUaGlzIGlzIHRoZSBkYXRhIGZyb20gY2FiaW5ldCBwYXJ0IDQuCg==
|
||||
1
tests/fixtures/libmspack-multi-basic-pt5.cab.b64
vendored
Normal file
1
tests/fixtures/libmspack-multi-basic-pt5.cab.b64
vendored
Normal file
@@ -0,0 +1 @@
|
||||
TVNDRgAAAADdAAAAAAAAAGEAAAAAAAAAAwEBAAMAAQA5MAQAY2FiZF9tdWx0aV9iYXNpY19wdDQuY2FiAGJhc2ljIG11bHRpcGFydCB0ZXN0IHBhcnQgNACvAAAAAQAAAEwAAAAAAAAA/f9sIrpZIAB0ZXN0MS50eHQAJgAAAEwAAAD9/2wiulkgAHRlc3QyLnR4dABMAAAAcgAAAP3/bCK6WSAAdGVzdDMudHh0AAAAAAAmAL4AVGhpcyBpcyB0aGUgZGF0YSBmcm9tIGNhYmluZXQgcGFydCA1Lgo=
|
||||
@@ -77,6 +77,7 @@ describe('release archive', () => {
|
||||
'LICENSES/compcol-MIT.txt',
|
||||
'LICENSES/MPL-2.0.txt',
|
||||
'LICENSES/THIRD-PARTY-LICENSES.txt',
|
||||
'LICENSES/libmspack-LGPL-2.1.txt',
|
||||
'LICENSES/lzxd-MIT.txt',
|
||||
'LICENSES/rust-cab-MIT.txt',
|
||||
'THIRD_PARTY_NOTICES.md',
|
||||
@@ -100,6 +101,11 @@ describe('release archive', () => {
|
||||
.update(files['LICENSES/compcol-MIT.txt']!)
|
||||
.digest('hex')
|
||||
).toBe('a7009ce74b33a2afcf9ab38007bf3c8f5020d9b816dc5fc7296bf17e6d7dc796');
|
||||
expect(
|
||||
createHash('sha256')
|
||||
.update(files['LICENSES/libmspack-LGPL-2.1.txt']!)
|
||||
.digest('hex')
|
||||
).toBe('a190dc9c8043755d90f8b0a75fa66b9e42d4af4c980bf5ddc633f0124db3cee7');
|
||||
expect(
|
||||
files['LICENSES/THIRD-PARTY-LICENSES.txt']!.toString('utf8')
|
||||
).toContain('fflate@0.8.3');
|
||||
|
||||
Reference in New Issue
Block a user