# Test the functionality of the callback fields.

Import("env")

env.NanopbProto("callbacks")
enc = env.Program(["encode_callbacks.c", "callbacks.pb.c", "$COMMON/pb_encode.o", "$COMMON/pb_common.o"])
dec = env.Program(["decode_callbacks.c", "callbacks.pb.c", "$COMMON/pb_decode.o", "$COMMON/pb_common.o"])

env.RunTest(enc)
env.RunTest([dec, "encode_callbacks.output"])

env.Decode(["encode_callbacks.output", "callbacks.proto"], MESSAGE = "TestMessage")
env.Compare(["decode_callbacks.output", "encode_callbacks.decoded"])

