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:
Petteri Aimonen
2013-09-08 17:52:03 +03:00
parent d7f3a74388
commit 262c62676c
43 changed files with 132 additions and 162 deletions

14
tests/common/SConscript Normal file
View 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
View 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];
}

View 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
View 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"); \
}