fix(cocotb): Improve test discovery for tests with arguments
The `update_cocotb_tests.py` script previously used a regex that failed to discover cocotb tests defined with arguments in the `@cocotb.test()` decorator (e.g., `@cocotb.test(skip=True)`).
This commit updates the regex to correctly parse these definitions.
As a result of applying the updated script, several `BUILD` files have been regenerated to:
- Create uniquely named testcase lists for each `cocotb_test_suite`.
- Correctly list all discovered tests.
Change-Id: Id0da034c786f333f731f669e1ee69909b9416c64
diff --git a/tests/cocotb/BUILD b/tests/cocotb/BUILD
index 05cac01..3045e5b 100644
--- a/tests/cocotb/BUILD
+++ b/tests/cocotb/BUILD
@@ -418,14 +418,20 @@
],
)
+# BEGIN_TESTCASES_FOR_rvv_ml_ops_cocotb_test
+RVV_ML_OPS_TESTCASES = [
+ "core_mini_rvv_matmul_test",
+]
+# END_TESTCASES_FOR_rvv_ml_ops_cocotb_test
+
cocotb_test_suite(
name = "rvv_ml_ops_cocotb_test",
simulators = [
"verilator",
"vcs",
],
- testcases = RVV_LOAD_STORE_TESTCASES,
- testcases_vname = "RVV_LOAD_STORE_TESTCASES",
+ testcases = RVV_ML_OPS_TESTCASES,
+ testcases_vname = "RVV_ML_OPS_TESTCASES",
tests_kwargs = {
"hdl_toplevel": "RvvCoreMiniAxi",
"waves": True,
diff --git a/tests/cocotb/tlul/BUILD b/tests/cocotb/tlul/BUILD
index 0e8417c..41cae74 100644
--- a/tests/cocotb/tlul/BUILD
+++ b/tests/cocotb/tlul/BUILD
@@ -252,11 +252,16 @@
vcs_defines = VCS_DEFINES,
)
+# BEGIN_TESTCASES_FOR_secded_encoder_32_cocotb_test
+SECDED_ENCODER_32_TESTCASES = [
+ "test_secded_encoder",
+]
+# END_TESTCASES_FOR_secded_encoder_32_cocotb_test
cocotb_test_suite(
name = "secded_encoder_32_cocotb_test",
simulators = ["verilator", "vcs"],
- testcases = SECDED_ENCODER_TESTCASES,
- testcases_vname = "SECDED_ENCODER_TESTCASES",
+ testcases = SECDED_ENCODER_32_TESTCASES,
+ testcases_vname = "SECDED_ENCODER_32_TESTCASES",
tests_kwargs = {
"hdl_toplevel": "SecdedEncoderTestbench32",
"test_module": ["test_secded_encoder.py"],
@@ -272,11 +277,16 @@
vcs_defines = VCS_DEFINES,
)
+# BEGIN_TESTCASES_FOR_secded_encoder_57_cocotb_test
+SECDED_ENCODER_57_TESTCASES = [
+ "test_secded_encoder",
+]
+# END_TESTCASES_FOR_secded_encoder_57_cocotb_test
cocotb_test_suite(
name = "secded_encoder_57_cocotb_test",
simulators = ["verilator", "vcs"],
- testcases = SECDED_ENCODER_TESTCASES,
- testcases_vname = "SECDED_ENCODER_TESTCASES",
+ testcases = SECDED_ENCODER_57_TESTCASES,
+ testcases_vname = "SECDED_ENCODER_57_TESTCASES",
tests_kwargs = {
"hdl_toplevel": "SecdedEncoderTestbench57",
"test_module": ["test_secded_encoder.py"],
@@ -305,12 +315,13 @@
# BEGIN_TESTCASES_FOR_kelvin_xbar_cocotb
KELVIN_XBAR_TESTCASES = [
"test_kelvin_core_to_sram",
- "test_ibex_d_to_kelvin_device_csr_read",
- "test_wide_to_narrow_integrity",
- "test_kelvin_core_to_kelvin_device",
+ "test_ibex_d_to_invalid_addr",
"test_kelvin_core_to_uart1",
"test_ibex_d_to_kelvin_device",
- "test_ibex_d_to_invalid_addr",
+ "test_kelvin_core_to_kelvin_device",
+ "test_ibex_d_to_kelvin_device_csr_read",
+ "test_ibex_d_to_kelvin_device_specific_addr",
+ "test_wide_to_narrow_integrity",
]
# END_TESTCASES_FOR_kelvin_xbar_cocotb
diff --git a/utils/update_cocotb_tests.py b/utils/update_cocotb_tests.py
index 9267cbc..3fd2b0e 100644
--- a/utils/update_cocotb_tests.py
+++ b/utils/update_cocotb_tests.py
@@ -19,7 +19,7 @@
def find_cocotb_tests(filename):
with open(filename, "r") as f:
source = f.read()
- return re.findall(r"@cocotb\.test\(\)\s+async def\s+(\w+)", source)
+ return re.findall(r"@cocotb\.test\(.*\)\s+async def\s+(\w+)", source)
def update_build_file(build_file, test_file, variable_name, name):