File: test-generated-code.c

package info (click to toggle)
protobuf-c 1.0.2-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 2,252 kB
  • ctags: 1,221
  • sloc: sh: 11,353; ansic: 4,399; cpp: 3,345; xml: 181; makefile: 162
file content (37 lines) | stat: -rw-r--r-- 967 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include "t/test.pb-c.h"
#include <string.h>
#include <stdlib.h>
#include <stdio.h>

int main()
{
  Foo__Person person = FOO__PERSON__INIT;
  Foo__Person *person2;
  unsigned char simple_pad[8];
  size_t size, size2;
  unsigned char *packed;
  ProtobufCBufferSimple bs = PROTOBUF_C_BUFFER_SIMPLE_INIT (simple_pad);

  person.name = "dave b";
  person.id = 42;
  size = foo__person__get_packed_size (&person);
  packed = malloc (size);
  assert (packed);
  size2 = foo__person__pack (&person, packed);
  assert (size == size2);
  foo__person__pack_to_buffer (&person, &bs.base);
  assert (bs.len == size);
  assert (memcmp (bs.data, packed, size) == 0);
  PROTOBUF_C_BUFFER_SIMPLE_CLEAR (&bs);
  person2 = foo__person__unpack (NULL, size, packed);
  assert (person2 != NULL);
  assert (person2->id == 42);
  assert (strcmp (person2->name, "dave b") == 0);

  foo__person__free_unpacked (person2, NULL);
  free (packed);

  printf ("test succeeded.\n");

  return 0;
}