]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
test-recurse-dir: output some simple timing info, comparing recurse_dir() and nftw()
authorLennart Poettering <lennart@poettering.net>
Fri, 8 Oct 2021 08:47:41 +0000 (10:47 +0200)
committerLennart Poettering <lennart@poettering.net>
Mon, 11 Oct 2021 12:31:34 +0000 (14:31 +0200)
src/test/test-recurse-dir.c

index 5872936a77c7455d4eab0e57e2c72833f63ddd02..c3961191c4665ef6e34f1e580579e4d17ad6f7d7 100644 (file)
@@ -120,6 +120,7 @@ static int recurse_dir_callback(
 int main(int argc, char *argv[]) {
         _cleanup_strv_free_ char **list_recurse_dir = NULL;
         const char *p;
+        usec_t t1, t2, t3, t4;
         int r;
 
         log_show_color(true);
@@ -131,14 +132,20 @@ int main(int argc, char *argv[]) {
                 p = "/usr/share/man"; /* something hopefully reasonably stable while we run (and limited in size) */
 
         /* Enumerate the specified dirs in full, once via nftw(), and once via recurse_dir(), and ensure the results are identical */
+        t1 = now(CLOCK_MONOTONIC);
         r = recurse_dir_at(AT_FDCWD, p, 0, UINT_MAX, RECURSE_DIR_SORT|RECURSE_DIR_ENSURE_TYPE|RECURSE_DIR_SAME_MOUNT, recurse_dir_callback, &list_recurse_dir);
+        t2 = now(CLOCK_MONOTONIC);
         if (r == -ENOENT) {
                 log_warning_errno(r, "Couldn't open directory %s, ignoring: %m", p);
                 return EXIT_TEST_SKIP;
         }
         assert_se(r >= 0);
 
+        t3 = now(CLOCK_MONOTONIC);
         assert_se(nftw(p, nftw_cb, 64, FTW_PHYS|FTW_MOUNT) >= 0);
+        t4 = now(CLOCK_MONOTONIC);
+
+        log_info("recurse_dir(): %s – nftw(): %s", FORMAT_TIMESPAN(t2 - t1, 1), FORMAT_TIMESPAN(t4 - t3, 1));
 
         strv_sort(list_recurse_dir);
         strv_sort(list_nftw);