sv2v/test/keyword/run.sh

58 lines
1.2 KiB
Bash
Executable File

#!/bin/bash
VERSIONS=(
1364-1995
1364-2001-noconfig
1364-2001
1364-2005
1800-2005
1800-2009
1800-2012
)
testKeyword() {
sv2v_exit_code=$1
ivl_exit_code=$(($1*2))
version=$2
keyword=$3
source="\`begin_keywords \"$version\"\nmodule $keyword;endmodule\n\`end_keywords"
$SV2V <(echo -e "$source") >/dev/null 2>/dev/null
assertTrue "unexpected sv2v exit code $?" "[ $sv2v_exit_code -eq $? ]"
iverilog -g2012 -o/dev/null <(echo -e "$source") >/dev/null 2>/dev/null
assertTrue "unexpected ivl exit code $?" "[ $ivl_exit_code -eq $? ]"
}
addTest() {
test="$1_$2_$3"
eval "$test() { testKeyword $1 $2 $3; }"
suite_addTest $test
}
addTests() {
prev=
for curr in "${VERSIONS[@]}"; do
# This isn't a keyword in prior version.
[ -n "$prev" -a $curr = $version ] && \
addTest 0 $prev $keyword && \
break
prev=$curr
done
# This is a keyword in the specified version.
addTest 1 $version $keyword
}
suite() {
for version in "${VERSIONS[@]}"; do
while read keyword; do
addTests
done < $version.txt
done
}
source ../lib/functions.sh
. shunit2