test(09-01): add directory test cases to Kotlin cross-validation script
- Test 6: nested directory extraction (3+ levels deep, 4 files) - Test 7: empty directory creation without decryption errors - Test 8: mixed standalone files + directory pack/unpack - All 5 original test cases preserved unchanged Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -246,6 +246,70 @@ java -jar "$JAR" "$TMPDIR/test5.archive" "$TMPDIR/output5/"
|
||||
verify_file "$ORIG5" "$TMPDIR/output5/large.bin" "large.bin (100 KB random)"
|
||||
echo ""
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Test case 6: Directory with nested files
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
echo -e "${BOLD}Test 6: Directory with nested files${NC}"
|
||||
|
||||
mkdir -p "$TMPDIR/testdir6/subdir1/deep"
|
||||
mkdir -p "$TMPDIR/testdir6/subdir2"
|
||||
echo "file in root" > "$TMPDIR/testdir6/root.txt"
|
||||
echo "file in subdir1" > "$TMPDIR/testdir6/subdir1/sub1.txt"
|
||||
echo "file in deep" > "$TMPDIR/testdir6/subdir1/deep/deep.txt"
|
||||
echo "file in subdir2" > "$TMPDIR/testdir6/subdir2/sub2.txt"
|
||||
|
||||
"$ARCHIVER" pack "$TMPDIR/testdir6" -o "$TMPDIR/test6.archive"
|
||||
java -jar "$JAR" "$TMPDIR/test6.archive" "$TMPDIR/output6/"
|
||||
|
||||
verify_file "$TMPDIR/testdir6/root.txt" "$TMPDIR/output6/testdir6/root.txt" "testdir6/root.txt"
|
||||
verify_file "$TMPDIR/testdir6/subdir1/sub1.txt" "$TMPDIR/output6/testdir6/subdir1/sub1.txt" "testdir6/subdir1/sub1.txt"
|
||||
verify_file "$TMPDIR/testdir6/subdir1/deep/deep.txt" "$TMPDIR/output6/testdir6/subdir1/deep/deep.txt" "testdir6/subdir1/deep/deep.txt"
|
||||
verify_file "$TMPDIR/testdir6/subdir2/sub2.txt" "$TMPDIR/output6/testdir6/subdir2/sub2.txt" "testdir6/subdir2/sub2.txt"
|
||||
echo ""
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Test case 7: Directory with empty subdirectory
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
echo -e "${BOLD}Test 7: Directory with empty subdirectory${NC}"
|
||||
|
||||
mkdir -p "$TMPDIR/testdir7/populated"
|
||||
mkdir -p "$TMPDIR/testdir7/empty_subdir"
|
||||
echo "content" > "$TMPDIR/testdir7/populated/file.txt"
|
||||
|
||||
"$ARCHIVER" pack "$TMPDIR/testdir7" -o "$TMPDIR/test7.archive"
|
||||
java -jar "$JAR" "$TMPDIR/test7.archive" "$TMPDIR/output7/"
|
||||
|
||||
# Verify file content
|
||||
verify_file "$TMPDIR/testdir7/populated/file.txt" "$TMPDIR/output7/testdir7/populated/file.txt" "testdir7/populated/file.txt"
|
||||
|
||||
# Verify empty directory exists
|
||||
if [ -d "$TMPDIR/output7/testdir7/empty_subdir" ]; then
|
||||
pass "testdir7/empty_subdir (empty directory created)"
|
||||
else
|
||||
fail "testdir7/empty_subdir" "Empty directory not found in output"
|
||||
fi
|
||||
echo ""
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Test case 8: Mixed standalone files and directory
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
echo -e "${BOLD}Test 8: Mixed standalone files and directory${NC}"
|
||||
|
||||
ORIG8_FILE="$TMPDIR/standalone.txt"
|
||||
echo "standalone content" > "$ORIG8_FILE"
|
||||
mkdir -p "$TMPDIR/testdir8"
|
||||
echo "dir content" > "$TMPDIR/testdir8/inner.txt"
|
||||
|
||||
"$ARCHIVER" pack "$ORIG8_FILE" "$TMPDIR/testdir8" -o "$TMPDIR/test8.archive"
|
||||
java -jar "$JAR" "$TMPDIR/test8.archive" "$TMPDIR/output8/"
|
||||
|
||||
verify_file "$ORIG8_FILE" "$TMPDIR/output8/standalone.txt" "standalone.txt (standalone file)"
|
||||
verify_file "$TMPDIR/testdir8/inner.txt" "$TMPDIR/output8/testdir8/inner.txt" "testdir8/inner.txt (from directory)"
|
||||
echo ""
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Summary
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user