classify-recovered-archives/tests/smoke-test.zsh
Reindl David (IT-PTR-CEN2-SL10) 94bfc77c11 intial state
Co-authored-by: Copilot <copilot@github.com>
2026-05-02 17:06:52 +02:00

55 lines
2.6 KiB
Bash
Executable File

#!/bin/zsh
emulate -L zsh
setopt no_unset pipefail
typeset -gr TEST_ROOT=${0:A:h:h}
typeset -gr FIXTURE_DIR="$TEST_ROOT/tmp-fixture"
cleanup() {
rm -rf -- "$FIXTURE_DIR"
}
trap cleanup EXIT INT TERM
mkdir -p "$FIXTURE_DIR/docx-src/word" \
"$FIXTURE_DIR/docx-src/docProps" \
"$FIXTURE_DIR/iwork-src/Index" \
"$FIXTURE_DIR/iwork-src/Metadata" \
"$FIXTURE_DIR/numbers-src/Index/Tables" \
"$FIXTURE_DIR/numbers-src/Metadata" \
"$FIXTURE_DIR/pages-src/Metadata" \
"$FIXTURE_DIR/pages-src/Pages" \
"$FIXTURE_DIR/unknown-src" \
"$FIXTURE_DIR/tar-src"
printf '%s' '<?xml version="1.0" encoding="UTF-8"?><Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types"></Types>' > "$FIXTURE_DIR/docx-src/[Content_Types].xml"
printf '%s' '<?xml version="1.0" encoding="UTF-8"?><cp:coreProperties xmlns:cp="http://schemas.openxmlformats.org/package/2006/metadata/core-properties" xmlns:dc="http://purl.org/dc/elements/1.1/"><dc:title>Recovered Word Title</dc:title></cp:coreProperties>' > "$FIXTURE_DIR/docx-src/docProps/core.xml"
printf '%s' 'stub' > "$FIXTURE_DIR/docx-src/word/document.xml"
printf '%s' '<?xml version="1.0" encoding="UTF-8"?><plist version="1.0"><dict><key>kMDItemTitle</key><string>Recovered Pages Title</string></dict></plist>' > "$FIXTURE_DIR/pages-src/Metadata/DocumentProperties.plist"
printf '%s' 'stub' > "$FIXTURE_DIR/pages-src/Pages/Document.iwa"
printf '%s' '<?xml version="1.0" encoding="UTF-8"?><plist version="1.0"><dict><key>isMultiPage</key><false/></dict></plist>' > "$FIXTURE_DIR/iwork-src/Metadata/Properties.plist"
printf '%s' 'stub' > "$FIXTURE_DIR/iwork-src/Index/Document.iwa"
printf '%s' '<?xml version="1.0" encoding="UTF-8"?><plist version="1.0"><dict><key>isMultiPage</key><false/></dict></plist>' > "$FIXTURE_DIR/numbers-src/Metadata/Properties.plist"
printf '%s' 'stub' > "$FIXTURE_DIR/numbers-src/Index/Document.iwa"
printf '%s' 'stub' > "$FIXTURE_DIR/numbers-src/Index/Tables/DataList.iwa"
printf '%s' 'mystery' > "$FIXTURE_DIR/unknown-src/file.bin"
printf '%s' 'hello tar' > "$FIXTURE_DIR/tar-src/readme.txt"
printf '%s' '%PDF-1.4
%%EOF
' > "$FIXTURE_DIR/sample.pdf"
(cd "$FIXTURE_DIR/docx-src" && zip -qr ../lost-doc.zip .)
(cd "$FIXTURE_DIR/iwork-src" && zip -qr ../lost-iwork.zip .)
(cd "$FIXTURE_DIR/numbers-src" && zip -qr ../lost-numbers.zip .)
(cd "$FIXTURE_DIR/pages-src" && zip -qr ../lost-pages.zip .)
(cd "$FIXTURE_DIR/unknown-src" && zip -qr ../mystery.zip .)
tar -czf "$FIXTURE_DIR/archive.gz" -C "$FIXTURE_DIR/tar-src" .
gzip -c "$FIXTURE_DIR/sample.pdf" > "$FIXTURE_DIR/sample.gz"
cd "$TEST_ROOT"
./classify-recovered-archives.zsh --dry-run --verbose "$FIXTURE_DIR"