on ryan-jsstring-inline help sign in
text/tests/literal-rule-test.sh
29 lines 735 B history raw
1#!/bin/bash -e
3failed=0
5function check_firings() {
6 rule=$1
7 expected=$2
8 build="ghc -O -ddump-rule-firings LiteralRuleTest.hs"
9 build="$build -i.. -I../include"
10 touch LiteralRuleTest.hs
11 echo -n "Want to see $expected firings of rule $rule... " >&2
12 firings=$($build 2>&1 | grep "Rule fired: $rule\$" | wc -l)
13 rm -f LiteralRuleTest.{o.hi}
15 if [ $firings != $expected ]; then
16 echo "failed, saw $firings" >&2
17 failed=1
18 else
19 echo "pass" >&2
20 fi
23check_firings "TEXT literal" 8
24check_firings "TEXT literal UTF8" 7
25check_firings "TEXT empty literal" 4
26# This is broken at the moment. "TEXT literal" rule fires instead.
27#check_firings "TEXT singleton literal" 5
29exit $failed