V2.4.7 - Emulators broken? How do I hand craft a test suite?

Hi, I’ve tried to generate an emulator and test suite for a device worker.

There were a few issues; one seems to be the test suite tries to chase down through all xml files that form the definitions of all device workers in an attempt to find matching components and emulators. This falls over when xml files are reference in device workers that are outside of the project (but these being device workers that do otherwise build), (e.g. qadc-16-signals.xml).

Trying to exclude the workers from the test causes build issues within the c++ backend code (when it tries to delete a worker from the list during the matching).

Skipping worker “xxxx.hdl” since it was specifically excluded.

Assertion failed: excludeWorkersTmp.erase(wname) == 1 is false at ../gen/tools/ocpigen/src/tests.cc:282.

To work around this I’ve just temporarily deleted all the other device workers.

I can test the device worker without the emulator (and accept that I can only see output pins change state); but if I create the emulator then this tries to instantiate the pins at the test container level, but they don’t exist at lower levels within the auto-generate VHDL code and hence cause build errors.

Now the real question is, if I want to make a “hand crafted” test suite, I assume I manually make a device worker that does the emulation, but how do I connect the device worker pins together in the container?


Hi - replying to myself
@fergus resolved this by adding




to the first worker that failed with the search for qadc-16-signals.xml, which then adds the devices folder to the search paths.

The device worker itself builds fine and finds the file without this.