This release supports the new cocotb 1.7.1 release manager. However, the decorator `pyuvm.test()` no longer supports the `TESTCASE` command line argument in cocotb.
`TESTCASE` problem with `pyuvm.test()`
** Thanks to ktbarrett for fixing this**
The `pyuvm.test()` decorator wraps the `cocotb.test()` decorator, but changes to the cocotb regression manager make this approach incompatible with the `TESTCASE` command line argument. There is an easy workaround (which was actually the original conception of using **pyuvm** with **cocotb**.
Typically, one might make a **pyuvm** test like this:
pyuvm.test()
class MyTest(uvm_test):
all the test things
This would create a test object that cocotb would recognize and launch as a test. However, you can no longer put `TESTCASE=MyTest` on the command line in **cocotb** 1.7. Instead, you do the following:
class MyTest(uvm_test):
all the test things
cocotb.test()
async test_run_MyTest(_):
uvm_root().run_test(MyTest)
This will run `MyTest` as you would expect and will work with `TESTCASE=test_run_MyTest`
Fixed bug in objections.
mkorbel1 noticed that **pyuvm** did not handle the case where multiple components had raised and lowered objections to ending the test. **pyuvm** was ending when one `run_phase()` dropped all its objections but not all. He fixed the problem.
Thanks, mkorbel1!