Skip to content
Snippets Groups Projects
Commit ba40cacd authored by Petteri Aimonen's avatar Petteri Aimonen
Browse files

Finish the testcase for extensions

parent 1f13e8cd
No related branches found
No related tags found
No related merge requests found
* max_size:16
......@@ -3,3 +3,13 @@ import 'alltypes.proto';
extend AllTypes {
optional int32 AllTypes_extensionfield1 = 255;
}
message ExtensionMessage {
extend AllTypes {
optional ExtensionMessage AllTypes_extensionfield2 = 254;
}
required string test1 = 1;
required int32 test2 = 2;
}
......@@ -7,6 +7,11 @@
#include "alltypes.pb.h"
#include "extensions.pb.h"
#define TEST(x) if (!(x)) { \
printf("Test " #x " failed.\n"); \
return 2; \
}
int main(int argc, char **argv)
{
uint8_t buffer[1024];
......@@ -14,9 +19,14 @@ int main(int argc, char **argv)
pb_istream_t stream = pb_istream_from_buffer(buffer, count);
AllTypes alltypes = {};
int32_t extensionfield1;
pb_extension_t ext1 = {&AllTypes_extensionfield1, &extensionfield1, NULL};
alltypes.extensions = &ext1;
ExtensionMessage extensionfield2 = {};
pb_extension_t ext2 = {&ExtensionMessage_AllTypes_extensionfield2, &extensionfield2, NULL};
ext1.next = &ext2;
if (!pb_decode(&stream, AllTypes_fields, &alltypes))
{
......@@ -24,11 +34,9 @@ int main(int argc, char **argv)
return 1;
}
if (extensionfield1 != 12345)
{
printf("Wrong value for extension field: %d\n", extensionfield1);
return 2;
}
TEST(extensionfield1 == 12345)
TEST(strcmp(extensionfield2.test1, "test") == 0)
TEST(extensionfield2.test2 == 54321)
return 0;
}
......
......@@ -11,10 +11,14 @@
int main(int argc, char **argv)
{
AllTypes alltypes = {};
int32_t extensionfield1 = 12345;
pb_extension_t ext1 = {&AllTypes_extensionfield1, &extensionfield1, NULL};
alltypes.extensions = &ext1;
ExtensionMessage extensionfield2 = {"test", 54321};
pb_extension_t ext2 = {&ExtensionMessage_AllTypes_extensionfield2, &extensionfield2, NULL};
ext1.next = &ext2;
uint8_t buffer[1024];
pb_ostream_t stream = pb_ostream_from_buffer(buffer, sizeof(buffer));
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment