Build fixes for Windows/Visual C++

This commit is contained in:
Petteri Aimonen
2013-09-10 17:44:32 +03:00
parent e681dd0d75
commit f04ab838ab
13 changed files with 141 additions and 49 deletions

View File

@@ -2,11 +2,11 @@
Import("env")
env.Program(["encode_buffer.c", "#common/person.pb.c", "#common/pb_encode.o"])
env.Program(["decode_buffer.c", "#common/person.pb.c", "#common/pb_decode.o"])
enc = env.Program(["encode_buffer.c", "#common/person.pb.c", "#common/pb_encode.o"])
dec = env.Program(["decode_buffer.c", "#common/person.pb.c", "#common/pb_decode.o"])
env.RunTest("encode_buffer")
env.RunTest(["decode_buffer", "encode_buffer.output"])
env.RunTest(enc)
env.RunTest([dec, "encode_buffer.output"])
env.Decode(["encode_buffer.output", "#common/person.proto"], MESSAGE = "Person")
env.Compare(["decode_buffer.output", "encode_buffer.decoded"])

View File

@@ -9,6 +9,7 @@
#include <stdio.h>
#include <pb_decode.h>
#include "person.pb.h"
#include "test_helpers.h"
/* This function is called once from main(), it handles
the decoding and printing. */
@@ -59,9 +60,13 @@ bool print_person(pb_istream_t *stream)
int main()
{
/* Read the data into buffer */
uint8_t buffer[512];
size_t count = fread(buffer, 1, sizeof(buffer), stdin);
pb_istream_t stream;
size_t count;
/* Read the data into buffer */
SET_BINARY_MODE(stdin);
count = fread(buffer, 1, sizeof(buffer), stdin);
if (!feof(stdin))
{
@@ -70,7 +75,7 @@ int main()
}
/* Construct a pb_istream_t for reading from the buffer */
pb_istream_t stream = pb_istream_from_buffer(buffer, count);
stream = pb_istream_from_buffer(buffer, count);
/* Decode and print out the stuff */
if (!print_person(&stream))

View File

@@ -6,9 +6,13 @@
#include <stdio.h>
#include <pb_encode.h>
#include "person.pb.h"
#include "test_helpers.h"
int main()
{
uint8_t buffer[512];
pb_ostream_t stream;
/* Initialize the structure with constants */
Person person = {"Test Person 99", 99, true, "test@person.com",
3, {{"555-12345678", true, Person_PhoneType_MOBILE},
@@ -16,12 +20,13 @@ int main()
{"1234-5678", true, Person_PhoneType_WORK},
}};
uint8_t buffer[512];
pb_ostream_t stream = pb_ostream_from_buffer(buffer, sizeof(buffer));
stream = pb_ostream_from_buffer(buffer, sizeof(buffer));
/* Now encode it and check if we succeeded. */
if (pb_encode(&stream, Person_fields, &person))
{
{
/* Write the result data to stdout */
SET_BINARY_MODE(stdout);
fwrite(buffer, 1, stream.bytes_written, stdout);
return 0; /* Success */
}