13 struct nettle_buffer buffer;
16 const uint8_t e[] = "(3:foo(3:bar17:xxxxxxxxxxxxxxxxx))";
18 nettle_buffer_init(&buffer);
19 ASSERT(sexp_format(&buffer, "(%0s(%0s%0s))",
20 "foo", "bar", "xxxxxxxxxxxxxxxxx")
23 ASSERT(sexp_format(NULL, "(%0s(%0s%0s))",
24 "foo", "bar", "xxxxxxxxxxxxxxxxx")
27 ASSERT(buffer.size == strlen(e));
28 ASSERT(MEMEQ(buffer.size, buffer.contents, e));
31 const uint8_t e[] = "{KDM6Zm9vKDM6YmFyMTc6eHh4eHh4eHh4eHh4eHh4eHgpKQ==}";
33 nettle_buffer_init(&buffer);
34 ASSERT(sexp_transport_format(&buffer, "(%0s(%0s%0s))",
35 "foo", "bar", "xxxxxxxxxxxxxxxxx")
38 ASSERT(sexp_transport_format(NULL, "(%0s(%0s%0s))",
39 "foo", "bar", "xxxxxxxxxxxxxxxxx")
42 ASSERT(buffer.size == strlen(e));
43 ASSERT(MEMEQ(buffer.size, buffer.contents, e));
46 const uint8_t e[] = "1:\0""1:a2:bc3:def4:ghij5:\x00\xDE\xAD\xBE\xEF";
48 nettle_buffer_init(&buffer);
49 ASSERT(sexp_format(&buffer, "%i%i%i%i%i%i",
50 0, 0x61, 0x6263, 0x646566, 0x6768696a, 0xDEADBEEF)
53 ASSERT(buffer.size == LLENGTH(e));
54 ASSERT(MEMEQ(buffer.size, buffer.contents, e));
58 const uint8_t e[] = "(3:foo(4:bar))";
60 nettle_buffer_init(&buffer);
61 ASSERT(sexp_format(&buffer, "(%0s%l)",
65 ASSERT(buffer.size == strlen(e));
66 ASSERT(MEMEQ(buffer.size, buffer.contents, e));
70 const uint8_t e[] = "([1:t]3:foo3:bar[6:gazonk]3:baz1:q)";
72 nettle_buffer_init(&buffer);
73 ASSERT(sexp_format(&buffer, "(%0t%0s%0s%0t%0s%0t%0s)",
74 "t", "foo", "bar", "gazonk", "baz", NULL, "q")
77 ASSERT(MEMEQ(buffer.size, buffer.contents, e));
82 const uint8_t e[] = "(3:foo(3:bar17:xxxxxxxxxxxxxxxxx))";
84 nettle_buffer_init(&buffer);
85 ASSERT(sexp_format(&buffer, "(%0s(bar%0s))",
86 "foo", "xxxxxxxxxxxxxxxxx")
89 ASSERT(sexp_format(NULL, "(%0s(bar %0s))",
90 "foo", "xxxxxxxxxxxxxxxxx")
93 ASSERT(buffer.size == strlen(e));
94 ASSERT(MEMEQ(buffer.size, buffer.contents, e));
97 const uint8_t e[] = "(3:foo(3:bar17:xxxxxxxxxxxxxxxxx))";
99 nettle_buffer_init(&buffer);
100 ASSERT(sexp_format(&buffer, "(%0s(bar xxxxxxxxxxxxxxxxx))",
104 ASSERT(sexp_format(NULL, "(%0s(bar xxxxxxxxxxxxxxxxx))",
108 ASSERT(buffer.size == strlen(e));
109 ASSERT(MEMEQ(buffer.size, buffer.contents, e));
112 /* Literal parenthesis */
114 const uint8_t e[] = ")3:foo(3:bar";
116 nettle_buffer_init(&buffer);
117 ASSERT(sexp_format(&buffer, "%)foo%(%s", 3, "bar")
120 ASSERT(sexp_format(NULL, "%)foo%(%s", 3, "bar")
123 ASSERT(buffer.size == strlen(e));
124 ASSERT(MEMEQ(buffer.size, buffer.contents, e));
134 "(3:foo(3:bar1:\xff""11:abcdefghijk13:\0\x81""abcdefghijk))";
136 nettle_buffer_clear(&buffer);
138 mpz_init_set_si(x, -1);
139 nettle_mpz_init_set_str_256_u(y, 11, "abcdefghijk");
140 nettle_mpz_init_set_str_256_u(z, 12, "\x81""abcdefghijk");
141 nettle_buffer_init(&buffer);
143 ASSERT(sexp_format(&buffer, "(%0s(%0s%b%b%b))",
144 "foo", "bar", x, y, z)
147 ASSERT(sexp_format(NULL, "(%0s(%0s%b%b%b))",
148 "foo", "bar", x, y, z)
151 ASSERT(buffer.size == LLENGTH(e));
152 ASSERT(MEMEQ(buffer.size, buffer.contents, e));
154 nettle_buffer_clear(&buffer);
157 #endif /* HAVE_LIBGMP */