X-Git-Url: https://plomlompom.com/repos/foo.html?a=blobdiff_plain;f=test.sh;h=f7d05e8532c517765c7167f205092489744f3458;hb=59775c37360985d582d798dc732dae5496a5b58b;hp=97d0fbf1ccd88f6bad431d69044d67b04854907e;hpb=4cfe7958e5fb106a9febfc224dca0bdb8324e3dd;p=redo-blog
diff --git a/test.sh b/test.sh
index 97d0fbf..f7d05e8 100755
--- a/test.sh
+++ b/test.sh
@@ -1,20 +1,64 @@
#!/bin/sh
-rm -rf test/test_dir
-./add_dir.sh test/test_dir
-cp test/test_files/test.md test/test_dir/
-cp test/test_files/foo.rst test/test_dir/
-cp test/test_files/bar\ baz.md test/test_dir/
-cd test/test_dir
-redo
-cd ../..
-for file in test/test_files/*.html; do
- cmp_file=`echo "$file" | sed 's/test_files/test_dir/'`
- printf "== %s diff test ==\n" "$cmp_file"
- diff "$file" "$cmp_file"
+uuid_test()
+{
+uuid_file="$1"
+printf "== %s UUID pattern match test ==\n" "$uuid_file"
+if cat "$uuid_file" | grep -Eq "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"; then
+ echo "== test SUCCESS =="
+else
+ echo "== test FAILURE =="
+fi
+}
+
+diff_test()
+{
+ expected_file="$1"
+ generated_file="$2"
+ printf "== %s diff test ==\n" "$generated_file"
+ diff "$expected_file" "$generated_file"
if [ "$?" = "0" ]; then
echo "== test SUCCESS =="
else
echo "== test FAILURE =="
fi
+}
+
+# Set up test directory.
+expected_files_dir="test/test_files"
+expected_files_dir_escaped="test\\/test_files"
+generated_files_dir="test/test_dir"
+generated_files_dir_escaped="test\\/test_dir"
+rm -rf "$generated_files_dir"
+./add_dir.sh "$generated_files_dir"
+working_dir=$(pwd)
+cp "$expected_files_dir"/test.md "$generated_files_dir"/
+cp "$expected_files_dir"/foo.rst "$generated_files_dir"/
+cp "$expected_files_dir"/bar\ baz.md "$generated_files_dir"/
+cd "$generated_files_dir"
+redo
+cd "$working_dir"
+
+# Simple file comparison tests.
+uuid_regex="^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
+uuid_test "$generated_files_dir""/uuid.meta"
+for file in "$expected_files_dir"/*.html "$expected_files_dir"/*.meta; do
+ sed_expression='s/'"$expected_files_dir_escaped"'/'"$generated_files_dir_escaped"'/'
+ cmp_file=`echo "$file" | sed "$sed_expression"`
+ if [ ! "$file" = "$expected_files_dir""/index.html" ] && \
+ echo "$file" | grep -q "\.html$"; then
+ uuid_test "${cmp_file%.html}.uuid"
+ fi
+ diff_test "$file" "$cmp_file"
done
+
+# To compare feed.xml, ignore all variable date and uuid strings.
+original_file="$generated_files_dir""/feed.xml"
+generated_file="$original_file".ignoring
+expected_file="$expected_files_dir""/feed.xml.ignoring"
+cat "$original_file" | \
+ sed 's/>[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}T[0-9]\{2\}:[0-9]\{2\}:[0-9]\{2\}Z>IGNORE' | \
+ sed 's/>urn:uuid:[0-9a-f]\{8\}-[0-9a-f]\{4\}-[0-9a-f]\{4\}-[0-9a-f]\{4\}-[0-9a-f]\{12\}>urn:uuid:IGNORE' \
+ > "$generated_file"
+diff_test "$expected_file" "$generated_file"
+rm "$generated_file"