void testInt() { report(0,"checking binary read/write of native int"); BinPortable<int> i; i.content() = 5; PortReaderBuffer<BinPortable<int> > buf; Port input, output; bool ok1 = input.open("/in"); bool ok2 = output.open("/out"); checkTrue(ok1&&ok2,"ports opened ok"); if (!(ok1&&ok2)) { return; } //input.setReader(buf); buf.attach(input); output.addOutput(Contact("/in", "tcp")); report(0,"writing..."); output.write(i); report(0,"reading..."); BinPortable<int> *result = buf.read(); checkTrue(result!=NULL,"got something check"); if (result!=NULL) { checkEqual(result->content(),5,"value preserved"); } output.close(); input.close(); }
void testWriteBuffer() { report(0,"testing write buffering"); Port input, output, altInput; input.open("/in"); altInput.open("/in2"); output.open("/out"); output.addOutput("/in"); report(0,"beginning..."); BinPortable<int> bin; PortWriterBuffer<BinPortable<int> > binOut; binOut.attach(output); int val1 = 15; int val2 = 30; BinPortable<int>& active = binOut.get(); active.content() = val1; binOut.write(); output.addOutput("/in2"); BinPortable<int>& active2 = binOut.get(); active2.content() = val2; binOut.write(); input.read(bin); checkEqual(val1,bin.content(),"successful transmit"); altInput.read(bin); checkEqual(val2,bin.content(),"successful transmit"); while (output.isWriting()) { report(0,"waiting for port to stabilize"); Time::delay(0.2); } report(0,"port stabilized"); output.close(); report(0,"shut down output buffering"); }
void testBufferedPort() { report(0,"checking buffered port"); BufferedPort<BinPortable<int> > output, input; output.open("/out"); input.open("/in"); report(0,"is write a no-op when no connection exists?..."); BinPortable<int>& datum0 = output.prepare(); datum0.content() = 123; report(0,"writing..."); output.write(); output.addOutput("/in"); report(0,"now with a connection..."); BinPortable<int>& datum = output.prepare(); datum.content() = 999; report(0,"writing..."); output.write(); report(0,"reading..."); BinPortable<int> *bin = input.read(); checkEqual(bin->content(),999,"good send"); }