#!/bin/bash
if [ ! -f 'enumerator.cabal' ]; then
	echo -n "Can't find enumerator.cabal; please run this script as"
	echo -n " ./scripts/run-coverage from within the enumerator source"
	echo " directory"
	exit 1
fi

. scripts/common.bash

require_cabal_dev

pushd tests
$CABAL_DEV -s ../cabal-dev install --flags="coverage" || exit 1
popd

rm -f enumerator_tests.tix
cabal-dev/bin/enumerator_tests $@

EXCLUDES="\
--exclude=Main \
--exclude=EnumeratorTests.Binary \
--exclude=EnumeratorTests.Binary.Consume \
--exclude=EnumeratorTests.Binary.Drop \
--exclude=EnumeratorTests.Binary.Fold \
--exclude=EnumeratorTests.Binary.Handle \
--exclude=EnumeratorTests.Binary.Isolate \
--exclude=EnumeratorTests.Binary.Iterate \
--exclude=EnumeratorTests.Binary.Map \
--exclude=EnumeratorTests.Binary.Repeat \
--exclude=EnumeratorTests.Binary.Replicate \
--exclude=EnumeratorTests.Binary.Require \
--exclude=EnumeratorTests.Binary.Split \
--exclude=EnumeratorTests.Binary.Unfold \
--exclude=EnumeratorTests.Binary.Util \
--exclude=EnumeratorTests.Binary.Zip \
--exclude=EnumeratorTests.CatchError \
--exclude=EnumeratorTests.Compatibility \
--exclude=EnumeratorTests.Instances \
--exclude=EnumeratorTests.Join \
--exclude=EnumeratorTests.List \
--exclude=EnumeratorTests.List.Consume \
--exclude=EnumeratorTests.List.Drop \
--exclude=EnumeratorTests.List.Fold \
--exclude=EnumeratorTests.List.Isolate  \
--exclude=EnumeratorTests.List.Iterate \
--exclude=EnumeratorTests.List.Map \
--exclude=EnumeratorTests.List.Repeat \
--exclude=EnumeratorTests.List.Replicate \
--exclude=EnumeratorTests.List.Require \
--exclude=EnumeratorTests.List.Split \
--exclude=EnumeratorTests.List.Unfold \
--exclude=EnumeratorTests.List.Unique \
--exclude=EnumeratorTests.List.Util \
--exclude=EnumeratorTests.List.Zip \
--exclude=EnumeratorTests.Misc \
--exclude=EnumeratorTests.Sequence \
--exclude=EnumeratorTests.Stream \
--exclude=EnumeratorTests.Text \
--exclude=EnumeratorTests.Text.Codecs \
--exclude=EnumeratorTests.Text.Consume \
--exclude=EnumeratorTests.Text.Drop \
--exclude=EnumeratorTests.Text.Fold \
--exclude=EnumeratorTests.Text.Handle \
--exclude=EnumeratorTests.Text.Isolate \
--exclude=EnumeratorTests.Text.Iterate \
--exclude=EnumeratorTests.Text.Map \
--exclude=EnumeratorTests.Text.Repeat \
--exclude=EnumeratorTests.Text.Replicate \
--exclude=EnumeratorTests.Text.Require \
--exclude=EnumeratorTests.Text.Split \
--exclude=EnumeratorTests.Text.Unfold \
--exclude=EnumeratorTests.Text.Util \
--exclude=EnumeratorTests.Text.Zip \
--exclude=EnumeratorTests.Trans \
--exclude=EnumeratorTests.Util"

hpc markup --srcdir=src/ --srcdir=tests/ enumerator_tests.tix --destdir=hpc-markup $EXCLUDES > /dev/null
hpc report --srcdir=src/ --srcdir=tests/ enumerator_tests.tix $EXCLUDES
