X-Git-Url: https://plomlompom.com/repos/?p=redo-blog;a=blobdiff_plain;f=test.sh;h=025ebc4d5a7a0d7f8922ea7c234181eaaae30f53;hp=f7d05e8532c517765c7167f205092489744f3458;hb=f58e6d66bc1228640227e9a95a305f8213a7103a;hpb=59775c37360985d582d798dc732dae5496a5b58b diff --git a/test.sh b/test.sh index f7d05e8..025ebc4 100755 --- a/test.sh +++ b/test.sh @@ -2,13 +2,13 @@ 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 + 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() @@ -26,39 +26,63 @@ diff_test() # 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" +cp "$working_dir/$expected_files_dir"/test.md . +redo +cp "$working_dir/$expected_files_dir"/bar\ baz.md . +redo +cp "$working_dir/$expected_files_dir"/foo.rst . +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 +# Compare metadata files. +uuid_test "$generated_files_dir""/metadata/uuid" +for file in "$expected_files_dir"/metadata/*; do + basename=$(basename "$file") + cmp_file="$generated_files_dir/metadata/$basename" diff_test "$file" "$cmp_file" done -# To compare feed.xml, ignore all variable date and uuid strings. +# Compare generated HTML files. Ignore variable dates. +for file in "$expected_files_dir"/*.html.ignoring; do + basename=$(basename "$file") + cmp_file="$generated_files_dir/${basename%.ignoring}" + if [ ! "$file" = "$expected_files_dir""/index.html.ignoring" ]; then + uuid_test "${generated_files_dir}/metadata/${basename%.html.ignoring}.uuid" + fi + generated_file="$cmp_file".ignoring + cat "$cmp_file" | \ + sed 's/[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}/IGNORE/g' | \ + sed 's/IGNORET[0-9]\{2\}:[0-9]\{2\}:[0-9]\{2\}Z/IGNORE/g' | \ + sed 's/IGNORE [0-9]\{2\}:[0-9]\{2\}:[0-9]\{2\} (UTC)/IGNORE/g' \ + > "$generated_file" + diff_test "$file" "$generated_file" +done + +# Compare feed files. Ignore variable dates and UUIDs. 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\}ZIGNOREurn: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" + +# Check symbolic links. +for file in "$generated_files_dir"/feed.xml "$generated_files_dir"/*.html; do + basename=$(basename "$file") + linkname=$(readlink "$generated_files_dir/public/$basename") + printf "== public/%s symbolic link test ==\n" "$basename" + if [ "$working_dir/$generated_files_dir/$basename" = "$linkname" ]; then + echo "== test SUCCESS ==" + else + echo "== test FAILURE ==" + fi +done