aboutsummaryrefslogtreecommitdiffstats
path: root/CAN-binder/libs/nanopb/tests/callbacks/decode_callbacks.c
diff options
context:
space:
mode:
authorRomain Forlot <romain.forlot@iot.bzh>2017-06-20 10:24:05 +0000
committerRomain Forlot <romain.forlot@iot.bzh>2017-06-20 10:24:05 +0000
commit32e25cbca210a359b09768537b6f443fe90a3070 (patch)
tree3309794c15d8a8f8e9c1c08cad072ee1378813ba /CAN-binder/libs/nanopb/tests/callbacks/decode_callbacks.c
parent76c43dec62b2e21cd6446360c00d4fe6b437533f (diff)
Separation Generator to a dedicated repo
Change-Id: Id94831651c3266861435272a6e36c7884bef2c45 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
Diffstat (limited to 'CAN-binder/libs/nanopb/tests/callbacks/decode_callbacks.c')
-rw-r--r--CAN-binder/libs/nanopb/tests/callbacks/decode_callbacks.c97
1 files changed, 0 insertions, 97 deletions
diff --git a/CAN-binder/libs/nanopb/tests/callbacks/decode_callbacks.c b/CAN-binder/libs/nanopb/tests/callbacks/decode_callbacks.c
deleted file mode 100644
index 45724d0b..00000000
--- a/CAN-binder/libs/nanopb/tests/callbacks/decode_callbacks.c
+++ /dev/null
@@ -1,97 +0,0 @@
-/* Decoding testcase for callback fields.
- * Run e.g. ./test_encode_callbacks | ./test_decode_callbacks
- */
-
-#include <stdio.h>
-#include <pb_decode.h>
-#include "callbacks.pb.h"
-#include "test_helpers.h"
-
-bool print_string(pb_istream_t *stream, const pb_field_t *field, void **arg)
-{
- uint8_t buffer[1024] = {0};
-
- /* We could read block-by-block to avoid the large buffer... */
- if (stream->bytes_left > sizeof(buffer) - 1)
- return false;
-
- if (!pb_read(stream, buffer, stream->bytes_left))
- return false;
-
- /* Print the string, in format comparable with protoc --decode.
- * Format comes from the arg defined in main().
- */
- printf((char*)*arg, buffer);
- return true;
-}
-
-bool print_int32(pb_istream_t *stream, const pb_field_t *field, void **arg)
-{
- uint64_t value;
- if (!pb_decode_varint(stream, &value))
- return false;
-
- printf((char*)*arg, (long)value);
- return true;
-}
-
-bool print_fixed32(pb_istream_t *stream, const pb_field_t *field, void **arg)
-{
- uint32_t value;
- if (!pb_decode_fixed32(stream, &value))
- return false;
-
- printf((char*)*arg, (long)value);
- return true;
-}
-
-bool print_fixed64(pb_istream_t *stream, const pb_field_t *field, void **arg)
-{
- uint64_t value;
- if (!pb_decode_fixed64(stream, &value))
- return false;
-
- printf((char*)*arg, (long)value);
- return true;
-}
-
-int main()
-{
- uint8_t buffer[1024];
- size_t length;
- pb_istream_t stream;
- /* Note: empty initializer list initializes the struct with all-0.
- * This is recommended so that unused callbacks are set to NULL instead
- * of crashing at runtime.
- */
- TestMessage testmessage = {{{NULL}}};
-
- SET_BINARY_MODE(stdin);
- length = fread(buffer, 1, 1024, stdin);
- stream = pb_istream_from_buffer(buffer, length);
-
- testmessage.submsg.stringvalue.funcs.decode = &print_string;
- testmessage.submsg.stringvalue.arg = "submsg {\n stringvalue: \"%s\"\n";
- testmessage.submsg.int32value.funcs.decode = &print_int32;
- testmessage.submsg.int32value.arg = " int32value: %ld\n";
- testmessage.submsg.fixed32value.funcs.decode = &print_fixed32;
- testmessage.submsg.fixed32value.arg = " fixed32value: %ld\n";
- testmessage.submsg.fixed64value.funcs.decode = &print_fixed64;
- testmessage.submsg.fixed64value.arg = " fixed64value: %ld\n}\n";
-
- testmessage.stringvalue.funcs.decode = &print_string;
- testmessage.stringvalue.arg = "stringvalue: \"%s\"\n";
- testmessage.int32value.funcs.decode = &print_int32;
- testmessage.int32value.arg = "int32value: %ld\n";
- testmessage.fixed32value.funcs.decode = &print_fixed32;
- testmessage.fixed32value.arg = "fixed32value: %ld\n";
- testmessage.fixed64value.funcs.decode = &print_fixed64;
- testmessage.fixed64value.arg = "fixed64value: %ld\n";
- testmessage.repeatedstring.funcs.decode = &print_string;
- testmessage.repeatedstring.arg = "repeatedstring: \"%s\"\n";
-
- if (!pb_decode(&stream, TestMessage_fields, &testmessage))
- return 1;
-
- return 0;
-}