From 856c6bb45b57e2a95d4280bedd7dfa3ec39c1bd3 Mon Sep 17 00:00:00 2001 From: Pat Hawks Date: Tue, 17 Jul 2018 10:50:18 -0500 Subject: [PATCH 1/3] Add framework for regression testing --- bench | 6 +++++- regression | 39 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+), 1 deletion(-) create mode 100755 regression diff --git a/bench b/bench index 27e4793..db3e6de 100755 --- a/bench +++ b/bench @@ -47,12 +47,16 @@ if [[ -d "$(pwd)/.sass-cache" ]]; then rm -rf "$(pwd)/.sass-cache" fi +if [[ -z $DESTINATION_DIR ]]; then + DESTINATION_DIR="destination" +fi + for SITE in $(cat "site-list"); do echo "" echo "Sampling: $SITE" echo "" SOURCE="$TMPDIR/source/${SITE##*/}" - DESTINATION=${SOURCE/source/destination} + DESTINATION=${SOURCE/source/$DESTINATION_DIR} if [[ ! -d $SOURCE ]]; then git clone --recurse-submodules -q "$SITE" "$SOURCE" fi diff --git a/regression b/regression new file mode 100755 index 0000000..410928e --- /dev/null +++ b/regression @@ -0,0 +1,39 @@ +#!/usr/bin/env bash + +# After running `./bench` twice on different versions of Jekyll, this command +# will diff the different builds of each site and complain if they are not +# identical. This will help catch unintentional changes in Jekyll's behavior. + +set -e +ulimit -t 1200 + +function checkFailedBuild { + if [[ $? != 0 ]]; then + echo "Build failed" + exit 1 + fi +} + +trap checkFailedBuild Exit + +# Create tmp/ directory +TMPDIR="$(pwd)/sites" +if [[ -d $TMPDIR ]]; then + rm -rf "$TMPDIR" +fi + +SUCCESS=0 + +for SITE in $(cat "site-list"); do + echo "" + echo "Diffing: $SITE" + echo "" + SOURCE="$TMPDIR/$OLD/${SITE##*/}" + DESTINATION=${SOURCE/$OLD/$NEW} + diff -r $SOURCE $DESTINATION + if (( $? != 0 )); then + SUCCESS=1 + fi +done + +exit $SUCCESS From 01de8a30bcebf9bb9f234b6a44d44e0733724eff Mon Sep 17 00:00:00 2001 From: Pat Hawks Date: Tue, 17 Jul 2018 11:27:08 -0500 Subject: [PATCH 2/3] Do NOT delete the old site when building the new one! --- bench | 3 --- regression | 5 +---- 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/bench b/bench index db3e6de..b88569a 100755 --- a/bench +++ b/bench @@ -36,9 +36,6 @@ fi # Create tmp/ directory TMPDIR="$(pwd)/sites" -if [[ -d $TMPDIR ]]; then - rm -rf "$TMPDIR" -fi mkdir -p "$TMPDIR/source" mkdir -p "$TMPDIR/destination" diff --git a/regression b/regression index 410928e..2170f5c 100755 --- a/regression +++ b/regression @@ -18,9 +18,6 @@ trap checkFailedBuild Exit # Create tmp/ directory TMPDIR="$(pwd)/sites" -if [[ -d $TMPDIR ]]; then - rm -rf "$TMPDIR" -fi SUCCESS=0 @@ -30,7 +27,7 @@ for SITE in $(cat "site-list"); do echo "" SOURCE="$TMPDIR/$OLD/${SITE##*/}" DESTINATION=${SOURCE/$OLD/$NEW} - diff -r $SOURCE $DESTINATION + diff -r "$SOURCE/" "$DESTINATION/" if (( $? != 0 )); then SUCCESS=1 fi From 595e2f0b803b1594d89f91f6d21236ce041defc2 Mon Sep 17 00:00:00 2001 From: Pat Hawks Date: Wed, 18 Jul 2018 12:38:21 -0500 Subject: [PATCH 3/3] Work around minor differences in sites --- Gemfile | 4 ++-- regression | 3 +-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/Gemfile b/Gemfile index fdee7c0..696675f 100644 --- a/Gemfile +++ b/Gemfile @@ -19,8 +19,8 @@ gem "jekyll-feed" gem "jekyll-gist" gem "jekyll-paginate" gem "jekyll-coffeescript" -gem "jekyll-seo-tag" -gem "jekyll-github-metadata" +gem "jekyll-seo-tag", git: "https://github.com/jekyll/jekyll-seo-tag.git", branch: "no-cache-drop" +gem "jekyll-github-metadata", git: "https://github.com/jekyll/github-metadata.git", branch: "no-cache-drop" gem "jekyll-avatar" gem "jekyll-remote-theme" gem "jemoji" diff --git a/regression b/regression index 2170f5c..ea7b7ea 100755 --- a/regression +++ b/regression @@ -4,7 +4,6 @@ # will diff the different builds of each site and complain if they are not # identical. This will help catch unintentional changes in Jekyll's behavior. -set -e ulimit -t 1200 function checkFailedBuild { @@ -27,7 +26,7 @@ for SITE in $(cat "site-list"); do echo "" SOURCE="$TMPDIR/$OLD/${SITE##*/}" DESTINATION=${SOURCE/$OLD/$NEW} - diff -r "$SOURCE/" "$DESTINATION/" + diff -wr -I "" -I "" -I "" -I "" -I "article:published_time" "$SOURCE/" "$DESTINATION/" if (( $? != 0 )); then SUCCESS=1 fi