Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
JBig2_BitStream_unittest.cpp
Go to the documentation of this file.
1
// Copyright 2017 The PDFium Authors
2
// Use of this source code is governed by a BSD-style license that can be
3
// found in the LICENSE file.
4
5
#
include
"core/fxcodec/jbig2/JBig2_BitStream.h"
6
7
#
include
"testing/gtest/include/gtest/gtest.h"
8
9
TEST
(
JBig2_BitStream
,
ReadNBits
) {
10
const
uint8_t kData[] = {0xb1};
// 10110001
11
CJBig2_BitStream
stream(kData, 0);
12
13
uint32_t val1;
14
EXPECT_EQ(0, stream
.
readNBits
(
1
,
&val1
)
);
15
EXPECT_EQ(1U, val1);
16
17
int32_t val2;
18
EXPECT_EQ(0, stream
.
readNBits
(
1
,
&val2
)
);
19
EXPECT_EQ(0, val2);
20
21
EXPECT_EQ(0, stream
.
readNBits
(
2
,
&val2
)
);
22
EXPECT_EQ(3, val2);
23
24
EXPECT_EQ(0, stream
.
readNBits
(
4
,
&val2
)
);
25
EXPECT_EQ(1, val2);
26
}
27
28
TEST
(
JBig2_BitStream
,
ReadNBitsLargerThenData
) {
29
const
uint8_t kData[] = {0xb1};
// 10110001
30
CJBig2_BitStream
stream(kData, 42);
31
32
uint32_t val1;
33
EXPECT_EQ(0, stream
.
readNBits
(
10
,
&val1
)
);
34
EXPECT_EQ(0xb1U, val1);
35
}
36
37
TEST
(
JBig2_BitStream
,
ReadNBitsNullStream
) {
38
CJBig2_BitStream
stream({}, 0);
39
40
uint32_t val1;
41
EXPECT_EQ(-1, stream
.
readNBits
(
1
,
&val1
)
);
42
43
int32_t val2;
44
EXPECT_EQ(-1, stream
.
readNBits
(
2
,
&val2
)
);
45
}
46
47
TEST
(
JBig2_BitStream
,
ReadNBitsOutOfBounds
) {
48
const
uint8_t kData[] = {0xb1};
// 10110001
49
CJBig2_BitStream
stream(kData, 42);
50
51
uint32_t val1;
52
EXPECT_EQ(0, stream
.
readNBits
(
8
,
&val1
)
);
53
54
int32_t val2;
55
EXPECT_EQ(-1, stream
.
readNBits
(
2
,
&val2
)
);
56
}
57
58
TEST
(
JBig2_BitStream
,
ReadNBitsWhereNIs36
) {
59
const
uint8_t kData[] = {0xb0, 0x01, 0x00, 0x00, 0x40};
60
CJBig2_BitStream
stream(kData, 42);
61
62
// This will shift off the top two bits and they end up lost.
63
uint32_t val1;
64
EXPECT_EQ(0, stream
.
readNBits
(
34
,
&val1
)
);
65
EXPECT_EQ(0xc0040001U, val1);
66
}
CJBig2_BitStream
Definition
JBig2_BitStream.h:13
CJBig2_BitStream::readNBits
int32_t readNBits(uint32_t dwBits, int32_t *nResult)
Definition
JBig2_BitStream.cpp:51
CJBig2_BitStream::readNBits
int32_t readNBits(uint32_t dwBits, uint32_t *dwResult)
Definition
JBig2_BitStream.cpp:29
TEST
TEST(FXCRYPT, MD5GenerateEmtpyData)
Definition
fx_crypt_unittest.cpp:45
qtwebengine
src
3rdparty
chromium
third_party
pdfium
core
fxcodec
jbig2
JBig2_BitStream_unittest.cpp
Generated on Sat Sep 21 2024 00:54:37 for Qt by
1.12.0