3 YOSYS_BASEDIR
="$(cd "$
(dirname "${BASH_SOURCE[0]}")"/../ >/dev/null 2>&1 && pwd)"
5 # $ generate_target target_name test_command
9 echo "all: $target_name"
10 echo ".PHONY: $target_name"
12 printf "\t@%s\n" "$test_command"
13 printf "\t@echo 'Passed %s'\n" "$target_name"
16 # $ generate_ys_test ys_file [yosys_args]
20 generate_target
"$ys_file" "$YOSYS_BASEDIR/yosys -ql ${ys_file%.*}.log $yosys_args $ys_file"
23 # $ generate_bash_test bash_file
24 generate_bash_test
() {
26 generate_target
"$bash_file" "bash -v $bash_file >${bash_file%.*}.log 2>&1"
29 # $ generate_tests [-y|--yosys-scripts] [-s|--prove-sv] [-b|--bash] [-a|--yosys-args yosys_args]
36 while [[ $# -gt 0 ]]; do
57 echo >&2 "Unknown argument: $1"
62 if [[ ! ( $do_ys = true ||
$do_sv = true ||
$do_sh = true
) ]]; then
63 echo >&2 "Error: No file types selected"
70 if [[ $do_ys = true
]]; then
72 generate_ys_test
"$x" "$yosys_args"
75 if [[ $do_sv = true
]]; then
77 if [ ! -f "${x%.sv}.ys" ]; then
78 generate_ys_test
"$x" "-p \"prep -top top; sat -verify -prove-asserts\" $yosys_args"
82 if [[ $do_sh == true
]]; then
84 if [ "$s" != "run-test.sh" ]; then
85 generate_bash_test
"$s"
92 generate_tests
"$@" > run-test.mk
93 exec ${MAKE:-make} -f run-test.mk