{
"version": 1,
"cases": [
{
"name": "minimum",
"valid": true,
"entries": [
{"path": "icon.png", "type": "regular_file", "base64": "iVBORw0KGgoAAAANSUhEUgAABAAAAAQAAQAAAABXZhYuAAAAlklEQVR42u3BAQEAAACCIP+vbkhAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADvBgQeAAEN3jhkAAAAAElFTkSuQmCC"},
{"path": "shimpz.toml", "type": "regular_file", "text": "spec = 1\n"},
{"path": "pyproject.toml", "type": "regular_file", "text": "[project]\nname = \"hello\"\n"},
{"path": "actions/hello.py", "type": "regular_file", "text": "async def run():\n return \"hello\"\n"}
],
"sha256": "c07c74a30c42fd30f25bf956cab21860631a2b6693931887510e182129afbfde"
},
{
"name": "portable_ascii",
"valid": true,
"entries": [
{"path": "icon.png", "type": "regular_file", "base64": "iVBORw0KGgoAAAANSUhEUgAABAAAAAQAAQAAAABXZhYuAAAAlklEQVR42u3BAQEAAACCIP+vbkhAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADvBgQeAAEN3jhkAAAAAElFTkSuQmCC"},
{"path": "shimpz.toml", "type": "regular_file", "text": ""},
{"path": "pyproject.toml", "type": "regular_file", "text": ""},
{"path": "actions/Hello_world-1.py", "type": "regular_file", "text": ""},
{"path": "lib/pkg.name/__init__.py", "type": "regular_file", "text": ""},
{"path": "tests/test-hello_world.py", "type": "regular_file", "text": ""}
],
"sha256": "504dd48ad8219067a6decb7dad53b085e3e5f80455833df9aee377ace6edb0b5"
},
{
"name": "maximum_depth",
"valid": true,
"entries": [
{"path": "icon.png", "type": "regular_file", "base64": "iVBORw0KGgoAAAANSUhEUgAABAAAAAQAAQAAAABXZhYuAAAAlklEQVR42u3BAQEAAACCIP+vbkhAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADvBgQeAAEN3jhkAAAAAElFTkSuQmCC"},
{"path": "shimpz.toml", "type": "regular_file", "text": ""},
{"path": "pyproject.toml", "type": "regular_file", "text": ""},
{"path": "actions/hello.py", "type": "regular_file", "text": ""},
{"path": "lib/a/b/c/d/e/f/g/h/i/j/k/l/m/n/deep.py", "type": "regular_file", "text": "deep = True\n"}
],
"sha256": "09e0332034c3a94430daa750fbbc7fb541307fb5c88b772962ced3f19642b96f"
},
{
"name": "split_path_256_bytes",
"valid": true,
"entries": [
{"path": "icon.png", "type": "regular_file", "base64": "iVBORw0KGgoAAAANSUhEUgAABAAAAAQAAQAAAABXZhYuAAAAlklEQVR42u3BAQEAAACCIP+vbkhAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADvBgQeAAEN3jhkAAAAAElFTkSuQmCC"},
{"path": "shimpz.toml", "type": "regular_file", "text": ""},
{"path": "pyproject.toml", "type": "regular_file", "text": ""},
{"path": "actions/hello.py", "type": "regular_file", "text": ""},
{
"path": "lib/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc.py",
"type": "regular_file",
"text": ""
}
],
"expected_ustar": {
"path": "lib/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc.py",
"prefix": "lib/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
"name": "ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc.py"
},
"sha256": "41c47aefbfec8e7af1f60cd5949a937de0fc9e548be76630e8567dc7174b7dff"
},
{
"name": "non_ascii",
"valid": false,
"error": "non_ascii_path",
"entries": [
{"path": "shimpz.toml", "type": "regular_file", "text": ""},
{"path": "pyproject.toml", "type": "regular_file", "text": ""},
{"path": "actions/hello.py", "type": "regular_file", "text": ""},
{"path": "lib/café.py", "type": "regular_file", "text": ""}
]
},
{
"name": "case_collision",
"valid": false,
"error": "case_collision",
"entries": [
{"path": "shimpz.toml", "type": "regular_file", "text": ""},
{"path": "pyproject.toml", "type": "regular_file", "text": ""},
{"path": "actions/hello.py", "type": "regular_file", "text": ""},
{"path": "lib/Hello.py", "type": "regular_file", "text": ""},
{"path": "lib/hello.py", "type": "regular_file", "text": ""}
]
},
{
"name": "basename_101_bytes",
"valid": false,
"error": "ustar_name_too_long",
"entries": [
{"path": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "type": "regular_file", "text": ""}
]
},
{
"name": "unencodable_ustar_path",
"valid": false,
"error": "ustar_prefix_too_long",
"entries": [
{"path": "lib/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/b.py", "type": "regular_file", "text": ""}
]
},
{
"name": "nested_action",
"valid": false,
"error": "nested_action",
"entries": [
{"path": "shimpz.toml", "type": "regular_file", "text": ""},
{"path": "pyproject.toml", "type": "regular_file", "text": ""},
{"path": "actions/nested/hello.py", "type": "regular_file", "text": ""}
]
},
{
"name": "symlink",
"valid": false,
"error": "special_file",
"entries": [
{"path": "lib/link.py", "type": "symlink", "target": "../outside.py"}
]
},
{
"name": "hardlink",
"valid": false,
"error": "special_file",
"entries": [
{"path": "lib/link.py", "type": "hardlink", "target": "lib/real.py"}
]
},
{
"name": "absolute_path",
"valid": false,
"error": "absolute_path",
"entries": [
{"path": "/etc/passwd", "type": "regular_file", "text": ""}
]
},
{
"name": "traversal",
"valid": false,
"error": "traversal",
"entries": [
{"path": "lib/../escape.py", "type": "regular_file", "text": ""}
]
},
{
"name": "fifo",
"valid": false,
"error": "special_file",
"entries": [
{"path": "lib/pipe", "type": "fifo"}
]
},
{
"name": "character_device",
"valid": false,
"error": "special_file",
"entries": [
{"path": "lib/tty", "type": "character_device"}
]
},
{
"name": "block_device",
"valid": false,
"error": "special_file",
"entries": [
{"path": "lib/disk", "type": "block_device"}
]
},
{
"name": "socket",
"valid": false,
"error": "special_file",
"entries": [
{"path": "lib/service.sock", "type": "socket"}
]
},
{
"name": "single_file_oversize",
"valid": false,
"error": "single_file_too_large",
"entries": [
{"path": "icon.png", "type": "regular_file", "base64": "iVBORw0KGgoAAAANSUhEUgAABAAAAAQAAQAAAABXZhYuAAAAlklEQVR42u3BAQEAAACCIP+vbkhAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADvBgQeAAEN3jhkAAAAAElFTkSuQmCC"},
{"path": "shimpz.toml", "type": "regular_file", "text": ""},
{"path": "pyproject.toml", "type": "regular_file", "text": ""},
{"path": "actions/hello.py", "type": "regular_file", "repeat": {"byte": "x", "count": 8388609}}
]
},
{
"name": "package_oversize",
"valid": false,
"error": "package_too_large",
"entries": [
{"path": "icon.png", "type": "regular_file", "base64": "iVBORw0KGgoAAAANSUhEUgAABAAAAAQAAQAAAABXZhYuAAAAlklEQVR42u3BAQEAAACCIP+vbkhAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADvBgQeAAEN3jhkAAAAAElFTkSuQmCC"},
{"path": "shimpz.toml", "type": "regular_file", "repeat": {"byte": "a", "count": 8388608}},
{"path": "pyproject.toml", "type": "regular_file", "repeat": {"byte": "b", "count": 8388608}},
{"path": "actions/hello.py", "type": "regular_file", "repeat": {"byte": "c", "count": 8388608}},
{"path": "lib/data.bin", "type": "regular_file", "repeat": {"byte": "d", "count": 8388608}}
]
},
{
"name": "file_count_oversize",
"valid": false,
"error": "file_count_exceeded",
"entries": [
{"path": "icon.png", "type": "regular_file", "base64": "iVBORw0KGgoAAAANSUhEUgAABAAAAAQAAQAAAABXZhYuAAAAlklEQVR42u3BAQEAAACCIP+vbkhAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADvBgQeAAEN3jhkAAAAAElFTkSuQmCC"},
{"path": "shimpz.toml", "type": "regular_file", "text": ""},
{"path": "pyproject.toml", "type": "regular_file", "text": ""},
{"path": "actions/hello.py", "type": "regular_file", "text": ""}
],
"generate": [
{"root": "tests", "prefix": "case-", "suffix": ".py", "start": 0, "count": 9997, "width": 5, "text": ""}
]
},
{
"name": "depth_oversize",
"valid": false,
"error": "path_too_deep",
"entries": [
{"path": "lib/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/deep.py", "type": "regular_file", "text": ""}
]
},
{
"name": "path_oversize",
"valid": false,
"error": "path_too_long",
"entries": [
{"path": "lib/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/cccccccccccccccccccccccccccccccccccccccccccccccccccccccccc.py", "type": "regular_file", "text": ""}
]
},
{
"name": "extra_root",
"valid": false,
"error": "unknown_root",
"entries": [
{"path": "shimpz.toml", "type": "regular_file", "text": ""},
{"path": "pyproject.toml", "type": "regular_file", "text": ""},
{"path": "actions/hello.py", "type": "regular_file", "text": ""},
{"path": "README.md", "type": "regular_file", "text": ""}
]
},
{
"name": "missing_icon",
"valid": false,
"error": "missing_required_file",
"entries": [
{"path": "shimpz.toml", "type": "regular_file", "text": ""},
{"path": "pyproject.toml", "type": "regular_file", "text": ""},
{"path": "actions/hello.py", "type": "regular_file", "text": ""}
]
},
{
"name": "icon_oversize",
"valid": false,
"error": "icon_too_large",
"entries": [
{"path": "icon.png", "type": "regular_file", "repeat": {"byte": "x", "count": 1048577}},
{"path": "shimpz.toml", "type": "regular_file", "text": ""},
{"path": "pyproject.toml", "type": "regular_file", "text": ""},
{"path": "actions/hello.py", "type": "regular_file", "text": ""}
]
},
{
"name": "icon_wrong_dimensions",
"valid": false,
"error": "invalid_icon",
"entries": [
{"path": "icon.png", "type": "regular_file", "base64": "iVBORw0KGgoAAAANSUhEUgAAAgAAAAIAAQAAAADcA+lXAAAANklEQVR42u3BAQEAAACCIP+vbkhAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8G4IAAAFjdVCkAAAAAElFTkSuQmCC"},
{"path": "shimpz.toml", "type": "regular_file", "text": ""},
{"path": "pyproject.toml", "type": "regular_file", "text": ""},
{"path": "actions/hello.py", "type": "regular_file", "text": ""}
]
},
{
"name": "icon_missing_ihdr",
"valid": false,
"error": "invalid_icon",
"entries": [
{"path": "icon.png", "type": "regular_file", "base64": "iVBORw0KGgoAAAAASURBVDWvBh4AAAAASUVORK5CYII="},
{"path": "shimpz.toml", "type": "regular_file", "text": ""},
{"path": "pyproject.toml", "type": "regular_file", "text": ""},
{"path": "actions/hello.py", "type": "regular_file", "text": ""}
]
},
{
"name": "animated_icon",
"valid": false,
"error": "animated_icon",
"entries": [
{"path": "icon.png", "type": "regular_file", "base64": "iVBORw0KGgoAAAANSUhEUgAABAAAAAQAAQAAAABXZhYuAAAACGFjVEwAAAABAAAAALQt6aAAAACWSURBVHja7cEBAQAAAIIg/69uSEABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO8GBB4AAQ3eOGQAAAAASUVORK5CYII="},
{"path": "shimpz.toml", "type": "regular_file", "text": ""},
{"path": "pyproject.toml", "type": "regular_file", "text": ""},
{"path": "actions/hello.py", "type": "regular_file", "text": ""}
]
},
{
"name": "icon_bad_crc",
"valid": false,
"error": "invalid_icon",
"entries": [
{"path": "icon.png", "type": "regular_file", "base64": "iVBORw0KGgoAAAANSUhEUgAABAAAAAQAAQAAAABXZhYuAAAAlklEQVR42u3BAQEAAACCIP+vbkhAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADvBgQeAAEN3jhkAAAAAElFTkWuQmCC"},
{"path": "shimpz.toml", "type": "regular_file", "text": ""},
{"path": "pyproject.toml", "type": "regular_file", "text": ""},
{"path": "actions/hello.py", "type": "regular_file", "text": ""}
]
},
{
"name": "missing_manifest",
"valid": false,
"error": "missing_required_file",
"entries": [
{"path": "icon.png", "type": "regular_file", "base64": "iVBORw0KGgoAAAANSUhEUgAABAAAAAQAAQAAAABXZhYuAAAAlklEQVR42u3BAQEAAACCIP+vbkhAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADvBgQeAAEN3jhkAAAAAElFTkSuQmCC"},
{"path": "pyproject.toml", "type": "regular_file", "text": ""},
{"path": "actions/hello.py", "type": "regular_file", "text": ""}
]
},
{
"name": "missing_pyproject",
"valid": false,
"error": "missing_required_file",
"entries": [
{"path": "icon.png", "type": "regular_file", "base64": "iVBORw0KGgoAAAANSUhEUgAABAAAAAQAAQAAAABXZhYuAAAAlklEQVR42u3BAQEAAACCIP+vbkhAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADvBgQeAAEN3jhkAAAAAElFTkSuQmCC"},
{"path": "shimpz.toml", "type": "regular_file", "text": ""},
{"path": "actions/hello.py", "type": "regular_file", "text": ""}
]
},
{
"name": "missing_action",
"valid": false,
"error": "missing_action",
"entries": [
{"path": "icon.png", "type": "regular_file", "base64": "iVBORw0KGgoAAAANSUhEUgAABAAAAAQAAQAAAABXZhYuAAAAlklEQVR42u3BAQEAAACCIP+vbkhAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADvBgQeAAEN3jhkAAAAAElFTkSuQmCC"},
{"path": "shimpz.toml", "type": "regular_file", "text": ""},
{"path": "pyproject.toml", "type": "regular_file", "text": ""}
]
}
]
}