Skip to content

Commit 5e19252

Browse files
authored
Merge pull request #12902 from Mic92/signed-comparison
Fix -Wsign-compare errors
2 parents c0912a1 + bbc4977 commit 5e19252

File tree

17 files changed

+71
-70
lines changed

17 files changed

+71
-70
lines changed

nix-meson-build-support/common/meson.build

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ add_project_arguments(
1111
'-Werror=switch',
1212
'-Werror=switch-enum',
1313
'-Werror=unused-result',
14+
'-Werror=sign-compare',
1415
'-Wignored-qualifiers',
1516
'-Wimplicit-fallthrough',
1617
'-Wno-deprecated-declarations',

src/libexpr-tests/error_traces.cc

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ namespace nix {
3333
ASSERT_EQ(PrintToString(e.info().msg),
3434
PrintToString(HintFmt("puppy")));
3535
auto trace = e.info().traces.rbegin();
36-
ASSERT_EQ(e.info().traces.size(), 2);
36+
ASSERT_EQ(e.info().traces.size(), 2u);
3737
ASSERT_EQ(PrintToString(trace->hint),
3838
PrintToString(HintFmt("doggy")));
3939
trace++;
@@ -54,8 +54,8 @@ namespace nix {
5454
} catch (Error & e2) {
5555
e.addTrace(state.positions[noPos], "beans2");
5656
//e2.addTrace(state.positions[noPos], "Something", "");
57-
ASSERT_TRUE(e.info().traces.size() == 2);
58-
ASSERT_TRUE(e2.info().traces.size() == 0);
57+
ASSERT_TRUE(e.info().traces.size() == 2u);
58+
ASSERT_TRUE(e2.info().traces.size() == 0u);
5959
ASSERT_FALSE(&e.info() == &e2.info());
6060
}
6161
}
@@ -71,7 +71,7 @@ namespace nix {
7171
} catch (BaseError & e) { \
7272
ASSERT_EQ(PrintToString(e.info().msg), \
7373
PrintToString(message)); \
74-
ASSERT_EQ(e.info().traces.size(), 1) << "while testing " args << std::endl << e.what(); \
74+
ASSERT_EQ(e.info().traces.size(), 1u) << "while testing " args << std::endl << e.what(); \
7575
auto trace = e.info().traces.rbegin(); \
7676
ASSERT_EQ(PrintToString(trace->hint), \
7777
PrintToString(HintFmt("while calling the '%s' builtin", name))); \
@@ -90,7 +90,7 @@ namespace nix {
9090
} catch (BaseError & e) { \
9191
ASSERT_EQ(PrintToString(e.info().msg), \
9292
PrintToString(message)); \
93-
ASSERT_EQ(e.info().traces.size(), 2) << "while testing " args << std::endl << e.what(); \
93+
ASSERT_EQ(e.info().traces.size(), 2u) << "while testing " args << std::endl << e.what(); \
9494
auto trace = e.info().traces.rbegin(); \
9595
ASSERT_EQ(PrintToString(trace->hint), \
9696
PrintToString(context)); \
@@ -112,7 +112,7 @@ namespace nix {
112112
} catch (BaseError & e) { \
113113
ASSERT_EQ(PrintToString(e.info().msg), \
114114
PrintToString(message)); \
115-
ASSERT_EQ(e.info().traces.size(), 3) << "while testing " args << std::endl << e.what(); \
115+
ASSERT_EQ(e.info().traces.size(), 3u) << "while testing " args << std::endl << e.what(); \
116116
auto trace = e.info().traces.rbegin(); \
117117
ASSERT_EQ(PrintToString(trace->hint), \
118118
PrintToString(context1)); \
@@ -137,7 +137,7 @@ namespace nix {
137137
} catch (BaseError & e) { \
138138
ASSERT_EQ(PrintToString(e.info().msg), \
139139
PrintToString(message)); \
140-
ASSERT_EQ(e.info().traces.size(), 4) << "while testing " args << std::endl << e.what(); \
140+
ASSERT_EQ(e.info().traces.size(), 4u) << "while testing " args << std::endl << e.what(); \
141141
auto trace = e.info().traces.rbegin(); \
142142
ASSERT_EQ(PrintToString(trace->hint), \
143143
PrintToString(context1)); \

src/libexpr-tests/nix_api_expr.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,7 @@ TEST_F(nix_api_expr_test, nix_expr_realise_context)
222222
names.push_back(name);
223223
}
224224
std::sort(names.begin(), names.end());
225-
ASSERT_EQ(3, names.size());
225+
ASSERT_EQ(3u, names.size());
226226
EXPECT_THAT(names[0], testing::StrEq("just-a-file"));
227227
EXPECT_THAT(names[1], testing::StrEq("letsbuild"));
228228
EXPECT_THAT(names[2], testing::StrEq("not-actually-built-yet.drv"));

src/libexpr-tests/nix_api_value.cc

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -134,12 +134,12 @@ TEST_F(nix_api_expr_test, nix_build_and_init_list_invalid)
134134
{
135135
ASSERT_EQ(nullptr, nix_get_list_byidx(ctx, nullptr, state, 0));
136136
assert_ctx_err();
137-
ASSERT_EQ(0, nix_get_list_size(ctx, nullptr));
137+
ASSERT_EQ(0u, nix_get_list_size(ctx, nullptr));
138138
assert_ctx_err();
139139

140140
ASSERT_EQ(nullptr, nix_get_list_byidx(ctx, value, state, 0));
141141
assert_ctx_err();
142-
ASSERT_EQ(0, nix_get_list_size(ctx, value));
142+
ASSERT_EQ(0u, nix_get_list_size(ctx, value));
143143
assert_ctx_err();
144144
}
145145

@@ -163,7 +163,7 @@ TEST_F(nix_api_expr_test, nix_build_and_init_list)
163163
ASSERT_EQ(42, nix_get_int(ctx, nix_get_list_byidx(ctx, value, state, 0)));
164164
ASSERT_EQ(43, nix_get_int(ctx, nix_get_list_byidx(ctx, value, state, 1)));
165165
ASSERT_EQ(nullptr, nix_get_list_byidx(ctx, value, state, 2));
166-
ASSERT_EQ(10, nix_get_list_size(ctx, value));
166+
ASSERT_EQ(10u, nix_get_list_size(ctx, value));
167167

168168
ASSERT_STREQ("a list", nix_get_typename(ctx, value));
169169
ASSERT_EQ(NIX_TYPE_LIST, nix_get_type(ctx, value));
@@ -180,7 +180,7 @@ TEST_F(nix_api_expr_test, nix_build_and_init_attr_invalid)
180180
assert_ctx_err();
181181
ASSERT_EQ(nullptr, nix_get_attr_name_byidx(ctx, nullptr, state, 0));
182182
assert_ctx_err();
183-
ASSERT_EQ(0, nix_get_attrs_size(ctx, nullptr));
183+
ASSERT_EQ(0u, nix_get_attrs_size(ctx, nullptr));
184184
assert_ctx_err();
185185
ASSERT_EQ(false, nix_has_attr_byname(ctx, nullptr, state, "no-value"));
186186
assert_ctx_err();
@@ -191,7 +191,7 @@ TEST_F(nix_api_expr_test, nix_build_and_init_attr_invalid)
191191
assert_ctx_err();
192192
ASSERT_EQ(nullptr, nix_get_attr_name_byidx(ctx, value, state, 0));
193193
assert_ctx_err();
194-
ASSERT_EQ(0, nix_get_attrs_size(ctx, value));
194+
ASSERT_EQ(0u, nix_get_attrs_size(ctx, value));
195195
assert_ctx_err();
196196
ASSERT_EQ(false, nix_has_attr_byname(ctx, value, state, "no-value"));
197197
assert_ctx_err();
@@ -215,7 +215,7 @@ TEST_F(nix_api_expr_test, nix_build_and_init_attr)
215215
nix_make_attrs(ctx, value, builder);
216216
nix_bindings_builder_free(builder);
217217

218-
ASSERT_EQ(2, nix_get_attrs_size(ctx, value));
218+
ASSERT_EQ(2u, nix_get_attrs_size(ctx, value));
219219

220220
nix_value * out_value = nix_get_attr_byname(ctx, value, state, "a");
221221
ASSERT_EQ(42, nix_get_int(ctx, out_value));
@@ -374,7 +374,7 @@ TEST_F(nix_api_expr_test, nix_value_init_apply_lazy_arg)
374374

375375
auto n = nix_get_attrs_size(ctx, r);
376376
assert_ctx_ok();
377-
ASSERT_EQ(1, n);
377+
ASSERT_EQ(1u, n);
378378

379379
// nix_get_attr_byname isn't lazy (it could have been) so it will throw the exception
380380
nix_value * foo = nix_get_attr_byname(ctx, r, state, "foo");

src/libexpr-tests/primops.cc

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,7 @@ namespace nix {
204204
auto v = eval("builtins.listToAttrs []");
205205
ASSERT_THAT(v, IsAttrsOfSize(0));
206206
ASSERT_EQ(v.type(), nAttrs);
207-
ASSERT_EQ(v.attrs()->size(), 0);
207+
ASSERT_EQ(v.attrs()->size(), 0u);
208208
}
209209

210210
TEST_F(PrimOpTest, listToAttrsNotFieldName) {
@@ -383,7 +383,7 @@ namespace nix {
383383
TEST_F(PrimOpTest, genList) {
384384
auto v = eval("builtins.genList (x: x + 1) 3");
385385
ASSERT_EQ(v.type(), nList);
386-
ASSERT_EQ(v.listSize(), 3);
386+
ASSERT_EQ(v.listSize(), 3u);
387387
for (const auto [i, elem] : enumerate(v.listItems())) {
388388
ASSERT_THAT(*elem, IsThunk());
389389
state.forceValue(*elem, noPos);
@@ -394,7 +394,7 @@ namespace nix {
394394
TEST_F(PrimOpTest, sortLessThan) {
395395
auto v = eval("builtins.sort builtins.lessThan [ 483 249 526 147 42 77 ]");
396396
ASSERT_EQ(v.type(), nList);
397-
ASSERT_EQ(v.listSize(), 6);
397+
ASSERT_EQ(v.listSize(), 6u);
398398

399399
const std::vector<int> numbers = { 42, 77, 147, 249, 483, 526 };
400400
for (const auto [n, elem] : enumerate(v.listItems()))
@@ -414,7 +414,7 @@ namespace nix {
414414
auto wrong = v.attrs()->get(createSymbol("wrong"));
415415
ASSERT_NE(wrong, nullptr);
416416
ASSERT_EQ(wrong->value->type(), nList);
417-
ASSERT_EQ(wrong->value->listSize(), 3);
417+
ASSERT_EQ(wrong->value->listSize(), 3u);
418418
ASSERT_THAT(*wrong->value, IsListOfSize(3));
419419
ASSERT_THAT(*wrong->value->listElems()[0], IsIntEq(1));
420420
ASSERT_THAT(*wrong->value->listElems()[1], IsIntEq(9));
@@ -424,7 +424,7 @@ namespace nix {
424424
TEST_F(PrimOpTest, concatMap) {
425425
auto v = eval("builtins.concatMap (x: x ++ [0]) [ [1 2] [3 4] ]");
426426
ASSERT_EQ(v.type(), nList);
427-
ASSERT_EQ(v.listSize(), 6);
427+
ASSERT_EQ(v.listSize(), 6u);
428428

429429
const std::vector<int> numbers = { 1, 2, 0, 3, 4, 0 };
430430
for (const auto [n, elem] : enumerate(v.listItems()))

src/libfetchers-tests/git-utils.cc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,11 +90,11 @@ TEST_F(GitUtilsTest, sink_basic)
9090
auto result = repo->dereferenceSingletonDirectory(sink->flush());
9191
auto accessor = repo->getAccessor(result, false, getRepoName());
9292
auto entries = accessor->readDirectory(CanonPath::root);
93-
ASSERT_EQ(entries.size(), 5);
93+
ASSERT_EQ(entries.size(), 5u);
9494
ASSERT_EQ(accessor->readFile(CanonPath("hello")), "hello world");
9595
ASSERT_EQ(accessor->readFile(CanonPath("bye")), "thanks for all the fish");
9696
ASSERT_EQ(accessor->readLink(CanonPath("bye-link")), "bye");
97-
ASSERT_EQ(accessor->readDirectory(CanonPath("empty")).size(), 0);
97+
ASSERT_EQ(accessor->readDirectory(CanonPath("empty")).size(), 0u);
9898
ASSERT_EQ(accessor->readFile(CanonPath("links/foo")), "hello world");
9999
};
100100

src/libstore-tests/derivation-advanced-attrs.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,7 @@ TEST_F(DerivationAdvancedAttrsTest, Derivation_advancedAttributes_structuredAttr
173173
ASSERT_TRUE(checksPerOutput_ != nullptr);
174174
auto & checksPerOutput = *checksPerOutput_;
175175

176-
EXPECT_EQ(checksPerOutput.size(), 0);
176+
EXPECT_EQ(checksPerOutput.size(), 0u);
177177
}
178178

179179
EXPECT_EQ(options.getRequiredSystemFeatures(got), StringSet());

src/libstore-tests/path-info.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ TEST_F(PathInfoTest, PathInfo_full_shortRefs) {
9393
ValidPathInfo it = makeFullKeyed(*store, true);
9494
// it.references = unkeyed.references;
9595
auto refs = it.shortRefs();
96-
ASSERT_EQ(refs.size(), 2);
96+
ASSERT_EQ(refs.size(), 2u);
9797
ASSERT_EQ(*refs.begin(), "g1w7hy3qg1w7hy3qg1w7hy3qg1w7hy3q-bar");
9898
ASSERT_EQ(*++refs.begin(), "n5wkd9frr45pa74if5gpz9j7mifg27fh-foo");
9999
}

src/libstore-tests/worker-protocol.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -702,7 +702,7 @@ TEST_F(WorkerProtoTest, handshake_features)
702702
clientThread.join();
703703

704704
EXPECT_EQ(clientResult, daemonResult);
705-
EXPECT_EQ(std::get<0>(clientResult), 123);
705+
EXPECT_EQ(std::get<0>(clientResult), 123u);
706706
EXPECT_EQ(std::get<1>(clientResult), std::set<WorkerProto::Feature>({"bar", "xyzzy"}));
707707
}
708708

src/libstore/unix/build/local-derivation-goal.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2235,7 +2235,7 @@ void LocalDerivationGoal::runChild()
22352235
// We create multiple allow lists, to avoid exceeding a limit in the darwin sandbox interpreter.
22362236
// See https://github.com/NixOS/nix/issues/4119
22372237
// We split our allow groups approximately at half the actual limit, 1 << 16
2238-
const int breakpoint = sandboxProfile.length() + (1 << 14);
2238+
const size_t breakpoint = sandboxProfile.length() + (1 << 14);
22392239
for (auto & i : pathsInChroot) {
22402240

22412241
if (sandboxProfile.length() >= breakpoint) {

src/libutil-tests/args.cc

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -9,84 +9,84 @@ namespace nix {
99

1010
TEST(parseShebangContent, basic) {
1111
std::list<std::string> r = parseShebangContent("hi there");
12-
ASSERT_EQ(r.size(), 2);
12+
ASSERT_EQ(r.size(), 2u);
1313
auto i = r.begin();
1414
ASSERT_EQ(*i++, "hi");
1515
ASSERT_EQ(*i++, "there");
1616
}
1717

1818
TEST(parseShebangContent, empty) {
1919
std::list<std::string> r = parseShebangContent("");
20-
ASSERT_EQ(r.size(), 0);
20+
ASSERT_EQ(r.size(), 0u);
2121
}
2222

2323
TEST(parseShebangContent, doubleBacktick) {
2424
std::list<std::string> r = parseShebangContent("``\"ain't that nice\"``");
25-
ASSERT_EQ(r.size(), 1);
25+
ASSERT_EQ(r.size(), 1u);
2626
auto i = r.begin();
2727
ASSERT_EQ(*i++, "\"ain't that nice\"");
2828
}
2929

3030
TEST(parseShebangContent, doubleBacktickEmpty) {
3131
std::list<std::string> r = parseShebangContent("````");
32-
ASSERT_EQ(r.size(), 1);
32+
ASSERT_EQ(r.size(), 1u);
3333
auto i = r.begin();
3434
ASSERT_EQ(*i++, "");
3535
}
3636

3737
TEST(parseShebangContent, doubleBacktickMarkdownInlineCode) {
3838
std::list<std::string> r = parseShebangContent("``# I'm markdown section about `coolFunction` ``");
39-
ASSERT_EQ(r.size(), 1);
39+
ASSERT_EQ(r.size(), 1u);
4040
auto i = r.begin();
4141
ASSERT_EQ(*i++, "# I'm markdown section about `coolFunction`");
4242
}
4343

4444
TEST(parseShebangContent, doubleBacktickMarkdownCodeBlockNaive) {
4545
std::list<std::string> r = parseShebangContent("``Example 1\n```nix\na: a\n``` ``");
4646
auto i = r.begin();
47-
ASSERT_EQ(r.size(), 1);
47+
ASSERT_EQ(r.size(), 1u);
4848
ASSERT_EQ(*i++, "Example 1\n``nix\na: a\n``");
4949
}
5050

5151
TEST(parseShebangContent, doubleBacktickMarkdownCodeBlockCorrect) {
5252
std::list<std::string> r = parseShebangContent("``Example 1\n````nix\na: a\n```` ``");
5353
auto i = r.begin();
54-
ASSERT_EQ(r.size(), 1);
54+
ASSERT_EQ(r.size(), 1u);
5555
ASSERT_EQ(*i++, "Example 1\n```nix\na: a\n```");
5656
}
5757

5858
TEST(parseShebangContent, doubleBacktickMarkdownCodeBlock2) {
5959
std::list<std::string> r = parseShebangContent("``Example 1\n````nix\na: a\n````\nExample 2\n````nix\na: a\n```` ``");
6060
auto i = r.begin();
61-
ASSERT_EQ(r.size(), 1);
61+
ASSERT_EQ(r.size(), 1u);
6262
ASSERT_EQ(*i++, "Example 1\n```nix\na: a\n```\nExample 2\n```nix\na: a\n```");
6363
}
6464

6565
TEST(parseShebangContent, singleBacktickInDoubleBacktickQuotes) {
6666
std::list<std::string> r = parseShebangContent("``` ``");
6767
auto i = r.begin();
68-
ASSERT_EQ(r.size(), 1);
68+
ASSERT_EQ(r.size(), 1u);
6969
ASSERT_EQ(*i++, "`");
7070
}
7171

7272
TEST(parseShebangContent, singleBacktickAndSpaceInDoubleBacktickQuotes) {
7373
std::list<std::string> r = parseShebangContent("``` ``");
7474
auto i = r.begin();
75-
ASSERT_EQ(r.size(), 1);
75+
ASSERT_EQ(r.size(), 1u);
7676
ASSERT_EQ(*i++, "` ");
7777
}
7878

7979
TEST(parseShebangContent, doubleBacktickInDoubleBacktickQuotes) {
8080
std::list<std::string> r = parseShebangContent("````` ``");
8181
auto i = r.begin();
82-
ASSERT_EQ(r.size(), 1);
82+
ASSERT_EQ(r.size(), 1u);
8383
ASSERT_EQ(*i++, "``");
8484
}
8585

8686
TEST(parseShebangContent, increasingQuotes) {
8787
std::list<std::string> r = parseShebangContent("```` ``` `` ````` `` `````` ``");
8888
auto i = r.begin();
89-
ASSERT_EQ(r.size(), 4);
89+
ASSERT_EQ(r.size(), 4u);
9090
ASSERT_EQ(*i++, "");
9191
ASSERT_EQ(*i++, "`");
9292
ASSERT_EQ(*i++, "``");
@@ -146,7 +146,7 @@ RC_GTEST_PROP(
146146
auto escaped = escape(orig);
147147
// RC_LOG() << "escaped: <[[" << escaped << "]]>" << std::endl;
148148
auto ss = parseShebangContent(escaped);
149-
RC_ASSERT(ss.size() == 1);
149+
RC_ASSERT(ss.size() == 1u);
150150
RC_ASSERT(*ss.begin() == orig);
151151
}
152152

@@ -156,7 +156,7 @@ RC_GTEST_PROP(
156156
(const std::string & one, const std::string & two))
157157
{
158158
auto ss = parseShebangContent(escape(one) + " " + escape(two));
159-
RC_ASSERT(ss.size() == 2);
159+
RC_ASSERT(ss.size() == 2u);
160160
auto i = ss.begin();
161161
RC_ASSERT(*i++ == one);
162162
RC_ASSERT(*i++ == two);

src/libutil-tests/chunked-vector.cc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@
55
namespace nix {
66
TEST(ChunkedVector, InitEmpty) {
77
auto v = ChunkedVector<int, 2>(100);
8-
ASSERT_EQ(v.size(), 0);
8+
ASSERT_EQ(v.size(), 0u);
99
}
1010

1111
TEST(ChunkedVector, GrowsCorrectly) {
1212
auto v = ChunkedVector<int, 2>(100);
13-
for (auto i = 1; i < 20; i++) {
13+
for (uint32_t i = 1; i < 20; i++) {
1414
v.add(i);
1515
ASSERT_EQ(v.size(), i);
1616
}
@@ -31,7 +31,7 @@ namespace nix {
3131
for (auto i = 1; i < 20; i++) {
3232
v.add(i);
3333
}
34-
int count = 0;
34+
uint32_t count = 0;
3535
v.forEach([&count](int elt) {
3636
count++;
3737
});

src/libutil-tests/json-utils.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ TEST(from_json, optionalInt) {
5050
TEST(from_json, vectorOfOptionalInts) {
5151
nlohmann::json json = { 420, nullptr };
5252
std::vector<std::optional<int>> vals = json;
53-
ASSERT_EQ(vals.size(), 2);
53+
ASSERT_EQ(vals.size(), 2u);
5454
ASSERT_TRUE(vals.at(0).has_value());
5555
ASSERT_EQ(*vals.at(0), 420);
5656
ASSERT_FALSE(vals.at(1).has_value());

0 commit comments

Comments
 (0)