summaryrefslogtreecommitdiffstats
path: root/courgette/encode_decode_unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'courgette/encode_decode_unittest.cc')
-rw-r--r--courgette/encode_decode_unittest.cc29
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);
}