1 2 #include <buffer.hpp> 3 4 #include "t/int32/int32_testcase.pb.h" 5 6 TEMPLATE_TEST_CASE("write int32 field and check with libprotobuf", "", 7 buffer_test_string, buffer_test_vector, buffer_test_array, buffer_test_external) { 8 9 TestType buffer; 10 typename TestType::writer_type pw{buffer.buffer()}; 11 12 TestInt32::Test msg; 13 14 SECTION("zero") { 15 pw.add_int32(1, 0L); 16 17 msg.ParseFromArray(buffer.data(), buffer.size()); 18 19 REQUIRE(msg.i() == 0L); 20 } 21 22 SECTION("positive") { 23 pw.add_int32(1, 1L); 24 25 msg.ParseFromArray(buffer.data(), buffer.size()); 26 27 REQUIRE(msg.i() == 1L); 28 } 29 30 SECTION("negative") { 31 pw.add_int32(1, -1L); 32 33 msg.ParseFromArray(buffer.data(), buffer.size()); 34 35 REQUIRE(msg.i() == -1L); 36 } 37 38 SECTION("max") { 39 pw.add_int32(1, std::numeric_limits<int32_t>::max()); 40 41 msg.ParseFromArray(buffer.data(), buffer.size()); 42 43 REQUIRE(msg.i() == std::numeric_limits<int32_t>::max()); 44 } 45 46 SECTION("min") { 47 pw.add_int32(1, std::numeric_limits<int32_t>::min()); 48 49 msg.ParseFromArray(buffer.data(), buffer.size()); 50 51 REQUIRE(msg.i() == std::numeric_limits<int32_t>::min()); 52 } 53 54 } 55 56