aboutsummaryrefslogtreecommitdiff
path: root/src/common/test_assembler_unittest.cc
diff options
context:
space:
mode:
authorjimblandy <jimblandy@4c0a9323-5329-0410-9bdc-e9ce6186880e>2010-05-05 17:37:58 +0000
committerjimblandy <jimblandy@4c0a9323-5329-0410-9bdc-e9ce6186880e>2010-05-05 17:37:58 +0000
commit073a7f6695bd16937eb0345459de2ad10c4e0cd2 (patch)
tree208863bfc53e5671b4057c31a9bacd49d70e5a29 /src/common/test_assembler_unittest.cc
parentBreakpad Mac Dumper: Fix compilation warnings on OS X 10.6 (diff)
downloadbreakpad-073a7f6695bd16937eb0345459de2ad10c4e0cd2.tar.xz
Breakpad unit tests: Add support for clipped-size null-terminated strings
to TestAssembler::Section. This patch helps the TestAssembler classes generate Mach-O object files for use as test input. This patch adds a new AppendCString overloading to TestAssembler::Section for emitting null-terminated strings in fixed-length buffers, where the string is truncated and the terminating null character omitted if the string is too large for the buffer. The patch includes unit tests for the new AppendCString overloading. It also provides some for the existing overloading, which had been neglected. a=jimblandy, r=mark git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@590 4c0a9323-5329-0410-9bdc-e9ce6186880e
Diffstat (limited to 'src/common/test_assembler_unittest.cc')
-rw-r--r--src/common/test_assembler_unittest.cc18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/common/test_assembler_unittest.cc b/src/common/test_assembler_unittest.cc
index 9b6990ce..c26a9383 100644
--- a/src/common/test_assembler_unittest.cc
+++ b/src/common/test_assembler_unittest.cc
@@ -788,6 +788,24 @@ TEST_F(Append, String) {
ASSERT_STREQ(contents.c_str(), "howdy there");
}
+TEST_F(Append, CString) {
+ section.AppendCString("howdy");
+ section.AppendCString("");
+ section.AppendCString("there");
+ ASSERT_TRUE(section.GetContents(&contents));
+ ASSERT_EQ(string("howdy\0\0there\0", 13), contents);
+}
+
+TEST_F(Append, CStringSize) {
+ section.AppendCString("howdy", 3);
+ section.AppendCString("there", 5);
+ section.AppendCString("fred", 6);
+ section.AppendCString("natalie", 0);
+ section.AppendCString("", 10);
+ ASSERT_TRUE(section.GetContents(&contents));
+ ASSERT_EQ(string("howtherefred\0\0\0\0\0\0\0\0\0\0\0\0", 24), contents);
+}
+
TEST_F(Append, RepeatedBytes) {
section.Append((size_t) 10, '*');
ASSERT_TRUE(section.GetContents(&contents));