| # Regression test for #494: |
| # Using sizeof on anonymous union not allowed in C++, in message_size oneof sizing fallback |
| |
| Import('env') |
| import os, sys |
| |
| # The build rules here are a bit tricky to make the normal dependency |
| # resolution intentionally fail. This causes the generator to use the fallback |
| # define which had the problem with C++. |
| |
| generator_cmd = os.path.join(env['NANOPB'], 'generator-bin', 'nanopb_generator' + env['PROGSUFFIX']) |
| if not os.path.exists(generator_cmd): |
| generator_cmd = sys.executable + " " + os.path.join(env['NANOPB'], 'generator', 'nanopb_generator.py') |
| |
| env.Command("oneof.pb", "oneof.proto", "$PROTOC $PROTOCFLAGS -Ibuild/regression/issue_494 -o$TARGETS $SOURCES") |
| env.Command(["oneof.pb.c", "oneof.pb.h"], "oneof.pb", generator_cmd + " -Dbuild/regression/issue_494 $SOURCES") |
| env.NanopbProto("submessage.proto") |
| env.Depends("oneof.pb", "submessage.proto") |
| |
| test = env.Program(["oneof_size.cc"]) |
| env.Depends(test, "oneof.pb.h") |
| env.RunTest(test) |