diff --git a/tools/testing/selftests/filesystems/incfs/Makefile b/tools/testing/selftests/filesystems/incfs/Makefile index 83e2ecb7bad9..882b43decbcd 100644 --- a/tools/testing/selftests/filesystems/incfs/Makefile +++ b/tools/testing/selftests/filesystems/incfs/Makefile @@ -1,5 +1,5 @@ # SPDX-License-Identifier: GPL-2.0 -CFLAGS += -D_FILE_OFFSET_BITS=64 -Wall -Werror -I../.. -I../../../../.. +CFLAGS += -D_FILE_OFFSET_BITS=64 -Wall -I../.. -I../../../../.. LDLIBS := -llz4 -lcrypto -lpthread TEST_GEN_PROGS := incfs_test incfs_stress incfs_perf diff --git a/tools/testing/selftests/filesystems/incfs/incfs_test.c b/tools/testing/selftests/filesystems/incfs/incfs_test.c index fdf29f5ca9cd..203c30a62493 100644 --- a/tools/testing/selftests/filesystems/incfs/incfs_test.c +++ b/tools/testing/selftests/filesystems/incfs/incfs_test.c @@ -247,7 +247,7 @@ out: return fd; } -int get_file_attr(const char *mnt_dir, incfs_uuid_t id, char *value, int size) +int get_file_attr(char *mnt_dir, incfs_uuid_t id, char *value, int size) { char *path = get_index_filename(mnt_dir, id); int res; @@ -265,7 +265,7 @@ static bool same_id(incfs_uuid_t *id1, incfs_uuid_t *id2) return !memcmp(id1->bytes, id2->bytes, sizeof(id1->bytes)); } -static int emit_test_blocks(const char *mnt_dir, struct test_file *file, +static int emit_test_blocks(char *mnt_dir, struct test_file *file, int blocks[], int count) { uint8_t data[INCFS_DATA_FILE_BLOCK_SIZE]; @@ -375,7 +375,7 @@ out: return (error < 0) ? error : blocks_written; } -static int emit_test_block(const char *mnt_dir, struct test_file *file, +static int emit_test_block(char *mnt_dir, struct test_file *file, int block_index) { int res = emit_test_blocks(mnt_dir, file, &block_index, 1); @@ -405,7 +405,7 @@ static void shuffle(int array[], int count, unsigned int seed) } } -static int emit_test_file_data(const char *mount_dir, struct test_file *file) +static int emit_test_file_data(char *mount_dir, struct test_file *file) { int i; int block_cnt = 1 + (file->size - 1) / INCFS_DATA_FILE_BLOCK_SIZE; @@ -438,7 +438,7 @@ out: return result; } -static loff_t read_whole_file(const char *filename) +static loff_t read_whole_file(char *filename) { int fd = -1; loff_t result; @@ -504,7 +504,7 @@ cleanup: return result; } -static char *create_backing_dir(const char *mount_dir) +static char *create_backing_dir(char *mount_dir) { struct stat st; char backing_dir_name[255]; @@ -540,7 +540,7 @@ static char *create_backing_dir(const char *mount_dir) return strdup(backing_dir_name); } -static int validate_test_file_content_with_seed(const char *mount_dir, +static int validate_test_file_content_with_seed(char *mount_dir, struct test_file *file, unsigned int shuffle_seed) { @@ -602,13 +602,12 @@ failure: return error; } -static int validate_test_file_content(const char *mount_dir, - struct test_file *file) +static int validate_test_file_content(char *mount_dir, struct test_file *file) { return validate_test_file_content_with_seed(mount_dir, file, 0); } -static int data_producer(const char *mount_dir, struct test_files_set *test_set) +static int data_producer(char *mount_dir, struct test_files_set *test_set) { int ret = 0; int timeout_ms = 1000; @@ -803,7 +802,7 @@ failure: return err; } -static int cant_touch_index_test(const char *mount_dir) +static int cant_touch_index_test(char *mount_dir) { char *file_name = "test_file"; int file_size = 123; @@ -893,8 +892,7 @@ failure: return TEST_FAILURE; } -static bool iterate_directory(const char *dir_to_iterate, bool root, - int file_count) +static bool iterate_directory(char *dir_to_iterate, bool root, int file_count) { struct expected_name { const char *name; @@ -999,7 +997,7 @@ failure: return pass; } -static int basic_file_ops_test(const char *mount_dir) +static int basic_file_ops_test(char *mount_dir) { struct test_files_set test = get_test_files_set(); const int file_num = test.files_count; @@ -1165,7 +1163,7 @@ failure: return TEST_FAILURE; } -static int dynamic_files_and_data_test(const char *mount_dir) +static int dynamic_files_and_data_test(char *mount_dir) { struct test_files_set test = get_test_files_set(); const int file_num = test.files_count; @@ -1271,7 +1269,7 @@ failure: return TEST_FAILURE; } -static int concurrent_reads_and_writes_test(const char *mount_dir) +static int concurrent_reads_and_writes_test(char *mount_dir) { struct test_files_set test = get_test_files_set(); const int file_num = test.files_count; @@ -1393,7 +1391,7 @@ failure: return TEST_FAILURE; } -static int work_after_remount_test(const char *mount_dir) +static int work_after_remount_test(char *mount_dir) { struct test_files_set test = get_test_files_set(); const int file_num = test.files_count; @@ -1543,7 +1541,7 @@ failure: return TEST_FAILURE; } -static int attribute_test(const char *mount_dir) +static int attribute_test(char *mount_dir) { char file_attr[] = "metadata123123"; char attr_buf[INCFS_MAX_FILE_ATTR_SIZE] = {}; @@ -1626,7 +1624,7 @@ failure: return TEST_FAILURE; } -static int child_procs_waiting_for_data_test(const char *mount_dir) +static int child_procs_waiting_for_data_test(char *mount_dir) { struct test_files_set test = get_test_files_set(); const int file_num = test.files_count; @@ -1718,7 +1716,7 @@ failure: return TEST_FAILURE; } -static int multiple_providers_test(const char *mount_dir) +static int multiple_providers_test(char *mount_dir) { struct test_files_set test = get_test_files_set(); const int file_num = test.files_count; @@ -1813,7 +1811,7 @@ failure: return TEST_FAILURE; } -static int hash_tree_test(const char *mount_dir) +static int hash_tree_test(char *mount_dir) { char *backing_dir; struct test_files_set test = get_test_files_set(); @@ -1935,8 +1933,7 @@ failure: enum expected_log { FULL_LOG, NO_LOG, PARTIAL_LOG }; -static int validate_logs(const char *mount_dir, int log_fd, - struct test_file *file, +static int validate_logs(char *mount_dir, int log_fd, struct test_file *file, enum expected_log expected_log) { uint8_t data[INCFS_DATA_FILE_BLOCK_SIZE]; @@ -2058,7 +2055,7 @@ failure: return TEST_FAILURE; } -static int read_log_test(const char *mount_dir) +static int read_log_test(char *mount_dir) { struct test_files_set test = get_test_files_set(); const int file_num = test.files_count; @@ -2220,7 +2217,7 @@ failure: return TEST_FAILURE; } -static int emit_partial_test_file_data(const char *mount_dir, struct test_file *file) +static int emit_partial_test_file_data(char *mount_dir, struct test_file *file) { int i, j; int block_cnt = 1 + (file->size - 1) / INCFS_DATA_FILE_BLOCK_SIZE; @@ -2386,7 +2383,7 @@ out: return error; } -static int get_blocks_test(const char *mount_dir) +static int get_blocks_test(char *mount_dir) { char *backing_dir; int cmd_fd = -1; @@ -2443,7 +2440,7 @@ failure: return TEST_FAILURE; } -static int emit_partial_test_file_hash(const char *mount_dir, struct test_file *file) +static int emit_partial_test_file_hash(char *mount_dir, struct test_file *file) { int err; int fd; @@ -2561,7 +2558,7 @@ out: return error; } -static int get_hash_blocks_test(const char *mount_dir) +static int get_hash_blocks_test(char *mount_dir) { char *backing_dir; int cmd_fd = -1; @@ -2611,7 +2608,7 @@ failure: return TEST_FAILURE; } -static int large_file_test(const char *mount_dir) +static int large_file(char *mount_dir) { char *backing_dir; int cmd_fd = -1; @@ -2693,54 +2690,12 @@ static char *setup_mount_dir() return mount_dir; } -struct options { - int test; -}; - -int parse_options(int argc, char *const *argv, struct options *options) -{ - signed char c; - - while ((c = getopt(argc, argv, "t:")) != -1) - switch (c) { - case 't': - options->test = strtol(optarg, NULL, 10); - break; - - default: - return -EINVAL; - } - - return 0; -} - -struct test_case { - int (*pfunc)(const char *dir); - const char *name; -}; - -void run_one_test(const char *mount_dir, struct test_case *test_case, - int *fails) -{ - ksft_print_msg("Running %s\n", test_case->name); - if (test_case->pfunc(mount_dir) == TEST_SUCCESS) - ksft_test_result_pass("%s\n", test_case->name); - else { - ksft_test_result_fail("%s\n", test_case->name); - fails++; - } -} - int main(int argc, char *argv[]) { char *mount_dir = NULL; int fails = 0; int i; int fd, count; - struct options options = {}; - - if (parse_options(argc, argv, &options)) - ksft_exit_fail_msg("Bad options\n"); // Seed randomness pool for testing on QEMU // NOTE - this abuses the concept of randomness - do *not* ever do this @@ -2765,7 +2720,10 @@ int main(int argc, char *argv[]) { \ test, #test \ } - struct test_case cases[] = { + struct { + int (*pfunc)(char *dir); + const char *name; + } cases[] = { MAKE_TEST(basic_file_ops_test), MAKE_TEST(cant_touch_index_test), MAKE_TEST(dynamic_files_and_data_test), @@ -2778,18 +2736,22 @@ int main(int argc, char *argv[]) MAKE_TEST(read_log_test), MAKE_TEST(get_blocks_test), MAKE_TEST(get_hash_blocks_test), - MAKE_TEST(large_file_test), + MAKE_TEST(large_file), }; #undef MAKE_TEST - if (options.test) { - if (options.test <= 0 || options.test > ARRAY_SIZE(cases)) - ksft_exit_fail_msg("Invalid test\n"); + /* Bring back for kernel 5.x */ + /* ksft_set_plan(ARRAY_SIZE(cases)); */ - run_one_test(mount_dir, &cases[options.test - 1], &fails); - } else - for (i = 0; i < ARRAY_SIZE(cases); ++i) - run_one_test(mount_dir, &cases[i], &fails); + for (i = 0; i < ARRAY_SIZE(cases); ++i) { + ksft_print_msg("Running %s\n", cases[i].name); + if (cases[i].pfunc(mount_dir) == TEST_SUCCESS) + ksft_test_result_pass("%s\n", cases[i].name); + else { + ksft_test_result_fail("%s\n", cases[i].name); + fails++; + } + } umount2(mount_dir, MNT_FORCE); rmdir(mount_dir);