void testSerialization(CFGBuilder& bld, char* buf, SExpr *e) { std::cout << "\n"; TILDebugPrinter::print(e, std::cout); std::cout << "\n\n"; int len = 0; InMemoryWriter writeStream(buf); BytecodeWriter writer(&writeStream); writer.traverseAll(e); writeStream.flush(); len = writeStream.totalLength(); std::cout << "Output " << len << " bytes.\n"; writeStream.dump(); std::cout << "\n"; InMemoryReader readStream(buf, len, bld.arena()); BytecodeReader reader(bld, &readStream); auto* e2 = reader.read(); if (e2) { TILDebugPrinter::print(e2, std::cout); std::cout << "\n\n"; } }
void testSerialization(CFGBuilder& bld, SExpr *e) { std::cout << "\n"; TILDebugPrinter::print(e, std::cout); std::cout << "\n\n"; BytecodeStringWriter writeStream; BytecodeWriter writer(&writeStream); writer.traverseAll(e); writeStream.flush(); std::string buffer = writeStream.str(); int len = buffer.size(); std::cout << "Output " << len << " bytes.\n"; writeStream.dump(); std::cout << "\n"; InMemoryReader readStream(buffer.data(), len, bld.arena()); BytecodeReader reader(bld, &readStream); auto* e2 = reader.read(); if (e2) { TILDebugPrinter::print(e2, std::cout); std::cout << "\n\n"; } }