Enforce strict prototypes

Related-Bug: #2027885
Change-Id: I81b518ff9a434b6a9cf43ee1578ab232a857f407
This commit is contained in:
Tim Burke
2024-08-15 13:51:27 -07:00
parent c65017d9b1
commit 329537b549
15 changed files with 94 additions and 90 deletions

View File

@@ -118,11 +118,11 @@ esac],[debug=false])
if test x$debug = xtrue ; then
DEBUG=1
CXXFLAGS=""
CFLAGS="-O0 -ggdb -g3 ${werror_flag} -D_GNU_SOURCE=1 -Wall -pedantic -std=c99 ${CFLAGS}"
CFLAGS="-O0 -ggdb -g3 ${werror_flag} -D_GNU_SOURCE=1 -Wall -Wstrict-prototypes -pedantic -std=c99 ${CFLAGS}"
else
DEBUG=0
CXXFLAGS=""
CFLAGS="-O2 -g ${werror_flag} -D_GNU_SOURCE=1 -Wall -pedantic -std=c99 ${CFLAGS}"
CFLAGS="-O2 -g ${werror_flag} -D_GNU_SOURCE=1 -Wall -Wstrict-prototypes -pedantic -std=c99 ${CFLAGS}"
fi
AC_ARG_ENABLE([gcov],

View File

@@ -383,7 +383,7 @@ int liberasurecode_get_fragment_size(int desc, int data_len);
* @return version uint32_t - from erasurecode_version.h
*/
uint32_t liberasurecode_get_version();
uint32_t liberasurecode_get_version(void);
/* ==~=*=~===~=*=~==~=*=~== liberasurecode Error codes =~=*=~==~=~=*=~==~== */

View File

@@ -34,7 +34,7 @@ int rs_galois_div(int x, int y);
int rs_galois_inverse(int x);
int rs_galois_mult(int x, int y);
void init_liberasurecode_rs_vand(int k, int m);
void deinit_liberasurecode_rs_vand();
void deinit_liberasurecode_rs_vand(void);
void print_matrix(int *matrix, int rows, int cols);
void square_matrix_multiply(int *m1, int *m2, int *prod, int n);
int create_decoding_matrix(int *gen_matrix, int *dec_matrix, int *missing_idxs, int k, int m);

View File

@@ -37,8 +37,8 @@
#define FIELD_SIZE (1 << 16)
#define GROUP_SIZE (FIELD_SIZE - 1)
void rs_galois_init_tables();
void rs_galois_deinit_tables();
void rs_galois_init_tables(void);
void rs_galois_deinit_tables(void);
int rs_galois_mult(int x, int y);
int rs_galois_div(int x, int y);
int rs_galois_inverse(int x);

View File

@@ -52,7 +52,7 @@ typedef int (*liberasurecode_rs_vand_encode_func)(int *, char **, char **, int,
typedef int (*liberasurecode_rs_vand_decode_func)(int *, char **, char **, int, int, int *, int, int);
typedef int (*liberasurecode_rs_vand_reconstruct_func)(int *, char **, char **, int, int, int *, int, int);
typedef void (*init_liberasurecode_rs_vand_func)(int, int);
typedef void (*deinit_liberasurecode_rs_vand_func)();
typedef void (*deinit_liberasurecode_rs_vand_func)(void);
typedef void (*free_systematic_matrix_func)(int *);
typedef int* (*make_systematic_matrix_func)(int, int);

View File

@@ -137,7 +137,7 @@ void init_liberasurecode_rs_vand(int k, int m)
rs_galois_init_tables();
}
void deinit_liberasurecode_rs_vand()
void deinit_liberasurecode_rs_vand(void)
{
rs_galois_deinit_tables();
}

View File

@@ -45,7 +45,7 @@ int *log_table = NULL;
int *ilog_table = NULL;
int *ilog_table_begin = NULL;
void rs_galois_init_tables()
void rs_galois_init_tables(void)
{
log_table = (int*)malloc(sizeof(int)*FIELD_SIZE);
ilog_table_begin = (int*)malloc(sizeof(int)*FIELD_SIZE*3);
@@ -65,7 +65,7 @@ void rs_galois_init_tables()
ilog_table = &ilog_table_begin[GROUP_SIZE];
}
void rs_galois_deinit_tables()
void rs_galois_deinit_tables(void)
{
free(log_table);
free(ilog_table_begin);

View File

@@ -1304,7 +1304,7 @@ int liberasurecode_get_fragment_size(int desc, int data_len)
* This will return the liberasurecode version for the descriptor
*/
uint32_t liberasurecode_get_version()
uint32_t liberasurecode_get_version(void)
{
return LIBERASURECODE_VERSION;
}

View File

@@ -64,7 +64,7 @@ galois_uninit_field_func get_galois_uninit_func(void *handle) {
}
void *get_jerasure_sohandle()
void *get_jerasure_sohandle(void)
{
return dlopen(JERASURE_SONAME, RTLD_LAZY | RTLD_LOCAL);
}

View File

@@ -295,7 +295,7 @@ int test_reconstruct(int k, int m, int num_missing, int blocksize)
int matrix_dimensions[][2] = { {12, 6}, {12, 3}, {12, 2}, {12, 1}, {5, 3}, {5, 2}, {5, 1}, {1, 1}, {-1, -1} };
int main()
int main(void)
{
int i = 0;
int blocksize = 4096;

View File

@@ -29,7 +29,7 @@
#include <string.h>
#include <rs_galois.h>
int test_inverse()
int test_inverse(void)
{
int *uniq = (int*)malloc(sizeof(int)*FIELD_SIZE);
int i = 0;

View File

@@ -349,7 +349,7 @@ int run_test(int k, int m, int hd)
return ret;
}
int main()
int main(void)
{
int ret = 0;
int i;

View File

@@ -461,7 +461,7 @@ static int run_test(int k, int m, int hd)
return ret;
}
int main()
int main(void)
{
int ret = 0;
int i;

View File

@@ -45,11 +45,15 @@
#define RS_VAND_BACKEND "liberasurecode_rs_vand"
#define LIBPHAZR_BACKEND "libphazr"
typedef void (*TEST_FUNC)();
typedef void (*TEST_FUNC_NO_ARGS)(void);
typedef void (*TEST_FUNC_WITH_ARGS)(const ec_backend_id_t, struct ec_args *);
struct testcase {
const char *description;
TEST_FUNC function;
union{
TEST_FUNC_NO_ARGS no_args;
TEST_FUNC_WITH_ARGS with_args;
} function;
ec_backend_id_t be_id;
ec_checksum_type_t ct;
bool skip;
@@ -242,7 +246,7 @@ struct ec_args **all_backend_tests[] = {
libphazr_test_args,
NULL};
int num_backends()
int num_backends(void)
{
int i = 0;
@@ -253,7 +257,7 @@ int num_backends()
return i;
}
int max_tests_for_backends()
int max_tests_for_backends(void)
{
int n_backends = num_backends();
int i = 0;
@@ -510,18 +514,18 @@ static void test_create_and_destroy_backend(
assert(0 == liberasurecode_instance_destroy(desc));
}
static void test_backend_available(ec_backend_id_t be_id) {
assert(1 == liberasurecode_backend_available(be_id));
static void test_backend_available(void) {
assert(1 == liberasurecode_backend_available(EC_BACKEND_NULL));
}
static void test_backend_available_invalid_args()
static void test_backend_available_invalid_args(void)
{
int ret = liberasurecode_backend_available(EC_BACKENDS_MAX);
// returns 1 if a backend is available; 0 otherwise
assert(0 == ret);
}
static void test_create_backend_invalid_args()
static void test_create_backend_invalid_args(void)
{
int desc = liberasurecode_instance_create(-1, &null_args);
assert(-EBACKENDNOTSUPP == desc);
@@ -550,7 +554,7 @@ static void test_create_backend_invalid_args()
assert(-EINVALIDPARAMS == desc);
}
static void test_destroy_backend_invalid_args()
static void test_destroy_backend_invalid_args(void)
{
int desc = -1;
assert(liberasurecode_instance_destroy(desc) < 0);
@@ -566,7 +570,7 @@ static void test_destroy_backend_invalid_args()
assert(liberasurecode_instance_destroy(desc) < 0);
}
static void test_encode_invalid_args()
static void test_encode_invalid_args(void)
{
int rc = 0;
int desc = -1;
@@ -617,7 +621,7 @@ static void test_encode_invalid_args()
free(orig_data);
}
static void test_encode_cleanup_invalid_args()
static void test_encode_cleanup_invalid_args(void)
{
int rc = 0;
int desc = -1;
@@ -649,7 +653,7 @@ static void test_encode_cleanup_invalid_args()
free(orig_data);
}
static void test_decode_invalid_args()
static void test_decode_invalid_args(void)
{
int rc = 0;
int desc = -1;
@@ -747,7 +751,7 @@ static void test_decode_invalid_args()
free(orig_data);
}
static void test_decode_cleanup_invalid_args()
static void test_decode_cleanup_invalid_args(void)
{
int rc = 0;
int desc = 1;
@@ -769,7 +773,7 @@ static void test_decode_cleanup_invalid_args()
free(orig_data);
}
static void test_reconstruct_fragment_invalid_args()
static void test_reconstruct_fragment_invalid_args(void)
{
int rc = -1;
int desc = 1;
@@ -821,7 +825,7 @@ static void test_reconstruct_fragment_invalid_args()
liberasurecode_instance_destroy(desc);
}
static void test_fragments_needed_invalid_args()
static void test_fragments_needed_invalid_args(void)
{
int rc = -1;
int desc = 1;
@@ -850,7 +854,7 @@ static void test_fragments_needed_invalid_args()
liberasurecode_instance_destroy(desc);
}
static void test_get_fragment_metadata_invalid_args() {
static void test_get_fragment_metadata_invalid_args(void) {
int rc = -1;
char *frag = malloc(1024);
fragment_metadata_t metadata;
@@ -874,7 +878,7 @@ static void test_get_fragment_metadata_invalid_args() {
free(frag);
}
static void test_verify_stripe_metadata_invalid_args() {
static void test_verify_stripe_metadata_invalid_args(void) {
int rc = -1;
int num_frags = 6;
int desc = -1;
@@ -902,7 +906,7 @@ static void test_verify_stripe_metadata_invalid_args() {
free(frags);
}
static void test_get_fragment_partition()
static void test_get_fragment_partition(void)
{
int i;
int rc = 0;
@@ -1002,7 +1006,7 @@ static void test_get_fragment_partition()
free(orig_data);
}
static void test_liberasurecode_get_version(){
static void test_liberasurecode_get_version(void){
uint32_t version = liberasurecode_get_version();
assert(version == LIBERASURECODE_VERSION);
}
@@ -1462,7 +1466,7 @@ static void test_decode_with_missing_multi_data_parity(
}
}
static void test_isa_l_rs_vand_decode_reconstruct_specific_error_case()
static void test_isa_l_rs_vand_decode_reconstruct_specific_error_case(void)
{
struct ec_args specific_1010_args = {
.k = 10,
@@ -1556,7 +1560,7 @@ static void test_isa_l_rs_vand_decode_reconstruct_specific_error_case()
free(skips);
}
static void test_jerasure_rs_cauchy_init_failure()
static void test_jerasure_rs_cauchy_init_failure(void)
{
struct ec_args bad_args = {
.k = 10,
@@ -1575,7 +1579,7 @@ static void test_jerasure_rs_cauchy_init_failure()
assert(-EBACKENDINITERR == desc);
}
static void test_flat_xor_hd3_init_failure()
static void test_flat_xor_hd3_init_failure(void)
{
struct ec_args bad_args[] = {
{.k = 1, .m = 5, .hd=3},
@@ -1606,7 +1610,7 @@ static void test_simple_encode_decode(const ec_backend_id_t be_id,
free(skip);
}
static void test_jerasure_rs_vand_simple_encode_decode_over32()
static void test_jerasure_rs_vand_simple_encode_decode_over32(void)
{
struct ec_args over32_args = {
.k = 30,
@@ -1801,7 +1805,7 @@ static void test_verify_stripe_metadata_frag_idx_invalid(
verify_fragment_metadata_mismatch_impl(be_id, args, FRAGIDX_OUT_OF_RANGE);
}
static void test_metadata_crcs_le()
static void test_metadata_crcs_le(void)
{
// We've observed headers like this in the wild, using our busted crc32
char orig_header[] =
@@ -1840,7 +1844,7 @@ static void test_metadata_crcs_le()
assert(is_invalid_fragment_header((fragment_header_t *) header) == 1);
}
static void test_metadata_crcs_be()
static void test_metadata_crcs_be(void)
{
// Like above, but big-endian
char orig_header[] =
@@ -1886,60 +1890,60 @@ static void test_metadata_crcs_be()
#define TEST(test, backend, checksum) {#test, test, backend, checksum, .skip = false}
/* Block of common tests for the "real" backends */
#define TEST_SUITE(backend) \
TEST(test_create_and_destroy_backend, backend, CHKSUM_NONE), \
TEST(test_simple_encode_decode, backend, CHKSUM_NONE), \
TEST(test_decode_with_missing_data, backend, CHKSUM_NONE), \
TEST(test_decode_with_missing_parity, backend, CHKSUM_NONE), \
TEST(test_decode_with_missing_multi_data, backend, CHKSUM_NONE), \
TEST(test_decode_with_missing_multi_parity, backend, CHKSUM_NONE), \
TEST(test_decode_with_missing_multi_data_parity, backend, CHKSUM_NONE), \
TEST(test_simple_reconstruct, backend, CHKSUM_NONE), \
TEST(test_fragments_needed, backend, CHKSUM_NONE), \
TEST(test_get_fragment_metadata, backend, CHKSUM_NONE), \
TEST(test_get_fragment_metadata, backend, CHKSUM_CRC32), \
TEST(test_write_legacy_fragment_metadata, backend, CHKSUM_CRC32), \
TEST(test_verify_stripe_metadata, backend, CHKSUM_CRC32), \
TEST(test_verify_stripe_metadata_libec_mismatch, backend, CHKSUM_CRC32), \
TEST(test_verify_stripe_metadata_magic_mismatch, backend, CHKSUM_CRC32), \
TEST(test_verify_stripe_metadata_be_id_mismatch, backend, CHKSUM_CRC32), \
TEST(test_verify_stripe_metadata_be_ver_mismatch, backend, CHKSUM_CRC32), \
TEST(test_verify_stripe_metadata_frag_idx_invalid, backend, CHKSUM_CRC32)
TEST({.with_args = test_create_and_destroy_backend}, backend, CHKSUM_NONE), \
TEST({.with_args = test_simple_encode_decode}, backend, CHKSUM_NONE), \
TEST({.with_args = test_decode_with_missing_data}, backend, CHKSUM_NONE), \
TEST({.with_args = test_decode_with_missing_parity}, backend, CHKSUM_NONE), \
TEST({.with_args = test_decode_with_missing_multi_data}, backend, CHKSUM_NONE), \
TEST({.with_args = test_decode_with_missing_multi_parity}, backend, CHKSUM_NONE), \
TEST({.with_args = test_decode_with_missing_multi_data_parity}, backend, CHKSUM_NONE), \
TEST({.with_args = test_simple_reconstruct}, backend, CHKSUM_NONE), \
TEST({.with_args = test_fragments_needed}, backend, CHKSUM_NONE), \
TEST({.with_args = test_get_fragment_metadata}, backend, CHKSUM_NONE), \
TEST({.with_args = test_get_fragment_metadata}, backend, CHKSUM_CRC32), \
TEST({.with_args = test_write_legacy_fragment_metadata}, backend, CHKSUM_CRC32), \
TEST({.with_args = test_verify_stripe_metadata}, backend, CHKSUM_CRC32), \
TEST({.with_args = test_verify_stripe_metadata_libec_mismatch}, backend, CHKSUM_CRC32), \
TEST({.with_args = test_verify_stripe_metadata_magic_mismatch}, backend, CHKSUM_CRC32), \
TEST({.with_args = test_verify_stripe_metadata_be_id_mismatch}, backend, CHKSUM_CRC32), \
TEST({.with_args = test_verify_stripe_metadata_be_ver_mismatch}, backend, CHKSUM_CRC32), \
TEST({.with_args = test_verify_stripe_metadata_frag_idx_invalid}, backend, CHKSUM_CRC32)
struct testcase testcases[] = {
TEST(test_backend_available_invalid_args, EC_BACKENDS_MAX, 0),
TEST(test_backend_available, EC_BACKEND_NULL, 0),
TEST(test_create_backend_invalid_args, EC_BACKENDS_MAX, CHKSUM_TYPES_MAX),
TEST(test_destroy_backend_invalid_args, EC_BACKENDS_MAX, CHKSUM_TYPES_MAX),
TEST(test_encode_invalid_args, EC_BACKENDS_MAX, CHKSUM_TYPES_MAX),
TEST(test_encode_cleanup_invalid_args, EC_BACKENDS_MAX, CHKSUM_TYPES_MAX),
TEST(test_decode_invalid_args, EC_BACKENDS_MAX, CHKSUM_TYPES_MAX),
TEST(test_decode_cleanup_invalid_args, EC_BACKENDS_MAX, CHKSUM_TYPES_MAX),
TEST(test_reconstruct_fragment_invalid_args, EC_BACKENDS_MAX, CHKSUM_TYPES_MAX),
TEST(test_get_fragment_metadata_invalid_args, EC_BACKENDS_MAX, CHKSUM_TYPES_MAX),
TEST(test_verify_stripe_metadata_invalid_args, EC_BACKENDS_MAX, CHKSUM_TYPES_MAX),
TEST(test_fragments_needed_invalid_args, EC_BACKENDS_MAX, CHKSUM_TYPES_MAX),
TEST(test_get_fragment_partition, EC_BACKENDS_MAX, CHKSUM_TYPES_MAX),
TEST(test_liberasurecode_get_version, EC_BACKENDS_MAX, CHKSUM_TYPES_MAX),
TEST(test_metadata_crcs_le, EC_BACKENDS_MAX, 0),
TEST(test_metadata_crcs_be, EC_BACKENDS_MAX, 0),
TEST({.no_args = test_backend_available_invalid_args}, EC_BACKENDS_MAX, 0),
TEST({.no_args = test_backend_available}, EC_BACKENDS_MAX, 0),
TEST({.no_args = test_create_backend_invalid_args}, EC_BACKENDS_MAX, CHKSUM_TYPES_MAX),
TEST({.no_args = test_destroy_backend_invalid_args}, EC_BACKENDS_MAX, CHKSUM_TYPES_MAX),
TEST({.no_args = test_encode_invalid_args}, EC_BACKENDS_MAX, CHKSUM_TYPES_MAX),
TEST({.no_args = test_encode_cleanup_invalid_args}, EC_BACKENDS_MAX, CHKSUM_TYPES_MAX),
TEST({.no_args = test_decode_invalid_args}, EC_BACKENDS_MAX, CHKSUM_TYPES_MAX),
TEST({.no_args = test_decode_cleanup_invalid_args}, EC_BACKENDS_MAX, CHKSUM_TYPES_MAX),
TEST({.no_args = test_reconstruct_fragment_invalid_args}, EC_BACKENDS_MAX, CHKSUM_TYPES_MAX),
TEST({.no_args = test_get_fragment_metadata_invalid_args}, EC_BACKENDS_MAX, CHKSUM_TYPES_MAX),
TEST({.no_args = test_verify_stripe_metadata_invalid_args}, EC_BACKENDS_MAX, CHKSUM_TYPES_MAX),
TEST({.no_args = test_fragments_needed_invalid_args}, EC_BACKENDS_MAX, CHKSUM_TYPES_MAX),
TEST({.no_args = test_get_fragment_partition}, EC_BACKENDS_MAX, CHKSUM_TYPES_MAX),
TEST({.no_args = test_liberasurecode_get_version}, EC_BACKENDS_MAX, CHKSUM_TYPES_MAX),
TEST({.no_args = test_metadata_crcs_le}, EC_BACKENDS_MAX, 0),
TEST({.no_args = test_metadata_crcs_be}, EC_BACKENDS_MAX, 0),
// NULL backend test
TEST(test_create_and_destroy_backend, EC_BACKEND_NULL, CHKSUM_NONE),
TEST(test_simple_encode_decode, EC_BACKEND_NULL, CHKSUM_NONE),
TEST(test_get_fragment_metadata, EC_BACKEND_NULL, CHKSUM_NONE),
TEST(test_decode_with_missing_parity, EC_BACKEND_NULL, CHKSUM_NONE),
TEST(test_decode_with_missing_multi_parity, EC_BACKEND_NULL, CHKSUM_NONE),
TEST({.with_args = test_create_and_destroy_backend}, EC_BACKEND_NULL, CHKSUM_NONE),
TEST({.with_args = test_simple_encode_decode}, EC_BACKEND_NULL, CHKSUM_NONE),
TEST({.with_args = test_get_fragment_metadata}, EC_BACKEND_NULL, CHKSUM_NONE),
TEST({.with_args = test_decode_with_missing_parity}, EC_BACKEND_NULL, CHKSUM_NONE),
TEST({.with_args = test_decode_with_missing_multi_parity}, EC_BACKEND_NULL, CHKSUM_NONE),
// Flat XOR backend tests
TEST_SUITE(EC_BACKEND_FLAT_XOR_HD),
TEST(test_flat_xor_hd3_init_failure, EC_BACKENDS_MAX, 0),
TEST({.no_args = test_flat_xor_hd3_init_failure}, EC_BACKENDS_MAX, 0),
// Jerasure RS Vand backend tests
TEST_SUITE(EC_BACKEND_JERASURE_RS_VAND),
TEST(test_jerasure_rs_vand_simple_encode_decode_over32, EC_BACKENDS_MAX, 0),
TEST({.no_args = test_jerasure_rs_vand_simple_encode_decode_over32}, EC_BACKENDS_MAX, 0),
// Jerasure RS Cauchy backend tests
TEST_SUITE(EC_BACKEND_JERASURE_RS_CAUCHY),
TEST(test_jerasure_rs_cauchy_init_failure, EC_BACKENDS_MAX, 0),
TEST({.no_args = test_jerasure_rs_cauchy_init_failure}, EC_BACKENDS_MAX, 0),
// ISA-L rs_vand tests
TEST_SUITE(EC_BACKEND_ISA_L_RS_VAND),
TEST(test_isa_l_rs_vand_decode_reconstruct_specific_error_case, EC_BACKENDS_MAX, 0),
TEST({.no_args = test_isa_l_rs_vand_decode_reconstruct_specific_error_case}, EC_BACKENDS_MAX, 0),
// ISA-L rs cauchy tests
TEST_SUITE(EC_BACKEND_ISA_L_RS_CAUCHY),
// shss tests
@@ -1948,7 +1952,7 @@ struct testcase testcases[] = {
TEST_SUITE(EC_BACKEND_LIBERASURECODE_RS_VAND),
// libphazr backend tests
TEST_SUITE(EC_BACKEND_LIBPHAZR),
{ NULL, NULL, 0, 0, false },
{ NULL, {.no_args = NULL}, 0, 0, false },
};
int main(int argc, char **argv)
@@ -1975,7 +1979,7 @@ int main(int argc, char **argv)
printf("%d - %s: %s (idx=%d) ... ", num_cases,
testcases[ii].description,
(testname) ? testname : "", i);
testcases[ii].function();
testcases[ii].function.no_args();
printf("ok\n");
num_cases++;
continue;
@@ -1985,7 +1989,7 @@ int main(int argc, char **argv)
printf("%d - %s: %s (idx=%d) ... ", num_cases,
testcases[ii].description,
(testname) ? testname : "", i);
testcases[ii].function(testcases[ii].be_id, args);
testcases[ii].function.with_args(testcases[ii].be_id, args);
printf("ok\n");
free(args);
num_cases++;

View File

@@ -80,7 +80,7 @@ int check_parity_of_sigs(char **sigs, int num_data, int size)
return ret;
}
static int basic_xor_test_8_32()
static int basic_xor_test_8_32(void)
{
int blocksize = 65536;
int num_data = 12;
@@ -131,7 +131,7 @@ out:
return ret;
}
static int basic_xor_test_16_64()
static int basic_xor_test_16_64(void)
{
int blocksize = 65536;
int num_data = 12;
@@ -182,7 +182,7 @@ out:
return ret;
}
static int basic_xor_test_16_32()
static int basic_xor_test_16_32(void)
{
int blocksize = 65536;
int num_data = 12;