summaryrefslogtreecommitdiffstats
path: root/CAN-binder/libs/nanopb/tests/oneof/decode_oneof.c
diff options
context:
space:
mode:
authorRomain Forlot <romain.forlot@iot.bzh>2017-05-02 18:29:37 +0200
committerRomain Forlot <romain.forlot@iot.bzh>2017-05-02 18:29:37 +0200
commitb9e1b4435a406a8a27c078ea05dee1240e51704a (patch)
tree3bd5e75d001d0c1d57710c47375af5c8ba84c26c /CAN-binder/libs/nanopb/tests/oneof/decode_oneof.c
parent0242c26c2f5dc96387bca7efb118364c800f4ee7 (diff)
Added external libraries from openXC CMake files.
Now libraries are cleanly included and built. Change-Id: Iaa85639578b55b2da8357bc438426403e2cca8de Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
Diffstat (limited to 'CAN-binder/libs/nanopb/tests/oneof/decode_oneof.c')
-rw-r--r--CAN-binder/libs/nanopb/tests/oneof/decode_oneof.c131
1 files changed, 0 insertions, 131 deletions
diff --git a/CAN-binder/libs/nanopb/tests/oneof/decode_oneof.c b/CAN-binder/libs/nanopb/tests/oneof/decode_oneof.c
deleted file mode 100644
index 37075cd6..00000000
--- a/CAN-binder/libs/nanopb/tests/oneof/decode_oneof.c
+++ /dev/null
@@ -1,131 +0,0 @@
-/* Decode a message using oneof fields */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <pb_decode.h>
-#include "oneof.pb.h"
-#include "test_helpers.h"
-#include "unittests.h"
-
-/* Test the 'OneOfMessage' */
-int test_oneof_1(pb_istream_t *stream, int option)
-{
- OneOfMessage msg;
- int status = 0;
-
- /* To better catch initialization errors */
- memset(&msg, 0xAA, sizeof(msg));
-
- if (!pb_decode(stream, OneOfMessage_fields, &msg))
- {
- printf("Decoding failed: %s\n", PB_GET_ERROR(stream));
- return 1;
- }
-
- /* Check that the basic fields work normally */
- TEST(msg.prefix == 123);
- TEST(msg.suffix == 321);
-
- /* Check that we got the right oneof according to command line */
- if (option == 1)
- {
- TEST(msg.which_values == OneOfMessage_first_tag);
- TEST(msg.values.first == 999);
- }
- else if (option == 2)
- {
- TEST(msg.which_values == OneOfMessage_second_tag);
- TEST(strcmp(msg.values.second, "abcd") == 0);
- }
- else if (option == 3)
- {
- TEST(msg.which_values == OneOfMessage_third_tag);
- TEST(msg.values.third.array[0] == 1);
- TEST(msg.values.third.array[1] == 2);
- TEST(msg.values.third.array[2] == 3);
- TEST(msg.values.third.array[3] == 4);
- TEST(msg.values.third.array[4] == 5);
- }
-
- return status;
-}
-
-
-/* Test the 'PlainOneOfMessage' */
-int test_oneof_2(pb_istream_t *stream, int option)
-{
- PlainOneOfMessage msg = PlainOneOfMessage_init_zero;
- int status = 0;
-
- if (!pb_decode(stream, PlainOneOfMessage_fields, &msg))
- {
- printf("Decoding failed: %s\n", PB_GET_ERROR(stream));
- return 1;
- }
-
- /* Check that we got the right oneof according to command line */
- if (option == 1)
- {
- TEST(msg.which_values == OneOfMessage_first_tag);
- TEST(msg.values.first == 999);
- }
- else if (option == 2)
- {
- TEST(msg.which_values == OneOfMessage_second_tag);
- TEST(strcmp(msg.values.second, "abcd") == 0);
- }
- else if (option == 3)
- {
- TEST(msg.which_values == OneOfMessage_third_tag);
- TEST(msg.values.third.array[0] == 1);
- TEST(msg.values.third.array[1] == 2);
- TEST(msg.values.third.array[2] == 3);
- TEST(msg.values.third.array[3] == 4);
- TEST(msg.values.third.array[4] == 5);
- }
-
- return status;
-}
-
-int main(int argc, char **argv)
-{
- uint8_t buffer[OneOfMessage_size];
- size_t count;
- int option;
-
- if (argc != 2)
- {
- fprintf(stderr, "Usage: decode_oneof [number]\n");
- return 1;
- }
- option = atoi(argv[1]);
-
- SET_BINARY_MODE(stdin);
- count = fread(buffer, 1, sizeof(buffer), stdin);
-
- if (!feof(stdin))
- {
- printf("Message does not fit in buffer\n");
- return 1;
- }
-
- {
- int status = 0;
- pb_istream_t stream;
-
- stream = pb_istream_from_buffer(buffer, count);
- status = test_oneof_1(&stream, option);
-
- if (status != 0)
- return status;
-
- stream = pb_istream_from_buffer(buffer, count);
- status = test_oneof_2(&stream, option);
-
- if (status != 0)
- return status;
- }
-
- return 0;
-}