diff options
| author | Jack Nagel | 2012-04-11 00:26:32 -0500 |
|---|---|---|
| committer | Jack Nagel | 2012-04-11 00:27:47 -0500 |
| commit | 4ad165ce78ccab22d4424d844010c1b204e48090 (patch) | |
| tree | d16986c6a410a11ff25f12339f3b3cb88e3383f4 /Library | |
| parent | 19273231125d2e50d4fbe9f67d92f493ae461643 (diff) | |
| download | homebrew-4ad165ce78ccab22d4424d844010c1b204e48090.tar.bz2 | |
msgpack: add test
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
Diffstat (limited to 'Library')
| -rw-r--r-- | Library/Formula/msgpack.rb | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/Library/Formula/msgpack.rb b/Library/Formula/msgpack.rb index 6715aa773..681fb22ec 100644 --- a/Library/Formula/msgpack.rb +++ b/Library/Formula/msgpack.rb @@ -13,4 +13,44 @@ class Msgpack < Formula system "./configure", "--disable-dependency-tracking", "--prefix=#{prefix}" system "make install" end + + def test + # Reference: http://wiki.msgpack.org/display/MSGPACK/QuickStart+for+C+Language + mktemp do + (Pathname.pwd/'test.c').write <<-EOS.undent + #include <msgpack.h> + #include <stdio.h> + + int main(void) + { + msgpack_sbuffer* buffer = msgpack_sbuffer_new(); + msgpack_packer* pk = msgpack_packer_new(buffer, msgpack_sbuffer_write); + msgpack_pack_int(pk, 1); + msgpack_pack_int(pk, 2); + msgpack_pack_int(pk, 3); + + /* deserializes these objects using msgpack_unpacker. */ + msgpack_unpacker pac; + msgpack_unpacker_init(&pac, MSGPACK_UNPACKER_INIT_BUFFER_SIZE); + + /* feeds the buffer. */ + msgpack_unpacker_reserve_buffer(&pac, buffer->size); + memcpy(msgpack_unpacker_buffer(&pac), buffer->data, buffer->size); + msgpack_unpacker_buffer_consumed(&pac, buffer->size); + + /* now starts streaming deserialization. */ + msgpack_unpacked result; + msgpack_unpacked_init(&result); + + while(msgpack_unpacker_next(&pac, &result)) { + msgpack_object_print(stdout, result.data); + puts(""); + } + } + EOS + + system ENV.cc, "-o", "test", "test.c", "-lmsgpack" + `./test` == "1\n2\n3\n" + end + end end |
