3
0
Fork 0
mirror of https://github.com/YosysHQ/yosys synced 2026-03-23 12:59:15 +00:00

Convert memfile tests

This commit is contained in:
nella 2026-03-20 16:08:27 +01:00
parent ca77e0a5db
commit e7cc04954d
3 changed files with 70 additions and 51 deletions

View file

@ -70,7 +70,7 @@ MK_TEST_DIRS += ./proc
MK_TEST_DIRS += ./blif
#SH_TEST_DIRS += ./arch
#SH_TEST_DIRS += ./rpc
#SH_TEST_DIRS += ./memfile
MK_TEST_DIRS += ./memfile
#SH_TEST_DIRS += ./fmt
#SH_TEST_DIRS += ./cxxrtl
#SH_TEST_DIRS += ./liberty

View file

@ -0,0 +1,69 @@
#!/usr/bin/env python3
import sys
sys.path.append("..")
import gen_tests_makefile
def create_tests():
setup = "mkdir -p temp && cp content1.dat temp/content2.dat"
gen_tests_makefile.generate_cmd_test("parent_content1", [
f"{setup};",
'(cd .. && $(YOSYS_ABS) -qp "read_verilog -defer memfile/memory.v;',
'chparam -set MEMFILE \\"content1.dat\\" memory") >/dev/null 2>&1',
])
gen_tests_makefile.generate_cmd_test("parent_content2_temp", [
f"{setup};",
'(cd .. && $(YOSYS_ABS) -qp "read_verilog -defer memfile/memory.v;',
'chparam -set MEMFILE \\"temp/content2.dat\\" memory") >/dev/null 2>&1',
])
gen_tests_makefile.generate_cmd_test("parent_content2_full", [
f"{setup};",
'(cd .. && $(YOSYS_ABS) -qp "read_verilog -defer memfile/memory.v;',
'chparam -set MEMFILE \\"memfile/temp/content2.dat\\" memory") >/dev/null 2>&1',
])
gen_tests_makefile.generate_cmd_test("same_content1", [
f"{setup};",
'$(YOSYS) -qp "read_verilog -defer memory.v;',
'chparam -set MEMFILE \\"content1.dat\\" memory" >/dev/null 2>&1',
])
gen_tests_makefile.generate_cmd_test("same_content2", [
f"{setup};",
'$(YOSYS) -qp "read_verilog -defer memory.v;',
'chparam -set MEMFILE \\"temp/content2.dat\\" memory" >/dev/null 2>&1',
])
gen_tests_makefile.generate_cmd_test("child_content1", [
f"{setup};",
'(cd temp && ../$(YOSYS) -qp "read_verilog -defer ../memory.v;',
'chparam -set MEMFILE \\"content1.dat\\" memory") >/dev/null 2>&1',
])
gen_tests_makefile.generate_cmd_test("child_content2_temp", [
f"{setup};",
'(cd temp && ../$(YOSYS) -qp "read_verilog -defer ../memory.v;',
'chparam -set MEMFILE \\"temp/content2.dat\\" memory") >/dev/null 2>&1',
])
gen_tests_makefile.generate_cmd_test("child_content2_direct", [
f"{setup};",
'(cd temp && ../$(YOSYS) -qp "read_verilog -defer ../memory.v;',
'chparam -set MEMFILE \\"temp/content2.dat\\" memory") >/dev/null 2>&1',
])
gen_tests_makefile.generate_cmd_test("fail_empty_filename",
'! $(YOSYS) -qp "read_verilog memory.v" >/dev/null 2>&1')
gen_tests_makefile.generate_cmd_test("fail_missing_file", [
'! $(YOSYS) -qp "read_verilog -defer memory.v;',
'chparam -set MEMFILE \\"content3.dat\\" memory" >/dev/null 2>&1',
])
extra = ["YOSYS_ABS := $(abspath $(YOSYS))"]
gen_tests_makefile.generate_custom(create_tests, extra)

View file

@ -1,50 +0,0 @@
#!/usr/bin/env bash
source ../common-env.sh
set -e
mkdir -p temp
cp content1.dat temp/content2.dat
cd ..
echo "Running from the parent directory with content1.dat"
../yosys -qp "read_verilog -defer memfile/memory.v; chparam -set MEMFILE \"content1.dat\" memory" >/dev/null 2>&1
echo "Running from the parent directory with temp/content2.dat"
../yosys -qp "read_verilog -defer memfile/memory.v; chparam -set MEMFILE \"temp/content2.dat\" memory" >/dev/null 2>&1
echo "Running from the parent directory with memfile/temp/content2.dat"
../yosys -qp "read_verilog -defer memfile/memory.v; chparam -set MEMFILE \"memfile/temp/content2.dat\" memory" >/dev/null 2>&1
cd memfile
echo "Running from the same directory with content1.dat"
../../yosys -qp "read_verilog -defer memory.v; chparam -set MEMFILE \"content1.dat\" memory" >/dev/null 2>&1
echo "Running from the same directory with temp/content2.dat"
../../yosys -qp "read_verilog -defer memory.v; chparam -set MEMFILE \"temp/content2.dat\" memory" >/dev/null 2>&1
cd temp
echo "Running from a child directory with content1.dat"
../../../yosys -qp "read_verilog -defer ../memory.v; chparam -set MEMFILE \"content1.dat\" memory" >/dev/null 2>&1
echo "Running from a child directory with temp/content2.dat"
../../../yosys -qp "read_verilog -defer ../memory.v; chparam -set MEMFILE \"temp/content2.dat\" memory" >/dev/null 2>&1
echo "Running from a child directory with content2.dat"
../../../yosys -qp "read_verilog -defer ../memory.v; chparam -set MEMFILE \"temp/content2.dat\" memory" >/dev/null 2>&1
cd ..
echo "Checking a failure when zero length filename is provided"
if ../../yosys -qp "read_verilog memory.v" >/dev/null 2>&1; then
echo "The execution should fail but it didn't happen, which is WRONG."
exit 1
else
echo "Execution failed, which is OK."
fi
echo "Checking a failure when not existing filename is provided"
if ../../yosys -qp "read_verilog -defer memory.v; chparam -set MEMFILE \"content3.dat\" memory" >/dev/null 2>&1; then
echo "The execution should fail but it didn't happen, which is WRONG."
exit 1
else
echo "Execution failed, which is OK."
fi