From 303c9348940e4d6e523976ec4d68777f180545d1 Mon Sep 17 00:00:00 2001 From: CismonX Date: Wed, 11 Jun 2025 20:45:16 +0800 Subject: [PATCH] test: misc refactor - If the utility library is not built, link to the existing library when building helper programs for filesystem tests. - Refactor PRNG seeding in tests. --- tests/Makefile.am | 10 +++++----- tests/check_fs.c | 2 -- tests/check_fs_dents.c | 9 +++------ tests/check_fs_regrw.c | 9 +++------ tests/check_fs_times.c | 9 +++------ tests/check_hashmap.c | 9 +++------ tests/check_lib.c | 9 +++------ tests/check_util.c | 23 +++++++++++++++-------- tests/check_util.h | 1 - tests/fs_dents.at | 6 +----- tests/fs_regrw.at | 6 +----- tests/fs_times.at | 6 +----- tests/lib_hashmap.at | 1 - tests/lib_prng.at | 1 - 14 files changed, 38 insertions(+), 63 deletions(-) diff --git a/tests/Makefile.am b/tests/Makefile.am index 12ace8b..e25e7b7 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -31,13 +31,13 @@ if BOOKMARKFS_MOUNT check_fs_CPPFLAGS = -I$(top_srcdir)/src check_fs_LDADD = - check_fs_SOURCES = check_fs.c + check_fs_SOURCES = check_fs.c check_fs_dents.c check_fs_regrw.c \ + check_fs_times.c check_util.c if BOOKMARKFS_UTIL - check_fs_CPPFLAGS += -DHAVE_BOOKMARKFS_UTIL - check_fs_LDADD += $(top_builddir)/src/libbookmarkfs_util.la - check_fs_SOURCES += check_fs_regrw.c check_fs_dents.c check_util.c \ - check_fs_times.c + check_fs_LDADD += $(top_builddir)/src/libbookmarkfs_util.la +else + check_fs_LDADD += $(BOOKMARKFS_UTIL_LIBS) endif # BOOKMARKFS_UTIL endif # BOOKMARKFS_MOUNT diff --git a/tests/check_fs.c b/tests/check_fs.c index 3c73c77..f3a1045 100644 --- a/tests/check_fs.c +++ b/tests/check_fs.c @@ -54,12 +54,10 @@ dispatch_subcmds ( status = subcmd_ismount(argc, argv); } else if (0 == strcmp("sleep", cmd)) { status = subcmd_sleep(argc, argv); -#ifdef HAVE_BOOKMARKFS_UTIL } else if (0 == strcmp("regrw", cmd)) { status = check_fs_regrw(argc, argv); } else if (0 == strcmp("dents", cmd)) { status = check_fs_dents(argc, argv); -#endif } else if (0 == strcmp("times", cmd)) { status = check_fs_times(argc, argv); } else { diff --git a/tests/check_fs_dents.c b/tests/check_fs_dents.c index 5774f7b..25d9c93 100644 --- a/tests/check_fs_dents.c +++ b/tests/check_fs_dents.c @@ -241,7 +241,7 @@ check_fs_dents ( int argc, char *argv[] ) { - uint64_t seed_buf[4], *seed = NULL; + char const *seed = NULL; int n = -1; OPT_START(argc, argv, "n:s:") @@ -250,10 +250,7 @@ check_fs_dents ( break; } OPT_OPT('s') { - if (0 != prng_seed_from_hex(seed_buf, optarg)) { - return -1; - } - seed = seed_buf; + seed = optarg; break; } OPT_END @@ -268,7 +265,7 @@ check_fs_dents ( } char const *path = argv[0]; - if (0 != prng_seed(seed)) { + if (0 != prng_seed_from_hex(seed)) { return -1; } int dirfd = open(path, O_RDONLY | O_DIRECTORY); diff --git a/tests/check_fs_regrw.c b/tests/check_fs_regrw.c index 762ca70..d244ece 100644 --- a/tests/check_fs_regrw.c +++ b/tests/check_fs_regrw.c @@ -167,7 +167,7 @@ check_fs_regrw ( int argc, char *argv[] ) { - uint64_t seed_buf[4], *seed = NULL; + char const *seed = NULL; int file_max = -1; OPT_START(argc, argv, "n:s:") @@ -176,10 +176,7 @@ check_fs_regrw ( break; } OPT_OPT('s') { - if (0 != prng_seed_from_hex(seed_buf, optarg)) { - return -1; - } - seed = seed_buf; + seed = optarg; break; } OPT_END @@ -194,7 +191,7 @@ check_fs_regrw ( } char const *path = argv[0]; - if (0 != prng_seed(seed)) { + if (0 != prng_seed_from_hex(seed)) { return -1; } return do_check_fs_regrw(path, file_max); diff --git a/tests/check_fs_times.c b/tests/check_fs_times.c index c1fdb63..bdbb871 100644 --- a/tests/check_fs_times.c +++ b/tests/check_fs_times.c @@ -153,7 +153,7 @@ check_fs_times ( int argc, char *argv[] ) { - uint64_t seed_buf[4], *seed = NULL; + char const *seed = NULL; int rounds = -1; OPT_START(argc, argv, "r:s:") @@ -162,10 +162,7 @@ check_fs_times ( break; } OPT_OPT('s') { - if (0 != prng_seed_from_hex(seed_buf, optarg)) { - return -1; - } - seed = seed_buf; + seed = optarg; break; } OPT_END @@ -180,7 +177,7 @@ check_fs_times ( } char const *path = argv[0]; - if (0 != prng_seed(seed)) { + if (0 != prng_seed_from_hex(seed)) { return -1; } int dirfd = open(path, O_RDONLY | O_DIRECTORY); diff --git a/tests/check_hashmap.c b/tests/check_hashmap.c index 2d613a2..7adf90d 100644 --- a/tests/check_hashmap.c +++ b/tests/check_hashmap.c @@ -168,16 +168,13 @@ check_hashmap ( int argc, char *argv[] ) { - uint64_t seed_buf[4], *seed = NULL; + char const *seed = NULL; int size_exp = -1; int rounds = -1; OPT_START(argc, argv, "s:n:r:") OPT_OPT('s') { - if (0 != prng_seed_from_hex(seed_buf, optarg)) { - return -1; - } - seed = seed_buf; + seed = optarg; break; } OPT_OPT('n') { @@ -199,7 +196,7 @@ check_hashmap ( return -1; } - if (0 != prng_seed(seed)) { + if (0 != prng_seed_from_hex(seed)) { return -1; } return do_check_hashmap(1u << size_exp, rounds); diff --git a/tests/check_lib.c b/tests/check_lib.c index 781f0dc..0eded62 100644 --- a/tests/check_lib.c +++ b/tests/check_lib.c @@ -104,15 +104,12 @@ subcmd_prng ( int argc, char *argv[] ) { - uint64_t seed_buf[4], *seed = NULL; + char const *seed = NULL; int n = 0; OPT_START(argc, argv, "s:n:") OPT_OPT('s') { - if (0 != prng_seed_from_hex(seed_buf, optarg)) { - return -1; - } - seed = seed_buf; + seed = optarg; break; } OPT_OPT('n') { @@ -121,7 +118,7 @@ subcmd_prng ( } OPT_END - if (0 != prng_seed(seed)) { + if (0 != prng_seed_from_hex(seed)) { return -1; } for (; n > 0; --n) { diff --git a/tests/check_util.c b/tests/check_util.c index 41a3e48..3636464 100644 --- a/tests/check_util.c +++ b/tests/check_util.c @@ -27,17 +27,24 @@ #include #include +#include "prng.h" + int prng_seed_from_hex ( - uint64_t *buf, char const *str ) { - int cnt = sscanf(str, - "%16" SCNx64 "%16" SCNx64 "%16" SCNx64 "%16" SCNx64, - &buf[0], &buf[1], &buf[2], &buf[3]); - if (cnt != 4) { - log_printf("bad seed '%s'", str); - return -1; + uint64_t buf[4], *seed = NULL; + + if (str != NULL) { + int cnt = sscanf(str, + "%16" SCNx64 "%16" SCNx64 "%16" SCNx64 "%16" SCNx64, + &buf[0], &buf[1], &buf[2], &buf[3]); + if (cnt != 4) { + log_puts("bad prng seed"); + return -1; + } + seed = buf; + log_printf("prng seed: '%s'", str); } - return 0; + return prng_seed(seed); } diff --git a/tests/check_util.h b/tests/check_util.h index f318bb2..e4c3374 100644 --- a/tests/check_util.h +++ b/tests/check_util.h @@ -73,7 +73,6 @@ check_watcher ( int prng_seed_from_hex ( - uint64_t *buf, char const *str ); diff --git a/tests/fs_dents.at b/tests/fs_dents.at index 77a4fa6..abd0441 100644 --- a/tests/fs_dents.at +++ b/tests/fs_dents.at @@ -10,14 +10,10 @@ dnl AT_SETUP([fs: directory entries]) AT_KEYWORDS([fs dents]) -ATX_CHECK_FS_NEW_ANY(, [ - # requires PRNG - ATX_FEAT_PREREQ([bookmarkfs-util]) -], [ +ATX_CHECK_FS_NEW_ANY(, , [ ATX_RUN_REPEAT([8], [ name=$(ath_fn_rand_u64_hex) seed=$(ath_fn_prng_seed) - echo "prng seed: $seed" mkdir $name ATX_RUN([ diff --git a/tests/fs_regrw.at b/tests/fs_regrw.at index 6f5eba7..f4de87e 100644 --- a/tests/fs_regrw.at +++ b/tests/fs_regrw.at @@ -10,13 +10,9 @@ dnl AT_SETUP([fs: regular file read/write]) AT_KEYWORDS([fs regrw]) -ATX_CHECK_FS_NEW_ANY([file_max=524288], [ - # requires PRNG - ATX_FEAT_PREREQ([bookmarkfs-util]) -], [ +ATX_CHECK_FS_NEW_ANY([file_max=524288], , [ name=$(ath_fn_rand_u64_hex) seed=$(ath_fn_prng_seed) - echo "prng seed: $seed" ATX_RUN([ check-fs regrw -n 524288 -s "$seed" $name diff --git a/tests/fs_times.at b/tests/fs_times.at index b193753..0ceff43 100644 --- a/tests/fs_times.at +++ b/tests/fs_times.at @@ -10,13 +10,9 @@ dnl AT_SETUP([fs: last access/modification times]) AT_KEYWORDS([fs times]) -ATX_CHECK_FS_NEW_ANY(, [ - # requires PRNG - ATX_FEAT_PREREQ([bookmarkfs-util]) -], [ +ATX_CHECK_FS_NEW_ANY(, , [ name=$(ath_fn_rand_u64_hex) seed=$(ath_fn_prng_seed) - echo "prng seed: $seed" mkdir $name ATX_RUN([ diff --git a/tests/lib_hashmap.at b/tests/lib_hashmap.at index 89d2c57..2518d7d 100644 --- a/tests/lib_hashmap.at +++ b/tests/lib_hashmap.at @@ -15,7 +15,6 @@ ATX_CHECK_LIB([ if test -z "$seed"; then seed=$(ath_fn_prng_seed) fi - echo "prng seed: $seed" size="${CHECK_HASHMAP_DATA_SIZE}" if test -z "$size"; then diff --git a/tests/lib_prng.at b/tests/lib_prng.at index 0ff29af..f82c03b 100644 --- a/tests/lib_prng.at +++ b/tests/lib_prng.at @@ -21,7 +21,6 @@ ATX_CHECK_LIB([ ATX_RUN_REPEAT([16], [ seed=$(ath_fn_prng_seed) count=32 - echo "prng seed: $seed" num_1=$(gen_num $seed $count) num_2=$(gen_num $seed $count)