#!/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