Start moving the tests into subfolders. Transition to SCons for build system for the tests.
Only a few tests updated so far. Have to include all the rest before merging to mainline. Update issue 63 Status: Started
This commit is contained in:
14
tests/common/SConscript
Normal file
14
tests/common/SConscript
Normal file
@@ -0,0 +1,14 @@
|
||||
# Build the common files needed by multiple test cases
|
||||
|
||||
Import('env')
|
||||
|
||||
# Protocol definitions for the encode/decode_unittests
|
||||
env.NanopbProto("unittestproto")
|
||||
|
||||
# Protocol definitions for basic_buffer/stream tests
|
||||
env.NanopbProto("person")
|
||||
|
||||
# Binaries of the pb_decode.c and pb_encode.c
|
||||
env.Object("pb_decode.o", "#../pb_decode.c")
|
||||
env.Object("pb_encode.o", "#../pb_encode.c")
|
||||
|
||||
20
tests/common/person.proto
Normal file
20
tests/common/person.proto
Normal file
@@ -0,0 +1,20 @@
|
||||
import "nanopb.proto";
|
||||
|
||||
message Person {
|
||||
required string name = 1 [(nanopb).max_size = 40];
|
||||
required int32 id = 2;
|
||||
optional string email = 3 [(nanopb).max_size = 40];
|
||||
|
||||
enum PhoneType {
|
||||
MOBILE = 0;
|
||||
HOME = 1;
|
||||
WORK = 2;
|
||||
}
|
||||
|
||||
message PhoneNumber {
|
||||
required string number = 1 [(nanopb).max_size = 40];
|
||||
optional PhoneType type = 2 [default = HOME];
|
||||
}
|
||||
|
||||
repeated PhoneNumber phone = 4 [(nanopb).max_count = 5];
|
||||
}
|
||||
32
tests/common/unittestproto.proto
Normal file
32
tests/common/unittestproto.proto
Normal file
@@ -0,0 +1,32 @@
|
||||
import 'nanopb.proto';
|
||||
|
||||
message IntegerArray {
|
||||
repeated int32 data = 1 [(nanopb).max_count = 10];
|
||||
}
|
||||
|
||||
message FloatArray {
|
||||
repeated float data = 1 [(nanopb).max_count = 10];
|
||||
}
|
||||
|
||||
message StringMessage {
|
||||
required string data = 1 [(nanopb).max_size = 10];
|
||||
}
|
||||
|
||||
message CallbackArray {
|
||||
// We cheat a bit and use this message for testing other types, too.
|
||||
// Nanopb does not care about the actual defined data type for callback
|
||||
// fields.
|
||||
repeated int32 data = 1;
|
||||
}
|
||||
|
||||
message IntegerContainer {
|
||||
required IntegerArray submsg = 1;
|
||||
}
|
||||
|
||||
message CallbackContainer {
|
||||
required CallbackArray submsg = 1;
|
||||
}
|
||||
|
||||
message CallbackContainerContainer {
|
||||
required CallbackContainer submsg = 1;
|
||||
}
|
||||
14
tests/common/unittests.h
Normal file
14
tests/common/unittests.h
Normal file
@@ -0,0 +1,14 @@
|
||||
#include <stdio.h>
|
||||
|
||||
#define COMMENT(x) printf("\n----" x "----\n");
|
||||
#define STR(x) #x
|
||||
#define STR2(x) STR(x)
|
||||
#define TEST(x) \
|
||||
if (!(x)) { \
|
||||
fprintf(stderr, "\033[31;1mFAILED:\033[22;39m " __FILE__ ":" STR2(__LINE__) " " #x "\n"); \
|
||||
status = 1; \
|
||||
} else { \
|
||||
printf("\033[32;1mOK:\033[22;39m " #x "\n"); \
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user