import os
import {{ipc}}

import cocotb


@cocotb.test()
def {{module_name}}_test(dut):

    # connect the cocotb simulation to SST through {{ipc}}
    {{driver_bind}}
    _sock.{{connect}}(cocotb.plusargs["ipc_proc"])

    _sock.{{send}}(str(os.getpid()).encode())

    while True:
        signal = str(_sock.recv({{buf_size}}).decode("utf-8"))
        alive = int(signal[0])
        signal = signal[1:]
        if not alive:
            break
        {{inputs}}
        yield cocotb.triggers.Timer(1, units='ns')

        _outputs = (
            {{outputs}}
        )
        _sock.{{send}}(_outputs)

    _sock.close()
