Skip to content

Commit ec4d27f

Browse files
committed
Merge #18216: test, build: Enable -Werror=sign-compare
6853727 build: Enable -Werror=sign-compare (Ben Woosley) eac6a30 refactor: Rework asmap Interpret to avoid ptrdiff_t (Ben Woosley) df37377 test: Fix outstanding -Wsign-compare errors (Ben Woosley) Pull request description: Disallowing sign-comparison mismatches can help to prevent the introduction of overflow and interpretation bugs. In this case, ~all~ most existing violations are in the tests, and most simply required annotating the literal as unsigned for comparison. This was previously prevented by violations in leveldb which were fixed upstream and merged in #17398. You can test that by building this branch against: 22d1118 vs 75fb37c ACKs for top commit: fjahr: re-ACK 6853727 practicalswift: ACK 6853727 Tree-SHA512: 14b5daa38c496fb51548feb30fb4dd179e6f76a8d355f52bc8e2a18f2f9340f0bc98dcf36d8b3d6521045d013891c3103749a4eda88ceef00202a6a0cf93f73c
2 parents 88d8b4e + 6853727 commit ec4d27f

15 files changed

+81
-76
lines changed

configure.ac

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -367,6 +367,7 @@ if test "x$enable_werror" = "xyes"; then
367367
AX_CHECK_COMPILE_FLAG([-Werror=date-time],[ERROR_CXXFLAGS="$ERROR_CXXFLAGS -Werror=date-time"],,[[$CXXFLAG_WERROR]])
368368
AX_CHECK_COMPILE_FLAG([-Werror=return-type],[ERROR_CXXFLAGS="$ERROR_CXXFLAGS -Werror=return-type"],,[[$CXXFLAG_WERROR]])
369369
AX_CHECK_COMPILE_FLAG([-Werror=conditional-uninitialized],[ERROR_CXXFLAGS="$ERROR_CXXFLAGS -Werror=conditional-uninitialized"],,[[$CXXFLAG_WERROR]])
370+
AX_CHECK_COMPILE_FLAG([-Werror=sign-compare],[ERROR_CXXFLAGS="$ERROR_CXXFLAGS -Werror=sign-compare"],,[[$CXXFLAG_WERROR]])
370371
fi
371372

372373
if test "x$CXXFLAGS_overridden" = "xno"; then
@@ -383,6 +384,7 @@ if test "x$CXXFLAGS_overridden" = "xno"; then
383384
AX_CHECK_COMPILE_FLAG([-Wunused-variable],[WARN_CXXFLAGS="$WARN_CXXFLAGS -Wunused-variable"],,[[$CXXFLAG_WERROR]])
384385
AX_CHECK_COMPILE_FLAG([-Wdate-time],[WARN_CXXFLAGS="$WARN_CXXFLAGS -Wdate-time"],,[[$CXXFLAG_WERROR]])
385386
AX_CHECK_COMPILE_FLAG([-Wconditional-uninitialized],[WARN_CXXFLAGS="$WARN_CXXFLAGS -Wconditional-uninitialized"],,[[$CXXFLAG_WERROR]])
387+
AX_CHECK_COMPILE_FLAG([-Wsign-compare],[WARN_CXXFLAGS="$WARN_CXXFLAGS -Wsign-compare"],,[[$CXXFLAG_WERROR]])
386388

387389
dnl Some compilers (gcc) ignore unknown -Wno-* options, but warn about all
388390
dnl unknown options if any other warning is produced. Test the -Wfoo case, and

src/test/blockfilter_index_tests.cpp

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,8 @@ static bool CheckFilterLookups(BlockFilterIndex& filter_index, const CBlockIndex
4343
BOOST_CHECK(filter_index.LookupFilterHashRange(block_index->nHeight, block_index,
4444
filter_hashes));
4545

46-
BOOST_CHECK_EQUAL(filters.size(), 1);
47-
BOOST_CHECK_EQUAL(filter_hashes.size(), 1);
46+
BOOST_CHECK_EQUAL(filters.size(), 1U);
47+
BOOST_CHECK_EQUAL(filter_hashes.size(), 1U);
4848

4949
BOOST_CHECK_EQUAL(filter.GetHash(), expected_filter.GetHash());
5050
BOOST_CHECK_EQUAL(filter_header, expected_filter.ComputeHeader(last_header));
@@ -255,8 +255,9 @@ BOOST_FIXTURE_TEST_CASE(blockfilter_index_initial_sync, BuildChainTestingSetup)
255255
BOOST_CHECK(filter_index.LookupFilterRange(0, tip, filters));
256256
BOOST_CHECK(filter_index.LookupFilterHashRange(0, tip, filter_hashes));
257257

258-
BOOST_CHECK_EQUAL(filters.size(), tip->nHeight + 1);
259-
BOOST_CHECK_EQUAL(filter_hashes.size(), tip->nHeight + 1);
258+
assert(tip->nHeight >= 0);
259+
BOOST_CHECK_EQUAL(filters.size(), tip->nHeight + 1U);
260+
BOOST_CHECK_EQUAL(filter_hashes.size(), tip->nHeight + 1U);
260261

261262
filters.clear();
262263
filter_hashes.clear();

src/test/blockfilter_tests.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -42,14 +42,14 @@ BOOST_AUTO_TEST_CASE(gcsfilter_test)
4242
BOOST_AUTO_TEST_CASE(gcsfilter_default_constructor)
4343
{
4444
GCSFilter filter;
45-
BOOST_CHECK_EQUAL(filter.GetN(), 0);
46-
BOOST_CHECK_EQUAL(filter.GetEncoded().size(), 1);
45+
BOOST_CHECK_EQUAL(filter.GetN(), 0U);
46+
BOOST_CHECK_EQUAL(filter.GetEncoded().size(), 1U);
4747

4848
const GCSFilter::Params& params = filter.GetParams();
49-
BOOST_CHECK_EQUAL(params.m_siphash_k0, 0);
50-
BOOST_CHECK_EQUAL(params.m_siphash_k1, 0);
49+
BOOST_CHECK_EQUAL(params.m_siphash_k0, 0U);
50+
BOOST_CHECK_EQUAL(params.m_siphash_k1, 0U);
5151
BOOST_CHECK_EQUAL(params.m_P, 0);
52-
BOOST_CHECK_EQUAL(params.m_M, 1);
52+
BOOST_CHECK_EQUAL(params.m_M, 1U);
5353
}
5454

5555
BOOST_AUTO_TEST_CASE(blockfilter_basic_test)

src/test/bloom_tests.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -488,7 +488,7 @@ BOOST_AUTO_TEST_CASE(rolling_bloom)
488488
++nHits;
489489
}
490490
// Expect about 100 hits
491-
BOOST_CHECK_EQUAL(nHits, 75);
491+
BOOST_CHECK_EQUAL(nHits, 75U);
492492

493493
BOOST_CHECK(rb1.contains(data[DATASIZE-1]));
494494
rb1.reset();
@@ -516,7 +516,7 @@ BOOST_AUTO_TEST_CASE(rolling_bloom)
516516
++nHits;
517517
}
518518
// Expect about 5 false positives
519-
BOOST_CHECK_EQUAL(nHits, 6);
519+
BOOST_CHECK_EQUAL(nHits, 6U);
520520

521521
// last-1000-entry, 0.01% false positive:
522522
CRollingBloomFilter rb2(1000, 0.001);

src/test/compress_tests.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -70,14 +70,14 @@ BOOST_AUTO_TEST_CASE(compress_script_to_ckey_id)
7070
CPubKey pubkey = key.GetPubKey();
7171

7272
CScript script = CScript() << OP_DUP << OP_HASH160 << ToByteVector(pubkey.GetID()) << OP_EQUALVERIFY << OP_CHECKSIG;
73-
BOOST_CHECK_EQUAL(script.size(), 25);
73+
BOOST_CHECK_EQUAL(script.size(), 25U);
7474

7575
std::vector<unsigned char> out;
7676
bool done = CompressScript(script, out);
7777
BOOST_CHECK_EQUAL(done, true);
7878

7979
// Check compressed script
80-
BOOST_CHECK_EQUAL(out.size(), 21);
80+
BOOST_CHECK_EQUAL(out.size(), 21U);
8181
BOOST_CHECK_EQUAL(out[0], 0x00);
8282
BOOST_CHECK_EQUAL(memcmp(&out[1], &script[3], 20), 0); // compare the 20 relevant chars of the CKeyId in the script
8383
}
@@ -87,14 +87,14 @@ BOOST_AUTO_TEST_CASE(compress_script_to_cscript_id)
8787
// case CScriptID
8888
CScript script, redeemScript;
8989
script << OP_HASH160 << ToByteVector(CScriptID(redeemScript)) << OP_EQUAL;
90-
BOOST_CHECK_EQUAL(script.size(), 23);
90+
BOOST_CHECK_EQUAL(script.size(), 23U);
9191

9292
std::vector<unsigned char> out;
9393
bool done = CompressScript(script, out);
9494
BOOST_CHECK_EQUAL(done, true);
9595

9696
// Check compressed script
97-
BOOST_CHECK_EQUAL(out.size(), 21);
97+
BOOST_CHECK_EQUAL(out.size(), 21U);
9898
BOOST_CHECK_EQUAL(out[0], 0x01);
9999
BOOST_CHECK_EQUAL(memcmp(&out[1], &script[2], 20), 0); // compare the 20 relevant chars of the CScriptId in the script
100100
}
@@ -105,14 +105,14 @@ BOOST_AUTO_TEST_CASE(compress_script_to_compressed_pubkey_id)
105105
key.MakeNewKey(true); // case compressed PubKeyID
106106

107107
CScript script = CScript() << ToByteVector(key.GetPubKey()) << OP_CHECKSIG; // COMPRESSED_PUBLIC_KEY_SIZE (33)
108-
BOOST_CHECK_EQUAL(script.size(), 35);
108+
BOOST_CHECK_EQUAL(script.size(), 35U);
109109

110110
std::vector<unsigned char> out;
111111
bool done = CompressScript(script, out);
112112
BOOST_CHECK_EQUAL(done, true);
113113

114114
// Check compressed script
115-
BOOST_CHECK_EQUAL(out.size(), 33);
115+
BOOST_CHECK_EQUAL(out.size(), 33U);
116116
BOOST_CHECK_EQUAL(memcmp(&out[0], &script[1], 1), 0);
117117
BOOST_CHECK_EQUAL(memcmp(&out[1], &script[2], 32), 0); // compare the 32 chars of the compressed CPubKey
118118
}
@@ -122,14 +122,14 @@ BOOST_AUTO_TEST_CASE(compress_script_to_uncompressed_pubkey_id)
122122
CKey key;
123123
key.MakeNewKey(false); // case uncompressed PubKeyID
124124
CScript script = CScript() << ToByteVector(key.GetPubKey()) << OP_CHECKSIG; // PUBLIC_KEY_SIZE (65)
125-
BOOST_CHECK_EQUAL(script.size(), 67); // 1 char code + 65 char pubkey + OP_CHECKSIG
125+
BOOST_CHECK_EQUAL(script.size(), 67U); // 1 char code + 65 char pubkey + OP_CHECKSIG
126126

127127
std::vector<unsigned char> out;
128128
bool done = CompressScript(script, out);
129129
BOOST_CHECK_EQUAL(done, true);
130130

131131
// Check compressed script
132-
BOOST_CHECK_EQUAL(out.size(), 33);
132+
BOOST_CHECK_EQUAL(out.size(), 33U);
133133
BOOST_CHECK_EQUAL(memcmp(&out[1], &script[2], 32), 0); // first 32 chars of CPubKey are copied into out[1:]
134134
BOOST_CHECK_EQUAL(out[0], 0x04 | (script[65] & 0x01)); // least significant bit (lsb) of last char of pubkey is mapped into out[0]
135135
}

src/test/descriptor_tests.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -232,7 +232,7 @@ void DoCheck(const std::string& prv, const std::string& pub, int flags, const st
232232
std::vector<CScript> spks_inferred;
233233
FlatSigningProvider provider_inferred;
234234
BOOST_CHECK(inferred->Expand(0, provider_inferred, spks_inferred, provider_inferred));
235-
BOOST_CHECK_EQUAL(spks_inferred.size(), 1);
235+
BOOST_CHECK_EQUAL(spks_inferred.size(), 1U);
236236
BOOST_CHECK(spks_inferred[0] == spks[n]);
237237
BOOST_CHECK_EQUAL(IsSolvable(provider_inferred, spks_inferred[0]), !(flags & UNSOLVABLE));
238238
BOOST_CHECK(provider_inferred.origins == script_provider.origins);

src/test/flatfile_tests.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -93,16 +93,16 @@ BOOST_AUTO_TEST_CASE(flatfile_allocate)
9393

9494
bool out_of_space;
9595

96-
BOOST_CHECK_EQUAL(seq.Allocate(FlatFilePos(0, 0), 1, out_of_space), 100);
97-
BOOST_CHECK_EQUAL(fs::file_size(seq.FileName(FlatFilePos(0, 0))), 100);
96+
BOOST_CHECK_EQUAL(seq.Allocate(FlatFilePos(0, 0), 1, out_of_space), 100U);
97+
BOOST_CHECK_EQUAL(fs::file_size(seq.FileName(FlatFilePos(0, 0))), 100U);
9898
BOOST_CHECK(!out_of_space);
9999

100-
BOOST_CHECK_EQUAL(seq.Allocate(FlatFilePos(0, 99), 1, out_of_space), 0);
101-
BOOST_CHECK_EQUAL(fs::file_size(seq.FileName(FlatFilePos(0, 99))), 100);
100+
BOOST_CHECK_EQUAL(seq.Allocate(FlatFilePos(0, 99), 1, out_of_space), 0U);
101+
BOOST_CHECK_EQUAL(fs::file_size(seq.FileName(FlatFilePos(0, 99))), 100U);
102102
BOOST_CHECK(!out_of_space);
103103

104-
BOOST_CHECK_EQUAL(seq.Allocate(FlatFilePos(0, 99), 2, out_of_space), 101);
105-
BOOST_CHECK_EQUAL(fs::file_size(seq.FileName(FlatFilePos(0, 99))), 200);
104+
BOOST_CHECK_EQUAL(seq.Allocate(FlatFilePos(0, 99), 2, out_of_space), 101U);
105+
BOOST_CHECK_EQUAL(fs::file_size(seq.FileName(FlatFilePos(0, 99))), 200U);
106106
BOOST_CHECK(!out_of_space);
107107
}
108108

@@ -116,11 +116,11 @@ BOOST_AUTO_TEST_CASE(flatfile_flush)
116116

117117
// Flush without finalize should not truncate file.
118118
seq.Flush(FlatFilePos(0, 1));
119-
BOOST_CHECK_EQUAL(fs::file_size(seq.FileName(FlatFilePos(0, 1))), 100);
119+
BOOST_CHECK_EQUAL(fs::file_size(seq.FileName(FlatFilePos(0, 1))), 100U);
120120

121121
// Flush with finalize should truncate file.
122122
seq.Flush(FlatFilePos(0, 1), true);
123-
BOOST_CHECK_EQUAL(fs::file_size(seq.FileName(FlatFilePos(0, 1))), 1);
123+
BOOST_CHECK_EQUAL(fs::file_size(seq.FileName(FlatFilePos(0, 1))), 1U);
124124
}
125125

126126
BOOST_AUTO_TEST_SUITE_END()

src/test/netbase_tests.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -393,7 +393,7 @@ BOOST_AUTO_TEST_CASE(netpermissions_test)
393393
BOOST_CHECK(NetWhitelistPermissions::TryParse("bloom,forcerelay,noban,relay,[email protected]/32", whitelistPermissions, error));
394394

395395
const auto strings = NetPermissions::ToStrings(PF_ALL);
396-
BOOST_CHECK_EQUAL(strings.size(), 5);
396+
BOOST_CHECK_EQUAL(strings.size(), 5U);
397397
BOOST_CHECK(std::find(strings.begin(), strings.end(), "bloomfilter") != strings.end());
398398
BOOST_CHECK(std::find(strings.begin(), strings.end(), "forcerelay") != strings.end());
399399
BOOST_CHECK(std::find(strings.begin(), strings.end(), "relay") != strings.end());

src/test/random_tests.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ BOOST_AUTO_TEST_CASE(shuffle_stat_test)
127127
}
128128
BOOST_CHECK(chi_score > 58.1411); // 99.9999% confidence interval
129129
BOOST_CHECK(chi_score < 210.275);
130-
BOOST_CHECK_EQUAL(sum, 12000);
130+
BOOST_CHECK_EQUAL(sum, 12000U);
131131
}
132132

133133
BOOST_AUTO_TEST_SUITE_END()

src/test/streams_tests.cpp

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -72,28 +72,28 @@ BOOST_AUTO_TEST_CASE(streams_vector_reader)
7272
std::vector<unsigned char> vch = {1, 255, 3, 4, 5, 6};
7373

7474
VectorReader reader(SER_NETWORK, INIT_PROTO_VERSION, vch, 0);
75-
BOOST_CHECK_EQUAL(reader.size(), 6);
75+
BOOST_CHECK_EQUAL(reader.size(), 6U);
7676
BOOST_CHECK(!reader.empty());
7777

7878
// Read a single byte as an unsigned char.
7979
unsigned char a;
8080
reader >> a;
8181
BOOST_CHECK_EQUAL(a, 1);
82-
BOOST_CHECK_EQUAL(reader.size(), 5);
82+
BOOST_CHECK_EQUAL(reader.size(), 5U);
8383
BOOST_CHECK(!reader.empty());
8484

8585
// Read a single byte as a signed char.
8686
signed char b;
8787
reader >> b;
8888
BOOST_CHECK_EQUAL(b, -1);
89-
BOOST_CHECK_EQUAL(reader.size(), 4);
89+
BOOST_CHECK_EQUAL(reader.size(), 4U);
9090
BOOST_CHECK(!reader.empty());
9191

9292
// Read a 4 bytes as an unsigned int.
9393
unsigned int c;
9494
reader >> c;
95-
BOOST_CHECK_EQUAL(c, 100992003); // 3,4,5,6 in little-endian base-256
96-
BOOST_CHECK_EQUAL(reader.size(), 0);
95+
BOOST_CHECK_EQUAL(c, 100992003U); // 3,4,5,6 in little-endian base-256
96+
BOOST_CHECK_EQUAL(reader.size(), 0U);
9797
BOOST_CHECK(reader.empty());
9898

9999
// Reading after end of byte vector throws an error.
@@ -104,7 +104,7 @@ BOOST_AUTO_TEST_CASE(streams_vector_reader)
104104
VectorReader new_reader(SER_NETWORK, INIT_PROTO_VERSION, vch, 0);
105105
new_reader >> d;
106106
BOOST_CHECK_EQUAL(d, 67370753); // 1,255,3,4 in little-endian base-256
107-
BOOST_CHECK_EQUAL(new_reader.size(), 2);
107+
BOOST_CHECK_EQUAL(new_reader.size(), 2U);
108108
BOOST_CHECK(!new_reader.empty());
109109

110110
// Reading after end of byte vector throws an error even if the reader is
@@ -136,14 +136,14 @@ BOOST_AUTO_TEST_CASE(bitstream_reader_writer)
136136
BOOST_CHECK_EQUAL(serialized_int2, (uint16_t)0x1072); // NOTE: Serialized as LE
137137

138138
BitStreamReader<CDataStream> bit_reader(data_copy);
139-
BOOST_CHECK_EQUAL(bit_reader.Read(1), 0);
140-
BOOST_CHECK_EQUAL(bit_reader.Read(2), 2);
141-
BOOST_CHECK_EQUAL(bit_reader.Read(3), 6);
142-
BOOST_CHECK_EQUAL(bit_reader.Read(4), 11);
143-
BOOST_CHECK_EQUAL(bit_reader.Read(5), 1);
144-
BOOST_CHECK_EQUAL(bit_reader.Read(6), 32);
145-
BOOST_CHECK_EQUAL(bit_reader.Read(7), 7);
146-
BOOST_CHECK_EQUAL(bit_reader.Read(16), 30497);
139+
BOOST_CHECK_EQUAL(bit_reader.Read(1), 0U);
140+
BOOST_CHECK_EQUAL(bit_reader.Read(2), 2U);
141+
BOOST_CHECK_EQUAL(bit_reader.Read(3), 6U);
142+
BOOST_CHECK_EQUAL(bit_reader.Read(4), 11U);
143+
BOOST_CHECK_EQUAL(bit_reader.Read(5), 1U);
144+
BOOST_CHECK_EQUAL(bit_reader.Read(6), 32U);
145+
BOOST_CHECK_EQUAL(bit_reader.Read(7), 7U);
146+
BOOST_CHECK_EQUAL(bit_reader.Read(16), 30497U);
147147
BOOST_CHECK_THROW(bit_reader.Read(8), std::ios_base::failure);
148148
}
149149

@@ -236,7 +236,7 @@ BOOST_AUTO_TEST_CASE(streams_buffered_file)
236236
BOOST_CHECK_EQUAL(i, 1);
237237

238238
// After reading bytes 0 and 1, we're positioned at 2.
239-
BOOST_CHECK_EQUAL(bf.GetPos(), 2);
239+
BOOST_CHECK_EQUAL(bf.GetPos(), 2U);
240240

241241
// Rewind to offset 0, ok (within the 10 byte window).
242242
BOOST_CHECK(bf.SetPos(0));
@@ -263,18 +263,18 @@ BOOST_AUTO_TEST_CASE(streams_buffered_file)
263263
// The default argument removes the limit completely.
264264
BOOST_CHECK(bf.SetLimit());
265265
// The read position should still be at 3 (no change).
266-
BOOST_CHECK_EQUAL(bf.GetPos(), 3);
266+
BOOST_CHECK_EQUAL(bf.GetPos(), 3U);
267267

268268
// Read from current offset, 3, forward until position 10.
269269
for (uint8_t j = 3; j < 10; ++j) {
270270
bf >> i;
271271
BOOST_CHECK_EQUAL(i, j);
272272
}
273-
BOOST_CHECK_EQUAL(bf.GetPos(), 10);
273+
BOOST_CHECK_EQUAL(bf.GetPos(), 10U);
274274

275275
// We're guaranteed (just barely) to be able to rewind to zero.
276276
BOOST_CHECK(bf.SetPos(0));
277-
BOOST_CHECK_EQUAL(bf.GetPos(), 0);
277+
BOOST_CHECK_EQUAL(bf.GetPos(), 0U);
278278
bf >> i;
279279
BOOST_CHECK_EQUAL(i, 0);
280280

@@ -284,12 +284,12 @@ BOOST_AUTO_TEST_CASE(streams_buffered_file)
284284
BOOST_CHECK(bf.SetPos(10));
285285
bf >> i;
286286
BOOST_CHECK_EQUAL(i, 10);
287-
BOOST_CHECK_EQUAL(bf.GetPos(), 11);
287+
BOOST_CHECK_EQUAL(bf.GetPos(), 11U);
288288

289289
// Now it's only guaranteed that we can rewind to offset 1
290290
// (current read position, 11, minus rewind amount, 10).
291291
BOOST_CHECK(bf.SetPos(1));
292-
BOOST_CHECK_EQUAL(bf.GetPos(), 1);
292+
BOOST_CHECK_EQUAL(bf.GetPos(), 1U);
293293
bf >> i;
294294
BOOST_CHECK_EQUAL(i, 1);
295295

@@ -303,7 +303,7 @@ BOOST_AUTO_TEST_CASE(streams_buffered_file)
303303
BOOST_CHECK_EQUAL(a[j], 11 + j);
304304
}
305305
}
306-
BOOST_CHECK_EQUAL(bf.GetPos(), 40);
306+
BOOST_CHECK_EQUAL(bf.GetPos(), 40U);
307307

308308
// We've read the entire file, the next read should throw.
309309
try {
@@ -317,11 +317,11 @@ BOOST_AUTO_TEST_CASE(streams_buffered_file)
317317
BOOST_CHECK(bf.eof());
318318

319319
// Still at offset 40, we can go back 10, to 30.
320-
BOOST_CHECK_EQUAL(bf.GetPos(), 40);
320+
BOOST_CHECK_EQUAL(bf.GetPos(), 40U);
321321
BOOST_CHECK(bf.SetPos(30));
322322
bf >> i;
323323
BOOST_CHECK_EQUAL(i, 30);
324-
BOOST_CHECK_EQUAL(bf.GetPos(), 31);
324+
BOOST_CHECK_EQUAL(bf.GetPos(), 31U);
325325

326326
// We're too far to rewind to position zero.
327327
BOOST_CHECK(!bf.SetPos(0));

0 commit comments

Comments
 (0)