diff -r 1af5c1be89f8 -r 92d87f2e53c2 tools/elf4rom/libs/dwarf-20071209/dwarfdump/testesb.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tools/elf4rom/libs/dwarf-20071209/dwarfdump/testesb.c Fri Jan 15 09:07:44 2010 +0000 @@ -0,0 +1,78 @@ +/* testesb.c + test code for esb.h esb.c + + Not part of a compiled dwarfdump. + +*/ + +#include +#include +typedef char *string; + +#include "esb.h" + +void +check(string msg, struct esb_s *data, string v) +{ + string b = esb_get_string(data); + size_t l = 0; + size_t alloc = 0; + + if (strcmp(b, v)) { + fprintf(stderr, "ERROR: %s content error %s != %s\n", msg, b, + v); + } + + l = esb_string_len(data); + + if (l != strlen(v)) { + fprintf(stderr, "ERROR: %s length error %lu != %lu\n", msg, + (unsigned long) l, (unsigned long) strlen(v)); + } + alloc = esb_get_allocated_size(data); + if (l > alloc) { + fprintf(stderr, "ERROR: %s allocation error %lu > %lu\n", msg, + (unsigned long) l, (unsigned long) alloc); + + } + + return; +} + +int +main(void) +{ + struct esb_s data; + + + esb_alloc_size(2); /* small to get all code paths tested. */ + esb_constructor(&data); + + esb_append(&data, "a"); + esb_appendn(&data, "bc", 1); + esb_append(&data, "d"); + esb_append(&data, "e"); + check("test 1", &data, "abde"); + + esb_destructor(&data); + esb_constructor(&data); + + esb_append(&data, "abcdefghij" "0123456789"); + check("test 2", &data, "abcdefghij" "0123456789"); + + esb_destructor(&data); + esb_constructor(&data); + esb_append(&data, "abcdefghij" "0123456789"); + + esb_append(&data, "abcdefghij" "0123456789"); + + esb_append(&data, "abcdefghij" "0123456789"); + + esb_append(&data, "abcdefghij" "0123456789"); + check("test 3", &data, "abcdefghij" + "0123456789" + "abcdefghij" + "0123456789" + "abcdefghij" "0123456789" "abcdefghij" "0123456789"); + return 0; +}