cd `dirname $0`
cargo build --release
if [ -d sass-spec ]; then
cd sass-spec
git fetch
git rebase origin/master --autostash
else
git clone https://github.com/sass/sass-spec.git
cd sass-spec
fi
cat > spec/output_styles/options.yml <<EOF
---
:start_version: '3.4'
:only_on:
- libsass
- rsass
EOF
cat > spec/output_styles/compact/options.yml <<EOF
---
:output_style: :compact
:ignore_for:
- rsass
EOF
cat > spec/output_styles/nested/options.yml <<EOF
---
:output_style: :nested
:ignore_for:
- rsass
EOF
case "$1" in
"")
LC_ALL=C ./sass-spec.rb -c ../target/release/rsass --impl rsass -V 4.0 spec
;;
"impersonate")
LC_ALL=C ./sass-spec.rb -c ../target/release/rsass --impl libsass -V 4.0 spec
;;
"basic")
LC_ALL=C ./sass-spec.rb -c ../target/release/rsass --impl rsass -V 4.0 spec/basic \
| grep ^SassSpec:: | sed -e 's#.*test__##' -e 's# .*##' | sort
;;
"core_functions")
LC_ALL=C ./sass-spec.rb -c ../target/release/rsass --impl rsass -V 4.0 spec/core_functions \
| grep ^SassSpec:: | sed -e 's#.*test__##' -e 's# .*##' | sort
;;
"scss")
LC_ALL=C ./sass-spec.rb -c ../target/release/rsass --impl rsass -V 4.0 spec/scss
;;
"values")
LC_ALL=C ./sass-spec.rb -c ../target/release/rsass --impl rsass -V 4.0 spec/values \
| grep ^SassSpec:: | sed -e 's#.*test__##' -e 's# .*##' | sort
;;
"interpolate")
LC_ALL=C ./sass-spec.rb -c ../target/release/rsass --impl rsass -V 4.0 spec/parser/interpolate \
| grep ^SassSpec:: | sed -e 's#.*test__##' -e 's# .*##' | sort
;;
"stats")
LC_ALL=C ./sass-spec.rb -c ../target/release/rsass --impl rsass -V 4.0 spec \
| rg --no-line-number '^([0-9]+) runs, ([0-9]+) assertions.*' \
--replace 'Progress:  of $1 tests passed'
LC_ALL=C ./sass-spec.rb -c ../target/release/rsass --impl libsass -V 4.0 spec \
| rg --no-line-number '^([0-9]+) runs, ([0-9]+) assertions.*' \
--replace '(or $2 of $1 when claiming to be libsass).'
;;
esac