Merge branch 'ps/reftable-sign-compare'
The reftable/ library code has been made -Wsign-compare clean. * ps/reftable-sign-compare: reftable: address trivial -Wsign-compare warnings reftable/blocksource: adjust `read_block()` to return `ssize_t` reftable/blocksource: adjust type of the block length reftable/block: adjust type of the restart length reftable/block: adapt header and footer size to return a `size_t` reftable/basics: adjust `hash_size()` to return `uint32_t` reftable/basics: adjust `common_prefix_size()` to return `size_t` reftable/record: handle overflows when decoding varints reftable/record: drop unused `print` function pointer meson: stop disabling -Wsign-compare
This commit is contained in:
@ -120,7 +120,7 @@ int cmd_main(int argc UNUSED, const char *argv[] UNUSED)
|
||||
for (size_t i = 0; i < ARRAY_SIZE(cases); i++) {
|
||||
check(!reftable_buf_addstr(&a, cases[i].a));
|
||||
check(!reftable_buf_addstr(&b, cases[i].b));
|
||||
check_int(common_prefix_size(&a, &b), ==, cases[i].want);
|
||||
check_uint(common_prefix_size(&a, &b), ==, cases[i].want);
|
||||
reftable_buf_reset(&a);
|
||||
reftable_buf_reset(&b);
|
||||
}
|
||||
|
@ -643,7 +643,7 @@ static void t_write_empty_table(void)
|
||||
check_int(err, ==, REFTABLE_EMPTY_TABLE_ERROR);
|
||||
reftable_writer_free(w);
|
||||
|
||||
check_int(buf.len, ==, header_size(1) + footer_size(1));
|
||||
check_uint(buf.len, ==, header_size(1) + footer_size(1));
|
||||
|
||||
block_source_from_buf(&source, &buf);
|
||||
|
||||
|
@ -58,9 +58,25 @@ static void t_varint_roundtrip(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void t_varint_overflow(void)
|
||||
{
|
||||
unsigned char buf[] = {
|
||||
0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0x00,
|
||||
};
|
||||
struct string_view view = {
|
||||
.buf = buf,
|
||||
.len = sizeof(buf),
|
||||
};
|
||||
uint64_t value;
|
||||
int err = get_var_int(&value, &view);
|
||||
check_int(err, ==, -1);
|
||||
}
|
||||
|
||||
static void set_hash(uint8_t *h, int j)
|
||||
{
|
||||
for (int i = 0; i < hash_size(REFTABLE_HASH_SHA1); i++)
|
||||
for (size_t i = 0; i < hash_size(REFTABLE_HASH_SHA1); i++)
|
||||
h[i] = (j >> i) & 0xff;
|
||||
}
|
||||
|
||||
@ -544,6 +560,7 @@ int cmd_main(int argc UNUSED, const char *argv[] UNUSED)
|
||||
TEST(t_reftable_log_record_roundtrip(), "record operations work on log record");
|
||||
TEST(t_reftable_ref_record_roundtrip(), "record operations work on ref record");
|
||||
TEST(t_varint_roundtrip(), "put_var_int and get_var_int work");
|
||||
TEST(t_varint_overflow(), "get_var_int notices an integer overflow");
|
||||
TEST(t_key_roundtrip(), "reftable_encode_key and reftable_decode_key work");
|
||||
TEST(t_reftable_obj_record_roundtrip(), "record operations work on obj record");
|
||||
TEST(t_reftable_index_record_roundtrip(), "record operations work on index record");
|
||||
|
Reference in New Issue
Block a user