#!/bin/sh

# ignore-license

# Run the reference lexer against libsyntax and compare the tokens and spans.
# If "// ignore-lexer-test" is present in the file, it will be ignored.


# Argument $1 is the file to check, $2 is the classpath to use, $3 is the path
# to the grun binary, $4 is the path to the verify binary, $5 is the path to
# RustLexer.tokens
if [ "${VERBOSE}" == "1" ]; then
    set -x
fi

passed=0
failed=0
skipped=0

check() {
    grep --silent "// ignore-lexer-test" "$1";

    # if it's *not* found...
    if [ $? -eq 1 ]; then
        cd $2 # This `cd` is so java will pick up RustLexer.class. I couldn't
        # figure out how to wrangle the CLASSPATH, just adding build/grammar
        # didn't seem to have any effect.
        if $3 RustLexer tokens -tokens < $1 | $4 $1 $5; then
            echo "pass: $1"
            passed=`expr $passed + 1`
        else
            echo "fail: $1"
            failed=`expr $failed + 1`
        fi
    else
        echo "skip: $1"
        skipped=`expr $skipped + 1`
    fi
}

for file in $(find $1 -iname '*.rs' ! -path '*/test/compile-fail*'); do
    check "$file" $2 $3 $4 $5
done

printf "\ntest result: "

if [ $failed -eq 0 ]; then
    printf "ok. $passed passed; $failed failed; $skipped skipped\n\n"
else
    printf "failed. $passed passed; $failed failed; $skipped skipped\n\n"
    exit 1
fi
