Skip to content
Novus Examples
tar3.5 KB

TAR - Old GNU Sparse File

A 1 MiB file with a 1047552-byte hole in the middle, stored the old GNU way: typeflag 'S' and a four-slot sparse map written into the header block itself. Only 1024 bytes are actually in the stream, so a reader that ignores the map reconstructs a 1024-byte file instead of a 1 MiB one.

Archive contents — 2 entriestar
  • README.txt
  • sparse-1mib.bin

Specifications

Seed
20260807
Tar Format
old GNU (magic "ustar \0")
Members
2
Typeflag
'S' (GNUTYPE_SPARSE)
Logical Bytes
1048576
Stored Bytes
1024
Sparse Segments
2
Segment Map
0+512, 1048064+512
Hole Bytes
1047552
Map Location
in the header itself, at offsets 386-482

Testing contract

Expected to pass
Scenario
Extract data/sparse-1mib.bin and measure its logical length and its contents.
Expected result
The file is exactly 1048576 bytes; the first and last 512 bytes carry the marker text and every byte between offset 512 and offset 1048064 is zero.

What is a .tar file?

TAR (Tape Archive) is a Unix archive format that concatenates files with their metadata into a single uncompressed stream of fixed-size blocks. It preserves permissions, ownership, and directory structure but applies no compression itself. It is usually paired with a compressor such as gzip or xz.

How to use this file

Use an example TAR to test archive extraction, metadata and permission preservation, streaming block parsing, and pipelines that combine tar with external compression.

How to use this file for testing

“TAR - Old GNU Sparse File” is a deterministic Novus Examples fixture for Conversion testing, Metadata testing. The same content exported across many formats and linked as a group, so you can convert one and diff against the expected twin.

Documented properties for this file: seed 20260807. Compare results against paired or grouped companions on this page when present (clean↔damaged, searchable↔scanned, or format twins) so scores stay reproducible across runs.

Download the file once, keep the path stable in CI or local scripts, and treat the spec table as the contract: dimensions, seeds, field lists, and roles are intentional. Corrupt or invalid samples are labelled as such — expect parsers to fail loudly rather than silently accept them.

Archive fixtures are documented down to their member list (shown on this page) and are deliberately safe — no zip bombs, executables, or hidden payloads. Test extractors against nested, unicode, empty, and encrypted variants.

Code examples

tar -tf oldgnu-sparse.tar       # list
tar -xf oldgnu-sparse.tar -C out/  # extract

Generated by generation/archives_p7.py. Free for any use, no attribution required — license.