summaryrefslogtreecommitdiffstats
path: root/CAN-binder/libs/nanopb/tests/anonymous_oneof
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/anonymous_oneof
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/anonymous_oneof')
-rw-r--r--CAN-binder/libs/nanopb/tests/anonymous_oneof/SConscript30
-rw-r--r--CAN-binder/libs/nanopb/tests/anonymous_oneof/decode_oneof.c88
-rw-r--r--CAN-binder/libs/nanopb/tests/anonymous_oneof/oneof.proto23
3 files changed, 0 insertions, 141 deletions
diff --git a/CAN-binder/libs/nanopb/tests/anonymous_oneof/SConscript b/CAN-binder/libs/nanopb/tests/anonymous_oneof/SConscript
deleted file mode 100644
index 1067228..0000000
--- a/CAN-binder/libs/nanopb/tests/anonymous_oneof/SConscript
+++ /dev/null
@@ -1,30 +0,0 @@
-# Test anonymous_oneof generator option
-
-Import('env')
-
-import re
-
-match = None
-if 'PROTOC_VERSION' in env:
- match = re.search('([0-9]+).([0-9]+).([0-9]+)', env['PROTOC_VERSION'])
-
-if match:
- version = map(int, match.groups())
-
-# Oneof is supported by protoc >= 2.6.0
-if env.GetOption('clean') or (match and (version[0] > 2 or (version[0] == 2 and version[1] >= 6))):
- # Anonymous oneofs are supported by clang and gcc
- if 'clang' in env['CC'] or 'gcc' in env['CC']:
- env2 = env.Clone()
- if '-pedantic' in env2['CFLAGS']:
- env2['CFLAGS'].remove('-pedantic')
- env2.NanopbProto('oneof')
-
- dec = env2.Program(['decode_oneof.c',
- 'oneof.pb.c',
- '$COMMON/pb_decode.o',
- '$COMMON/pb_common.o'])
-
- env2.RunTest("message1.txt", [dec, '$BUILD/oneof/message1.pb'], ARGS = ['1'])
- env2.RunTest("message2.txt", [dec, '$BUILD/oneof/message2.pb'], ARGS = ['2'])
- env2.RunTest("message3.txt", [dec, '$BUILD/oneof/message3.pb'], ARGS = ['3'])
diff --git a/CAN-binder/libs/nanopb/tests/anonymous_oneof/decode_oneof.c b/CAN-binder/libs/nanopb/tests/anonymous_oneof/decode_oneof.c
deleted file mode 100644
index 0f774db..0000000
--- a/CAN-binder/libs/nanopb/tests/anonymous_oneof/decode_oneof.c
+++ /dev/null
@@ -1,88 +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 'AnonymousOneOfMessage' */
-int test_oneof_1(pb_istream_t *stream, int option)
-{
- AnonymousOneOfMessage msg;
- int status = 0;
-
- /* To better catch initialization errors */
- memset(&msg, 0xAA, sizeof(msg));
-
- if (!pb_decode(stream, AnonymousOneOfMessage_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 == AnonymousOneOfMessage_first_tag);
- TEST(msg.first == 999);
- }
- else if (option == 2)
- {
- TEST(msg.which_values == AnonymousOneOfMessage_second_tag);
- TEST(strcmp(msg.second, "abcd") == 0);
- }
- else if (option == 3)
- {
- TEST(msg.which_values == AnonymousOneOfMessage_third_tag);
- TEST(msg.third.array[0] == 1);
- TEST(msg.third.array[1] == 2);
- TEST(msg.third.array[2] == 3);
- TEST(msg.third.array[3] == 4);
- TEST(msg.third.array[4] == 5);
- }
-
- return status;
-}
-
-int main(int argc, char **argv)
-{
- uint8_t buffer[AnonymousOneOfMessage_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;
- }
-
- return 0;
-}
diff --git a/CAN-binder/libs/nanopb/tests/anonymous_oneof/oneof.proto b/CAN-binder/libs/nanopb/tests/anonymous_oneof/oneof.proto
deleted file mode 100644
index d56285c..0000000
--- a/CAN-binder/libs/nanopb/tests/anonymous_oneof/oneof.proto
+++ /dev/null
@@ -1,23 +0,0 @@
-syntax = "proto2";
-
-import 'nanopb.proto';
-
-message SubMessage
-{
- repeated int32 array = 1 [(nanopb).max_count = 8];
-}
-
-/* Oneof in a message with other fields */
-message AnonymousOneOfMessage
-{
- option (nanopb_msgopt).anonymous_oneof = true;
- required int32 prefix = 1;
- oneof values
- {
- int32 first = 5;
- string second = 6 [(nanopb).max_size = 8];
- SubMessage third = 7;
- }
- required int32 suffix = 99;
-}
-