X-Git-Url: https://git.ozlabs.org/?a=blobdiff_plain;f=ccan%2Frfc822%2Ftest%2Ftestdata.h;h=ada262b5f544300653a301f566785e1fcaa6011b;hb=e4b6a262822484244b52c476d1b4cc9c4fd8ee2b;hp=421b74875a1c37378c95a003dbf44e73a55826d8;hpb=850364146a1cc66a92943f43dc4012d9c70902eb;p=ccan diff --git a/ccan/rfc822/test/testdata.h b/ccan/rfc822/test/testdata.h index 421b7487..ada262b5 100644 --- a/ccan/rfc822/test/testdata.h +++ b/ccan/rfc822/test/testdata.h @@ -1,12 +1,13 @@ #ifndef RFC822_TESTDATA_H #define RFC822_TESTDATA_H -#include +#include #include #include struct testhdr { const char *name, *val; + int index, last; enum rfc822_header_errors errors; }; @@ -69,12 +70,31 @@ struct testhdr bad_hdrs_hdrs[] = { #define bad_hdrs_body test_msg_1_body AEXAMPLE(bad_hdrs) +struct testhdr repeated_hdrs_1_hdrs[] = { + {"X-Repeated-Header", "#1", 0, 4}, + {"x-repeated-header", "#2", 1, 4}, + {"X-REPEATED-HEADER", "#3", 2, 4}, + {"x-rEpEaTeD-hEaDeR", "#4", 3, 4}, + {"X-Repeated-Header", "#5", 4, 4}, +}; +#define repeated_hdrs_1_body test_msg_1_body +AEXAMPLE(repeated_hdrs_1); + +struct testhdr prefix_hdr_hdrs[] = { + {"X-Prefix", "Prefix", 0}, + {"X-Prefix-and-Suffix", "Suffix", 0}, +}; +#define prefix_hdr_body test_msg_1_body +AEXAMPLE(prefix_hdr); + #define for_each_aexample(_e) \ foreach_ptr((_e), &test_msg_1, &test_msg_empty_body, \ &test_msg_nlnl_lf, &test_msg_nlnl_crlf, \ &test_msg_nlnl_mixed, \ &test_msg_space_body, \ - &bad_hdrs) + &bad_hdrs, \ + &repeated_hdrs_1, \ + &prefix_hdr) #define for_each_aexample_buf(_e, _buf, _len) \ for_each_aexample((_e)) \ @@ -107,30 +127,26 @@ static inline const char *assemble_msg(const struct aexample *e, { const char *nl = crlf ? "\r\n" : "\n"; int nln = crlf ? 2 : 1; - char *msg, *amsg; + char *msg; size_t n = 0; int i; - msg = talloc_strdup(NULL, ""); + msg = tal_strdup(NULL, ""); if (!msg) return NULL; for (i = 0; i < e->nhdrs; i++) { - amsg = talloc_asprintf_append(msg, "%s:%s%s", e->hdrs[i].name, - e->hdrs[i].val, nl); - if (!amsg) { - talloc_free(msg); + if (!tal_append_fmt(&msg, "%s:%s%s", e->hdrs[i].name, + e->hdrs[i].val, nl)) { + tal_free(msg); return NULL; } - msg = amsg; n += strlen(e->hdrs[i].name) + strlen(e->hdrs[i].val) + 1 + nln; } - amsg = talloc_asprintf_append(msg, "%s%s", nl, e->body); - if (!amsg) { - talloc_free(msg); + if (!tal_append_fmt(&msg, "%s%s", nl, e->body)) { + tal_free(msg); return NULL; } - msg = amsg; n += strlen(e->body) + nln; *len = n; return msg;