diff options
Diffstat (limited to 'courgette/encode_decode_unittest.cc')
-rw-r--r-- | courgette/encode_decode_unittest.cc | 29 |
1 files changed, 17 insertions, 12 deletions
diff --git a/courgette/encode_decode_unittest.cc b/courgette/encode_decode_unittest.cc index 90f5cd6..20f0e16 100644 --- a/courgette/encode_decode_unittest.cc +++ b/courgette/encode_decode_unittest.cc @@ -8,20 +8,20 @@ class EncodeDecodeTest : public BaseTest { public: - void TestExe(const char *) const; + void TestAssembleToStreamDisassemble(std::string file, + size_t expected_encoded_lenth) const; }; -void EncodeDecodeTest::TestExe(const char* file_name) const { - // Test top-level Courgette API for converting an a file to a binary - // assembly representation and back. - std::string file1 = FileContents(file_name); - - const void* original_buffer = file1.c_str(); - size_t original_length = file1.size(); +void EncodeDecodeTest::TestAssembleToStreamDisassemble( + std::string file, + size_t expected_encoded_lenth) const { + const void* original_buffer = file.c_str(); + size_t original_length = file.length(); courgette::AssemblyProgram* program = NULL; const courgette::Status parse_status = - courgette::ParseDetectedExecutable(original_buffer, original_length, + courgette::ParseDetectedExecutable(original_buffer, + original_length, &program); EXPECT_EQ(courgette::C_OK, parse_status); @@ -45,7 +45,7 @@ void EncodeDecodeTest::TestExe(const char* file_name) const { const void* buffer = sink.Buffer(); size_t length = sink.Length(); - EXPECT_EQ(971850U, length); + EXPECT_EQ(expected_encoded_lenth, length); courgette::SourceStreamSet sources; bool can_get_source_streams = sources.Init(buffer, length); @@ -68,7 +68,12 @@ void EncodeDecodeTest::TestExe(const char* file_name) const { DeleteEncodedProgram(encoded2); } +TEST_F(EncodeDecodeTest, PE) { + std::string file = FileContents("setup1.exe"); + TestAssembleToStreamDisassemble(file, 971850); +} -TEST_F(EncodeDecodeTest, All) { - TestExe("setup1.exe"); +TEST_F(EncodeDecodeTest, Elf_Small) { + std::string file = FileContents("elf-32-1"); + TestAssembleToStreamDisassemble(file, 135988); } |