#!/bin/sh

# Test the `guile-snarf' tool.

# Strip the first line, like GNU `tail -n +2' does, but in a portable
# way (`tail' on Solaris 10 doesn't support `-n +2' for instance.)
strip_first_line ()
{
    read line
    while read line
    do
	echo "$line"
    done
}

snarf ()
{
    # GNU cpp emits a comment on the first line, which shows what
    # arguments it was passed.  Strip this line.
    echo "$1" | guile-snarf - | strip_first_line | tr -d ' \t\n'
}

snarf_test ()
{
    x=`snarf "$1"`
    if [ x"$x" != x"$2" ]; then
        echo "Incorrect output: expected \"$2\", but got \"$x\""
        exit 1
    fi
}

snarf_test "^^a^:^" "a;"
snarf_test "  ^  ^  b  ^  :  ^  " "b;"
snarf_test "c\n^^d^:^\ne" "d;"
snarf_test "f^^g^:^h" "g;"
snarf_test "^^i^:^j^^k^:^" "i;k;"
snarf_test "l^^m" ""
snarf_test "n^:^o" ""
