#include "pc/ProcedureManager.h" #include "pc/BinaryBuffer.h" #include "test/u.hpp" #include #include inline namespace { using Void = std::tuple<>; AddTestCase _(20, "ProcedureManager", [](TestCase& t) { t.expectEq([] { std::int32_t x = 0; auto f1 = [&x] (std::int32_t d) -> Void { x += d; return {}; }; auto f2 = [&x] (std::int32_t d) -> Void { x -= d; return {}; }; ProcedureManager pm; pm.registerProcedure(1, f1); pm.registerProcedure(2, f2); unsigned char ibuf[256] = { 0x45, 0x27, 0xd1, 0xf2, 0x93, 0x43, 0xfc, 0xb1, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x45, 0x27, 0xd1, 0xf2, 0x93, 0x43, 0xfc, 0xb2, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, }; unsigned char obuf[256]; FILE *in = fmemopen(ibuf, 256, "r"), *out = fmemopen(obuf, 256, "w"); pm.handleCall(in, out); pm.handleCall(in, out); return x; }, 1); }); }