Line data Source code
1 : #include <stdio.h> 2 : #include <string.h> 3 : #include <pb_encode.h> 4 : #include "unittests.h" 5 : #include "enums.pb.h" 6 : 7 1 : int main() 8 : { 9 1 : int status = 0; 10 : 11 : uint8_t buf[256]; 12 : SignedMsg msg1; 13 : UnsignedMsg msg2; 14 : pb_ostream_t s; 15 : 16 : { 17 1 : COMMENT("Test negative value of signed enum"); 18 : /* Negative value should take up the maximum size */ 19 1 : msg1.value = SignedEnum_SE_MIN; 20 1 : s = pb_ostream_from_buffer(buf, sizeof(buf)); 21 1 : TEST(pb_encode(&s, SignedMsg_fields, &msg1)); 22 1 : TEST(s.bytes_written == SignedMsg_size); 23 : 24 1 : COMMENT("Test positive value of signed enum"); 25 : /* Positive value should be smaller */ 26 1 : msg1.value = SignedEnum_SE_MAX; 27 1 : s = pb_ostream_from_buffer(buf, sizeof(buf)); 28 1 : TEST(pb_encode(&s, SignedMsg_fields, &msg1)); 29 1 : TEST(s.bytes_written < SignedMsg_size); 30 : } 31 : 32 : { 33 1 : COMMENT("Test positive value of unsigned enum"); 34 : /* This should take up the maximum size */ 35 1 : msg2.value = UnsignedEnum_UE_MAX; 36 1 : s = pb_ostream_from_buffer(buf, sizeof(buf)); 37 1 : TEST(pb_encode(&s, UnsignedMsg_fields, &msg2)); 38 1 : TEST(s.bytes_written == UnsignedMsg_size); 39 : } 40 : 41 1 : return status; 42 : } 43 :