diff options
author | Sascha Silbe <sascha-pgp@silbe.org> | 2010-07-21 17:30:43 (GMT) |
---|---|---|
committer | Sascha Silbe <sascha-pgp@silbe.org> | 2010-07-21 17:30:43 (GMT) |
commit | 5ab8ddb8ddb8dc6925cb3bb5f52e0a06b7a1c439 (patch) | |
tree | 01e6ca6d9d6eaa54052480200f039c8e50f0166f /nss/test_format_buf.c | |
parent | d4fe57f377d8f78f02a9e5f6d9c201b4e9eb86f4 (diff) |
rearrange source tree to match that of the tarball
Diffstat (limited to 'nss/test_format_buf.c')
-rw-r--r-- | nss/test_format_buf.c | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/nss/test_format_buf.c b/nss/test_format_buf.c new file mode 100644 index 0000000..40577ba --- /dev/null +++ b/nss/test_format_buf.c @@ -0,0 +1,78 @@ +#define _GNU_SOURCE +#include <string.h> +#include <stdio.h> +#include <stddef.h> +#include <errno.h> +#include <assert.h> + +#include "cgen.h" +#include "buf.h" +#include "config/debug.h" + +int main() { + char init[] = "aaaa"; + char buf[] = "aaaa"; + char good5[] = "b\0aa"; + char good2[] = "b\0aa"; + char good1[] = "\0aaa"; + char good0[] = "aaaa"; + + char* ptr; + size_t len, old_len, i; + int ret; + + ptr = buf; + old_len = len = sizeof(buf); + ret = format_buf(&ptr, &len, "b"); + + assert(ret == 0 && errno == 0); + assert(len == old_len - 2); + assert(ptr == buf+2); + for(i = 0; i < sizeof(buf); i++) + assert(buf[i] == good5[i]); + + for(i = 0; i < sizeof(buf); i++) + buf[i] = init[i]; + + ptr = buf; + old_len = len = 2; + ret = format_buf(&ptr, &len, "b"); + + assert(ret == 0 && errno == 0); + assert(len == old_len - 2); + assert(ptr == buf+2); + for(i = 0; i < sizeof(buf); i++) + assert(buf[i] == good2[i]); + + for(i = 0; i < sizeof(buf); i++) + buf[i] = init[i]; + + ptr = buf; + old_len = len = 1; + ret = format_buf(&ptr, &len, "b"); + + assert(ret == 1 && errno == ERANGE); + assert(len == old_len); + assert(ptr == buf); + for(i = 0; i < sizeof(buf); i++) + assert(buf[i] == good1[i]); + + for(i = 0; i < sizeof(buf); i++) + buf[i] = init[i]; + + ptr = buf; + old_len = len = 0; + ret = format_buf(&ptr, &len, "b"); + + assert(ret == 1 && errno == ERANGE); + assert(len == old_len); + assert(ptr == buf); + for(i = 0; i < sizeof(buf); i++) + assert(buf[i] == good0[i]); + + for(i = 0; i < sizeof(buf); i++) + buf[i] = init[i]; + + return 0; +} + |