home · contact · privacy
Add feed.xml test.
[redo-blog] / test.sh
diff --git a/test.sh b/test.sh
index c64c2e935f5281bb134b518f7d0df9f743841756..cf6e60c7f8f8e9ad1a16dceb6663178bdfa631ea 100755 (executable)
--- a/test.sh
+++ b/test.sh
@@ -1,5 +1,29 @@
 #!/bin/sh
 
+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()
+{
+  generated_file="$1"
+  expected_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
+}
+
 rm -rf test/test_dir
 ./add_dir.sh test/test_dir
 cp test/test_files/test.md test/test_dir/
@@ -8,20 +32,22 @@ cp test/test_files/bar\ baz.md test/test_dir/
 cd test/test_dir
 redo
 cd ../..
+uuid_regex="^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
 for file in test/test_files/*.html test/test_files/*.meta; do
   cmp_file=`echo "$file" | sed 's/test_files/test_dir/'`
-  printf "== %s diff test ==\n" "$cmp_file"
-  diff "$file" "$cmp_file"
-  if [ "$?" = "0" ]; then
-    echo "== test SUCCESS =="
-  else
-    echo "== test FAILURE =="
+  if [ ! "$file" = "test/test_files/index.html" ] && \
+      echo "$file" | grep -q "\.html$"; then
+    uuid_test "${cmp_file%.html}.uuid"
   fi
+  diff_test "$file" "$cmp_file"
 done
-uuid_file=test/test_dir/uuid.meta
-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
+uuid_test "test/test_dir/uuid.meta"
+original_file="test/test_dir/feed.xml"
+generated_file="$original_file".ignoring
+expected_file="test/test_files/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 "$generated_file" "$expected_file"
+rm "$generated_file"