GCC Code Coverage Report
Directory: ./ Exec Total Coverage
File: test/zserio/BitFieldUtilTest.cpp Lines: 37 37 100.0 %
Date: 2023-12-13 14:51:09 Branches: 138 620 22.3 %

Line Branch Exec Source
1
#include "zserio/BitFieldUtil.h"
2
#include "zserio/Types.h"
3
#include "zserio/CppRuntimeException.h"
4
5
#include "gtest/gtest.h"
6
7
namespace zserio
8
{
9
10


802
TEST(BitFieldUtilTest, getBitFieldLowerBound)
11
{
12









2
    EXPECT_THROW(getBitFieldLowerBound(0, true), CppRuntimeException);
13









2
    EXPECT_THROW(getBitFieldLowerBound(65, true), CppRuntimeException);
14
15









2
    EXPECT_THROW(getBitFieldLowerBound(0, false), CppRuntimeException);
16









2
    EXPECT_THROW(getBitFieldLowerBound(65, false), CppRuntimeException);
17
18



1
    EXPECT_EQ(INT64_C(-1), getBitFieldLowerBound(1, true));
19



1
    EXPECT_EQ(INT64_C(-2), getBitFieldLowerBound(2, true));
20



1
    EXPECT_EQ(INT64_C(-128), getBitFieldLowerBound(8, true));
21



1
    EXPECT_EQ(INT64_C(-32768), getBitFieldLowerBound(16, true));
22



1
    EXPECT_EQ(INT64_C(-2147483648), getBitFieldLowerBound(32, true));
23
24
    // -1 to avoid gcc warning about 9223372036854775808 being so high that's it's treated as unsigned
25



1
    EXPECT_EQ(INT64_C(-9223372036854775807)-1, getBitFieldLowerBound(64, true));
26
27



1
    EXPECT_EQ(UINT64_C(0), getBitFieldLowerBound(1, false));
28



1
    EXPECT_EQ(UINT64_C(0), getBitFieldLowerBound(2, false));
29



1
    EXPECT_EQ(UINT64_C(0), getBitFieldLowerBound(8, false));
30



1
    EXPECT_EQ(UINT64_C(0), getBitFieldLowerBound(16, false));
31



1
    EXPECT_EQ(UINT64_C(0), getBitFieldLowerBound(32, false));
32



1
    EXPECT_EQ(UINT64_C(0), getBitFieldLowerBound(64, false));
33
1
}
34
35


802
TEST(BitFieldUtilTest, getBitFieldUpperBound)
36
{
37









2
    EXPECT_THROW(getBitFieldUpperBound(0, true), CppRuntimeException);
38









2
    EXPECT_THROW(getBitFieldUpperBound(65, true), CppRuntimeException);
39
40









2
    EXPECT_THROW(getBitFieldUpperBound(0, false), CppRuntimeException);
41









2
    EXPECT_THROW(getBitFieldUpperBound(65, false), CppRuntimeException);
42
43



1
    EXPECT_EQ(UINT64_C(0), getBitFieldUpperBound(1, true));
44



1
    EXPECT_EQ(UINT64_C(1), getBitFieldUpperBound(2, true));
45



1
    EXPECT_EQ(UINT64_C(127), getBitFieldUpperBound(8, true));
46



1
    EXPECT_EQ(UINT64_C(32767), getBitFieldUpperBound(16, true));
47



1
    EXPECT_EQ(UINT64_C(2147483647), getBitFieldUpperBound(32, true));
48



1
    EXPECT_EQ(UINT64_C(9223372036854775807), getBitFieldUpperBound(64, true));
49
50



1
    EXPECT_EQ(UINT64_C(1), getBitFieldUpperBound(1, false));
51



1
    EXPECT_EQ(UINT64_C(3), getBitFieldUpperBound(2, false));
52



1
    EXPECT_EQ(UINT64_C(255), getBitFieldUpperBound(8, false));
53



1
    EXPECT_EQ(UINT64_C(65535), getBitFieldUpperBound(16, false));
54



1
    EXPECT_EQ(UINT64_C(4294967295), getBitFieldUpperBound(32, false));
55



1
    EXPECT_EQ(UINT64_C(0xffffffffffffffff), getBitFieldUpperBound(64, false));
56
1
}
57
58

2394
} // namespace zserio