99#include < capnp/serialize.h>
1010#include < gtest/gtest.h>
1111#include < jeff.capnp.h>
12- #include < kj/array.h>
1312#include < kj/io.h>
1413#include < kj/string-tree.h>
14+ #include < llvm/ADT/ArrayRef.h>
15+ #include < llvm/ADT/SmallVector.h>
1516#include < llvm/Support/ErrorHandling.h>
1617#include < llvm/Support/FileSystem.h>
1718#include < llvm/Support/raw_ostream.h>
@@ -45,7 +46,7 @@ std::ostream& operator<<(std::ostream& os, const NativeRoundTripTestCase& testCa
4546class NativeRoundTripTest : public ::testing::Test,
4647 public ::testing::WithParamInterface<NativeRoundTripTestCase> {};
4748
48- kj::Array<capnp::word > readJeffFile (llvm::StringRef path) {
49+ llvm::SmallVector< uint8_t > readJeffFile (llvm::StringRef path) {
4950 llvm::sys::fs::file_t file = 0 ;
5051 if (llvm::sys::fs::openFileForRead (path, file)) {
5152 llvm::errs () << " Failed to open file: " << path << " \n " ;
@@ -60,9 +61,20 @@ kj::Array<capnp::word> readJeffFile(llvm::StringRef path) {
6061 kj::FdInputStream input (std::move (autoCloseFd));
6162#endif
6263
64+ auto words = input.readAllBytes ();
65+ auto bytes = words.asBytes ();
66+ return llvm::SmallVector<uint8_t >(reinterpret_cast <const uint8_t *>(bytes.begin ()),
67+ reinterpret_cast <const uint8_t *>(bytes.end ()));
68+ }
69+
70+ std::string moduleTextFromBytes (llvm::ArrayRef<uint8_t > data) {
71+ kj::ArrayPtr<const kj::byte> bytes (reinterpret_cast <const kj::byte*>(data.data ()), data.size ());
72+ kj::ArrayInputStream input (bytes);
73+
6374 capnp::MallocMessageBuilder message;
6475 capnp::readMessageCopy (input, message);
65- return capnp::messageToFlatArray (message);
76+ auto module = message.getRoot <jeff::Module>();
77+ return std::string (module .toString ().flatten ().cStr ());
6678}
6779
6880mlir::LogicalResult convertJeffToNative (mlir::ModuleOp module ) {
@@ -165,16 +177,12 @@ TEST_P(NativeRoundTripTest, RoundTrip) {
165177 auto serialized = serialize (*mlirModule);
166178
167179 // Compare textual representations
168- capnp::FlatArrayMessageReader originalMessage (original);
169- auto originalModule = originalMessage.getRoot <jeff::Module>();
170- auto originalText = originalModule.toString ().flatten ();
180+ auto originalText = moduleTextFromBytes (original);
171181
172- capnp::FlatArrayMessageReader serializedMessage (serialized);
173- auto serializedModule = serializedMessage.getRoot <jeff::Module>();
174- auto serializedText = serializedModule.toString ().flatten ();
182+ auto serializedText = moduleTextFromBytes (serialized);
175183
176- llvm::errs () << " Original module:\n " << originalText. cStr () << " \n\n " ;
177- llvm::errs () << " Serialized module:\n " << serializedText. cStr () << " \n\n " ;
184+ llvm::errs () << " Original module:\n " << originalText << " \n\n " ;
185+ llvm::errs () << " Serialized module:\n " << serializedText << " \n\n " ;
178186
179187 ASSERT_EQ (originalText, serializedText);
180188}
0 commit comments