1#include <msgpack.h>
2
3void test()
4{
5    size_t size = 10000000;
6    msgpack_sbuffer buf;
7    msgpack_packer * pk;
8    size_t upk_pos = 0;
9    msgpack_unpacked msg;
10
11    msgpack_sbuffer_init(&buf);
12
13    pk = msgpack_packer_new(&buf, msgpack_sbuffer_write);
14
15    msgpack_pack_array(pk, size);
16    {
17        size_t idx = 0;
18        for (; idx < size; ++idx)
19            msgpack_pack_uint32(pk, 1);
20    }
21    msgpack_packer_free(pk);
22
23    msgpack_unpacked_init(&msg);
24
25    while (msgpack_unpack_next(&msg, buf.data, buf.size, &upk_pos)) {
26    }
27
28    msgpack_sbuffer_destroy(&buf);
29}
30
31int main(void)
32{
33    int i = 0;
34    for (; i < 10; ++i) test();
35    return 0;
36}
37