module tagion.testbench.inputvalidator; import std.concurrency; import std.exception; import std.format; import tagion.actor; import tagion.behaviour.Behaviour; import tagion.services.inputvalidator; import tagion.testbench.services; import tagion.tools.Basic; mixin Main!(_main); int _main(string[] _) { enum sock_path = "abstract://" ~ __MODULE__; enum input_test = "input_tester_task"; register(input_test, thisTid); import tagion.services.options : TaskNames; TaskNames _task_names; _task_names.hirpc_verifier = input_test; immutable opts = InputValidatorOptions(sock_path); auto input_handle = spawn!InputValidatorService("input_validator_task", opts, _task_names); enforce(waitforChildren(Ctrl.ALIVE), "The inputvalidator did not start"); auto inputvalidator_feature = automation!inputvalidator; inputvalidator_feature.SendADocumentToTheSocket(sock_path); inputvalidator_feature.SendNoneHiRPC(sock_path); inputvalidator_feature.SendPartialHiBON(sock_path); inputvalidator_feature.SendBigContract(sock_path); inputvalidator_feature.run; // automation!inputvalidator.run; input_handle.send(Sig.STOP); import core.time; import nngd; auto sock = NNGSocket(nng_socket_type.NNG_SOCKET_REQ); int rc = sock.dial(sock_path); enforce(rc == 0, format("Failed to dial %s", nng_errstr(rc))); sock.send("end"); enforce(waitforChildren(Ctrl.END), "The inputvalidator did not stop"); return 0; }