diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml
index 3caa608..f7c59de 100644
--- a/.github/workflows/docker.yml
+++ b/.github/workflows/docker.yml
@@ -1,12 +1,14 @@
 name: Publish Docker image
-
 on:
   push:
     branches:
       - master
     paths-ignore:
       - '*.md'
+      - '.jenkins'
+      - '.jenkins.d/**'
       - '.mailmap'
+      - 'tests/**'
   workflow_dispatch:
 
 permissions:
diff --git a/.jenkins.d/20-tests.sh b/.jenkins.d/20-tests.sh
index 522bf04..7cd25f3 100755
--- a/.jenkins.d/20-tests.sh
+++ b/.jenkins.d/20-tests.sh
@@ -31,7 +31,6 @@
 # First run all tests as unprivileged user
 ./build/unit-tests-core $(ut_log_args core)
 ./build/unit-tests-daemon $(ut_log_args daemon)
-./build/unit-tests-rib $(ut_log_args rib)
 ./build/unit-tests-tools $(ut_log_args tools)
 
 # Then use sudo to run those tests that need superuser powers
diff --git a/README-dev.md b/README-dev.md
index b5c4cf3..66109bc 100644
--- a/README-dev.md
+++ b/README-dev.md
@@ -13,24 +13,26 @@
 If you choose the GPL v3, please use the following license boilerplate in all `.hpp`
 and `.cpp` files:
 
-    /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-    /*
-     * Copyright (c) [Year(s)], [Copyright Holder(s)].
-     *
-     * This file is part of NFD (Named Data Networking Forwarding Daemon).
-     * See AUTHORS.md for complete list of NFD authors and contributors.
-     *
-     * NFD is free software: you can redistribute it and/or modify it under the terms
-     * of the GNU General Public License as published by the Free Software Foundation,
-     * either version 3 of the License, or (at your option) any later version.
-     *
-     * NFD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
-     * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
-     * PURPOSE.  See the GNU General Public License for more details.
-     *
-     * You should have received a copy of the GNU General Public License along with
-     * NFD, e.g., in COPYING.md file.  If not, see <http://www.gnu.org/licenses/>.
-     */
+```cpp
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/*
+ * Copyright (c) [Year(s)], [Copyright Holder(s)].
+ *
+ * This file is part of NFD (Named Data Networking Forwarding Daemon).
+ * See AUTHORS.md for complete list of NFD authors and contributors.
+ *
+ * NFD is free software: you can redistribute it and/or modify it under the terms
+ * of the GNU General Public License as published by the Free Software Foundation,
+ * either version 3 of the License, or (at your option) any later version.
+ *
+ * NFD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE.  See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * NFD, e.g., in COPYING.md file.  If not, see <http://www.gnu.org/licenses/>.
+ */
+```
 
 If you are affiliated to an NSF-supported NDN project institution, please use the [NDN Team License
 Boilerplate](https://redmine.named-data.net/projects/nfd/wiki/NDN_Team_License_Boilerplate_(NFD)).
@@ -45,50 +47,58 @@
 
 To run unit tests, NFD needs to be configured and build with unit test support:
 
-    ./waf configure --with-tests # --debug is also strongly recommended while developing
-    ./waf
+```shell
+./waf configure --with-tests # --debug is also strongly recommended while developing
+./waf
+```
 
 The simplest way to run the tests is to launch the compiled binary without any parameters:
 
-    # Run core tests
-    ./build/unit-tests-core
+```shell
+# Run core tests
+./build/unit-tests-core
 
-    # Run NFD daemon tests
-    ./build/unit-tests-daemon
+# Run NFD daemon tests
+./build/unit-tests-daemon
 
-    # Run NFD RIB management tests
-    ./build/unit-tests-rib
+# Run tools tests (e.g., nfdc)
+./build/unit-tests-tools
+```
 
 The [Boost.Test framework](https://www.boost.org/doc/libs/1_71_0/libs/test/doc/html/index.html)
 is very flexible and allows a number of run-time customization of what tests should be run.
 For example, it is possible to choose to run only a specific test suite, only a specific
-test case within a suite, or specific test cases within specific test suites:
+test case within a suite, specific test cases across multiple test suites, and so on:
 
-    # Run only the TCP Face test suite of NFD daemon tests
-    ./build/unit-tests-daemon -t FaceTcp
+```shell
+# Run only the PIT tests inside the Table test suite of NFD daemon tests
+./build/unit-tests-daemon -t Table/TestPit
 
-    # Run only test case EndToEnd4 from the same test suite
-    ./build/unit-tests-daemon -t FaceTcp/EndToEnd4
+# Run only the test case "Find" from the previous test suite
+./build/unit-tests-daemon -t Table/TestPit/Find
 
-    # Run Basic test case from all core test suites
-    ./build/unit-tests-core -t */Basic
+# Run the "Basic" test case from all NFD RIB test suites
+./build/unit-tests-daemon -t Rib/*/Basic
+```
 
 By default, Boost.Test framework will produce verbose output only when a test case fails.
 If it is desired to see verbose output (result of each test assertion), add `-l all`
 option to `./build/unit-tests` command.  To see test progress, you can use `-l test_suite`,
 or `-p` to show a progress bar:
 
-    # Show report all log messages including the passed test notification
-    ./build/unit-tests-daemon -l all
+```shell
+# Show report all log messages including the passed test notification
+./build/unit-tests-daemon -l all
 
-    # Show test suite messages
-    ./build/unit-tests-daemon -l test_suite
+# Show test suite messages
+./build/unit-tests-daemon -l test_suite
 
-    # Show nothing
-    ./build/unit-tests-daemon -l nothing
+# Show nothing
+./build/unit-tests-daemon -l nothing
 
-    # Show progress bar
-    ./build/unit-tests-core -p
+# Show progress bar
+./build/unit-tests-tools -p
+```
 
 There are many more command line options available, information about which can be obtained
 either from the command line using the `--help` switch, or online on the
diff --git a/tests/daemon/rib/fib-updates-erase-face.t.cpp b/tests/daemon/rib/fib-updates-erase-face.t.cpp
index a911d5e..43ec2f0 100644
--- a/tests/daemon/rib/fib-updates-erase-face.t.cpp
+++ b/tests/daemon/rib/fib-updates-erase-face.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2014-2022,  Regents of the University of California,
+ * Copyright (c) 2014-2024,  Regents of the University of California,
  *                           Arizona Board of Regents,
  *                           Colorado State University,
  *                           University Pierre & Marie Curie, Sorbonne University,
@@ -30,8 +30,8 @@
 
 namespace nfd::tests {
 
+BOOST_AUTO_TEST_SUITE(Rib)
 BOOST_FIXTURE_TEST_SUITE(TestFibUpdates, FibUpdatesFixture)
-
 BOOST_AUTO_TEST_SUITE(EraseFace)
 
 BOOST_AUTO_TEST_CASE(WithInheritedFace_Root)
@@ -421,7 +421,7 @@
 }
 
 BOOST_AUTO_TEST_SUITE_END() // EraseFace
-
 BOOST_AUTO_TEST_SUITE_END() // FibUpdates
+BOOST_AUTO_TEST_SUITE_END() // Rib
 
 } // namespace nfd::tests
diff --git a/tests/daemon/rib/fib-updates-new-face.t.cpp b/tests/daemon/rib/fib-updates-new-face.t.cpp
index 79924df..0497a15 100644
--- a/tests/daemon/rib/fib-updates-new-face.t.cpp
+++ b/tests/daemon/rib/fib-updates-new-face.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2014-2022,  Regents of the University of California,
+ * Copyright (c) 2014-2024,  Regents of the University of California,
  *                           Arizona Board of Regents,
  *                           Colorado State University,
  *                           University Pierre & Marie Curie, Sorbonne University,
@@ -30,8 +30,8 @@
 
 namespace nfd::tests {
 
+BOOST_AUTO_TEST_SUITE(Rib)
 BOOST_FIXTURE_TEST_SUITE(TestFibUpdates, FibUpdatesFixture)
-
 BOOST_AUTO_TEST_SUITE(NewFace)
 
 BOOST_AUTO_TEST_CASE(Basic)
@@ -262,7 +262,7 @@
 }
 
 BOOST_AUTO_TEST_SUITE_END() // NewFace
-
 BOOST_AUTO_TEST_SUITE_END() // FibUpdates
+BOOST_AUTO_TEST_SUITE_END() // Rib
 
 } // namespace nfd::tests
diff --git a/tests/daemon/rib/fib-updates-new-namespace.t.cpp b/tests/daemon/rib/fib-updates-new-namespace.t.cpp
index 4ceb60b..084cf40 100644
--- a/tests/daemon/rib/fib-updates-new-namespace.t.cpp
+++ b/tests/daemon/rib/fib-updates-new-namespace.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2014-2022,  Regents of the University of California,
+ * Copyright (c) 2014-2024,  Regents of the University of California,
  *                           Arizona Board of Regents,
  *                           Colorado State University,
  *                           University Pierre & Marie Curie, Sorbonne University,
@@ -30,8 +30,8 @@
 
 namespace nfd::tests {
 
+BOOST_AUTO_TEST_SUITE(Rib)
 BOOST_FIXTURE_TEST_SUITE(TestFibUpdates, FibUpdatesFixture)
-
 BOOST_AUTO_TEST_SUITE(NewNamespace)
 
 BOOST_AUTO_TEST_CASE(NoFlags)
@@ -190,7 +190,7 @@
 }
 
 BOOST_AUTO_TEST_SUITE_END() // NewNamespace
-
 BOOST_AUTO_TEST_SUITE_END() // FibUpdates
+BOOST_AUTO_TEST_SUITE_END() // Rib
 
 } // namespace nfd::tests
diff --git a/tests/daemon/rib/fib-updates-update-face.t.cpp b/tests/daemon/rib/fib-updates-update-face.t.cpp
index bb76d01..3e8e987 100644
--- a/tests/daemon/rib/fib-updates-update-face.t.cpp
+++ b/tests/daemon/rib/fib-updates-update-face.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2014-2022,  Regents of the University of California,
+ * Copyright (c) 2014-2024,  Regents of the University of California,
  *                           Arizona Board of Regents,
  *                           Colorado State University,
  *                           University Pierre & Marie Curie, Sorbonne University,
@@ -30,8 +30,8 @@
 
 namespace nfd::tests {
 
+BOOST_AUTO_TEST_SUITE(Rib)
 BOOST_FIXTURE_TEST_SUITE(TestFibUpdates, FibUpdatesFixture)
-
 BOOST_AUTO_TEST_SUITE(UpdateFace)
 
 BOOST_AUTO_TEST_CASE(TurnOffChildInheritLowerCost)
@@ -256,7 +256,7 @@
 }
 
 BOOST_AUTO_TEST_SUITE_END() // UpdateFace
-
 BOOST_AUTO_TEST_SUITE_END() // FibUpdates
+BOOST_AUTO_TEST_SUITE_END() // Rib
 
 } // namespace nfd::tests
diff --git a/tests/daemon/rib/readvertise/client-to-nlsr-readvertise-policy.t.cpp b/tests/daemon/rib/readvertise/client-to-nlsr-readvertise-policy.t.cpp
index eab14e8..ff78b40 100644
--- a/tests/daemon/rib/readvertise/client-to-nlsr-readvertise-policy.t.cpp
+++ b/tests/daemon/rib/readvertise/client-to-nlsr-readvertise-policy.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2014-2022,  Regents of the University of California,
+ * Copyright (c) 2014-2024,  Regents of the University of California,
  *                           Arizona Board of Regents,
  *                           Colorado State University,
  *                           University Pierre & Marie Curie, Sorbonne University,
@@ -32,7 +32,7 @@
 
 using namespace nfd::rib;
 
-BOOST_AUTO_TEST_SUITE(Readvertise)
+BOOST_AUTO_TEST_SUITE(Rib)
 BOOST_FIXTURE_TEST_SUITE(TestClientToNlsrReadvertisePolicy, GlobalIoFixture)
 
 BOOST_AUTO_TEST_CASE(ReadvertiseClientRoute)
@@ -68,6 +68,6 @@
 }
 
 BOOST_AUTO_TEST_SUITE_END() // TestClientToNlsrReadvertisePolicy
-BOOST_AUTO_TEST_SUITE_END() // Readvertise
+BOOST_AUTO_TEST_SUITE_END() // Rib
 
 } // namespace nfd::tests
diff --git a/tests/daemon/rib/readvertise/host-to-gateway-readvertise-policy.t.cpp b/tests/daemon/rib/readvertise/host-to-gateway-readvertise-policy.t.cpp
index df73058..e9979d2 100644
--- a/tests/daemon/rib/readvertise/host-to-gateway-readvertise-policy.t.cpp
+++ b/tests/daemon/rib/readvertise/host-to-gateway-readvertise-policy.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2014-2022,  Regents of the University of California,
+ * Copyright (c) 2014-2024,  Regents of the University of California,
  *                           Arizona Board of Regents,
  *                           Colorado State University,
  *                           University Pierre & Marie Curie, Sorbonne University,
@@ -54,7 +54,7 @@
   }
 };
 
-BOOST_AUTO_TEST_SUITE(Readvertise)
+BOOST_AUTO_TEST_SUITE(Rib)
 BOOST_FIXTURE_TEST_SUITE(TestHostToGatewayReadvertisePolicy, HostToGatewayReadvertisePolicyFixture)
 
 BOOST_AUTO_TEST_CASE(PrefixToAdvertise)
@@ -105,6 +105,6 @@
 }
 
 BOOST_AUTO_TEST_SUITE_END() // TestHostToGatewayReadvertisePolicy
-BOOST_AUTO_TEST_SUITE_END() // Readvertise
+BOOST_AUTO_TEST_SUITE_END() // Rib
 
 } // namespace nfd::tests
diff --git a/tests/daemon/rib/readvertise/nfd-rib-readvertise-destination.t.cpp b/tests/daemon/rib/readvertise/nfd-rib-readvertise-destination.t.cpp
index 996ff37..caf38aa 100644
--- a/tests/daemon/rib/readvertise/nfd-rib-readvertise-destination.t.cpp
+++ b/tests/daemon/rib/readvertise/nfd-rib-readvertise-destination.t.cpp
@@ -65,7 +65,7 @@
   std::function<void(const std::string&)> failureCallback;
 };
 
-BOOST_AUTO_TEST_SUITE(Readvertise)
+BOOST_AUTO_TEST_SUITE(Rib)
 BOOST_FIXTURE_TEST_SUITE(TestNfdRibReadvertiseDestination, NfdRibReadvertiseDestinationFixture)
 
 class AdvertiseSuccessScenario
@@ -249,6 +249,6 @@
 }
 
 BOOST_AUTO_TEST_SUITE_END() // TestNfdRibReadvertiseDestination
-BOOST_AUTO_TEST_SUITE_END() // Readvertise
+BOOST_AUTO_TEST_SUITE_END() // Rib
 
 } // namespace nfd::tests
diff --git a/tests/daemon/rib/readvertise/readvertise.t.cpp b/tests/daemon/rib/readvertise/readvertise.t.cpp
index 06f905f..7f83dfc 100644
--- a/tests/daemon/rib/readvertise/readvertise.t.cpp
+++ b/tests/daemon/rib/readvertise/readvertise.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2014-2023,  Regents of the University of California,
+ * Copyright (c) 2014-2024,  Regents of the University of California,
  *                           Arizona Board of Regents,
  *                           Colorado State University,
  *                           University Pierre & Marie Curie, Sorbonne University,
@@ -161,7 +161,7 @@
   Rib m_rib;
 };
 
-BOOST_AUTO_TEST_SUITE(Readvertise)
+BOOST_AUTO_TEST_SUITE(Rib)
 BOOST_FIXTURE_TEST_SUITE(TestReadvertise, ReadvertiseFixture)
 
 BOOST_AUTO_TEST_CASE(AddRemoveRoute)
@@ -296,6 +296,6 @@
 }
 
 BOOST_AUTO_TEST_SUITE_END() // TestReadvertise
-BOOST_AUTO_TEST_SUITE_END() // Readvertise
+BOOST_AUTO_TEST_SUITE_END() // Rib
 
 } // namespace nfd::tests
diff --git a/tests/daemon/rib/rib-entry.t.cpp b/tests/daemon/rib/rib-entry.t.cpp
index 903313e..f6e61ea 100644
--- a/tests/daemon/rib/rib-entry.t.cpp
+++ b/tests/daemon/rib/rib-entry.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2014-2022,  Regents of the University of California,
+ * Copyright (c) 2014-2024,  Regents of the University of California,
  *                           Arizona Board of Regents,
  *                           Colorado State University,
  *                           University Pierre & Marie Curie, Sorbonne University,
@@ -33,6 +33,7 @@
 using rib::RibEntry;
 using rib::Route;
 
+BOOST_AUTO_TEST_SUITE(Rib)
 BOOST_FIXTURE_TEST_SUITE(TestRibEntry, GlobalIoFixture)
 
 BOOST_AUTO_TEST_CASE(Basic)
@@ -78,18 +79,13 @@
 BOOST_FIXTURE_TEST_SUITE(GetAnnouncement, GlobalIoTimeFixture)
 
 static Route
-makeSimpleRoute(uint64_t faceId)
+makeSimpleRoute(uint64_t faceId, std::optional<time::nanoseconds> expiration = std::nullopt)
 {
   Route route;
   route.faceId = faceId;
-  return route;
-}
-
-static Route
-makeSimpleRoute(uint64_t faceId, time::nanoseconds expiration)
-{
-  Route route = makeSimpleRoute(faceId);
-  route.expires = time::steady_clock::now() + expiration;
+  if (expiration) {
+    route.expires = time::steady_clock::now() + *expiration;
+  }
   return route;
 }
 
@@ -170,5 +166,6 @@
 BOOST_AUTO_TEST_SUITE_END() // GetAnnouncement
 
 BOOST_AUTO_TEST_SUITE_END() // TestRibEntry
+BOOST_AUTO_TEST_SUITE_END() // Rib
 
 } // namespace nfd::tests
diff --git a/tests/daemon/rib/rib-update.t.cpp b/tests/daemon/rib/rib-update.t.cpp
index 533439a..0941693 100644
--- a/tests/daemon/rib/rib-update.t.cpp
+++ b/tests/daemon/rib/rib-update.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2014-2022,  Regents of the University of California,
+ * Copyright (c) 2014-2024,  Regents of the University of California,
  *                           Arizona Board of Regents,
  *                           Colorado State University,
  *                           University Pierre & Marie Curie, Sorbonne University,
@@ -33,9 +33,10 @@
 
 using namespace nfd::rib;
 
+BOOST_AUTO_TEST_SUITE(Rib)
 BOOST_AUTO_TEST_SUITE(TestRibUpdate)
 
-BOOST_AUTO_TEST_CASE(BatchBasic)
+BOOST_AUTO_TEST_CASE(Batch)
 {
   const uint64_t faceId = 1;
   RibUpdateBatch batch(faceId);
@@ -75,5 +76,6 @@
 }
 
 BOOST_AUTO_TEST_SUITE_END() // TestRibUpdate
+BOOST_AUTO_TEST_SUITE_END() // Rib
 
 } // namespace nfd::tests
diff --git a/tests/daemon/rib/rib.t.cpp b/tests/daemon/rib/rib.t.cpp
index ad42323..d8ef5e1 100644
--- a/tests/daemon/rib/rib.t.cpp
+++ b/tests/daemon/rib/rib.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2014-2022,  Regents of the University of California,
+ * Copyright (c) 2014-2024,  Regents of the University of California,
  *                           Arizona Board of Regents,
  *                           Colorado State University,
  *                           University Pierre & Marie Curie, Sorbonne University,
@@ -35,6 +35,7 @@
 
 using rib::Route;
 
+BOOST_AUTO_TEST_SUITE(Rib)
 BOOST_FIXTURE_TEST_SUITE(TestRib, GlobalIoFixture)
 
 BOOST_AUTO_TEST_CASE(Parent)
@@ -229,7 +230,7 @@
   BOOST_CHECK_EQUAL(rib.size(), 1);
 }
 
-BOOST_AUTO_TEST_CASE(RibSignals)
+BOOST_AUTO_TEST_CASE(Signals)
 {
   rib::Rib rib;
 
@@ -292,7 +293,7 @@
   BOOST_CHECK_EQUAL(nAfterEraseEntryInvocations, 1);
 }
 
-BOOST_AUTO_TEST_CASE(Output)
+BOOST_AUTO_TEST_CASE(Print)
 {
   rib::Rib rib;
 
@@ -330,5 +331,6 @@
 }
 
 BOOST_AUTO_TEST_SUITE_END() // TestRib
+BOOST_AUTO_TEST_SUITE_END() // Rib
 
 } // namespace nfd::tests
diff --git a/tests/daemon/rib/route.t.cpp b/tests/daemon/rib/route.t.cpp
index c51e964..7133628 100644
--- a/tests/daemon/rib/route.t.cpp
+++ b/tests/daemon/rib/route.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2014-2023,  Regents of the University of California,
+ * Copyright (c) 2014-2024,  Regents of the University of California,
  *                           Arizona Board of Regents,
  *                           Colorado State University,
  *                           University Pierre & Marie Curie, Sorbonne University,
@@ -34,6 +34,7 @@
 
 using rib::Route;
 
+BOOST_AUTO_TEST_SUITE(Rib)
 BOOST_FIXTURE_TEST_SUITE(TestRoute, GlobalIoTimeFixture)
 
 BOOST_AUTO_TEST_SUITE(CreateFromAnnouncement)
@@ -123,10 +124,7 @@
   a.expires = std::nullopt;
 
   BOOST_CHECK_EQUAL(a, b);
-}
 
-BOOST_AUTO_TEST_CASE(EqualityAnn)
-{
   auto ann1 = makePrefixAnn("/ann", 1_h);
   auto ann2 = makePrefixAnn("/ann", 2_h);
   BOOST_CHECK_EQUAL(Route(ann1, 7001), Route(ann1, 7001));
@@ -134,7 +132,7 @@
   BOOST_CHECK_NE(Route(ann1, 7001), Route(ann2, 7001));
 }
 
-BOOST_AUTO_TEST_CASE(Output)
+BOOST_AUTO_TEST_CASE(Print)
 {
   Route r;
   BOOST_CHECK_EQUAL(boost::lexical_cast<std::string>(r),
@@ -160,5 +158,6 @@
 }
 
 BOOST_AUTO_TEST_SUITE_END() // TestRoute
+BOOST_AUTO_TEST_SUITE_END() // Rib
 
 } // namespace nfd::tests
diff --git a/tests/daemon/rib/service.t.cpp b/tests/daemon/rib/service.t.cpp
index 51189fc..9923efc 100644
--- a/tests/daemon/rib/service.t.cpp
+++ b/tests/daemon/rib/service.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2014-2023,  Regents of the University of California,
+ * Copyright (c) 2014-2024,  Regents of the University of California,
  *                           Arizona Board of Regents,
  *                           Colorado State University,
  *                           University Pierre & Marie Curie, Sorbonne University,
@@ -56,6 +56,7 @@
   ndn::KeyChain m_ribKeyChain;
 };
 
+BOOST_AUTO_TEST_SUITE(Rib)
 BOOST_FIXTURE_TEST_SUITE(TestService, RibServiceFixture)
 
 BOOST_AUTO_TEST_CASE(Basic)
@@ -146,5 +147,6 @@
 BOOST_AUTO_TEST_SUITE_END() // ProcessConfig
 
 BOOST_AUTO_TEST_SUITE_END() // TestService
+BOOST_AUTO_TEST_SUITE_END() // Rib
 
 } // namespace nfd::tests
diff --git a/tests/other/face-benchmark.cpp b/tests/other/face-benchmark.cpp
index 17ce4ef..50c2dab 100644
--- a/tests/other/face-benchmark.cpp
+++ b/tests/other/face-benchmark.cpp
@@ -91,7 +91,7 @@
     }
 
     if (m_faceUris.empty()) {
-      NDN_THROW(std::runtime_error("No supported FaceUri pairs found in config file"));
+      NDN_THROW_NO_STACK(std::runtime_error("No supported FaceUri pairs found in config file"));
     }
   }
 
@@ -162,7 +162,8 @@
   [[noreturn]] static void
   onFaceCreationFailed(uint32_t status, const std::string& reason)
   {
-    NDN_THROW(std::runtime_error("Failed to create face: [" + std::to_string(status) + "] " + reason));
+    NDN_THROW_NO_STACK(std::runtime_error("Failed to create face: [" +
+                                          std::to_string(status) + "] " + reason));
   }
 
 private:
diff --git a/tests/wscript b/tests/wscript
index 6e27661..956fd0d 100644
--- a/tests/wscript
+++ b/tests/wscript
@@ -1,6 +1,6 @@
 # -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
 """
-Copyright (c) 2014-2023,  Regents of the University of California,
+Copyright (c) 2014-2024,  Regents of the University of California,
                           Arizona Board of Regents,
                           Colorado State University,
                           University Pierre & Marie Curie, Sorbonne University,
@@ -39,19 +39,20 @@
             headers='../core/common.hpp boost-test.hpp',
             defines=[tmpdir])
 
-        for module in ['core', 'daemon', 'rib', 'tools']:
+        for module in ['core', 'daemon', 'tools']:
             # main() for the module
-            bld.objects(target=f'unit-tests-{module}-main',
-                        source='main.cpp',
-                        use='BOOST_TESTS',
-                        defines=[f'BOOST_TEST_MODULE=NFD {module.capitalize()}'])
+            bld.objects(
+                target=f'unit-tests-{module}-main',
+                source='main.cpp',
+                use='BOOST_TESTS',
+                defines=[f'BOOST_TEST_MODULE=NFD {module.capitalize()}'])
 
-            subdir = 'daemon/rib' if module == 'rib' else module
-            node = bld.path.find_dir(subdir)
-            src = node.ant_glob('**/*.cpp', excl=['face/*ethernet*.cpp',
-                                                  'face/pcap*.cpp',
-                                                  'face/unix*.cpp',
-                                                  'face/websocket*.cpp'])
+            node = bld.path.find_dir(module)
+            src = node.ant_glob('**/*.cpp',
+                                excl=['face/*ethernet*.cpp',
+                                      'face/pcap*.cpp',
+                                      'face/unix*.cpp',
+                                      'face/websocket*.cpp'])
             if bld.env.HAVE_LIBPCAP:
                 src += node.ant_glob('face/*ethernet*.cpp')
                 src += node.ant_glob('face/pcap*.cpp')
@@ -59,19 +60,15 @@
                 src += node.ant_glob('face/unix*.cpp')
             if bld.env.HAVE_WEBSOCKET:
                 src += node.ant_glob('face/websocket*.cpp')
-            if module == 'rib':
-                src += ['daemon/global-io-fixture.cpp',
-                        'daemon/limited-io.cpp',
-                        'daemon/rib-io-fixture.cpp']
 
-            objmod = 'daemon' if module == 'rib' else module
             # unit-tests binary for the module
-            bld.program(name=f'unit-tests-{module}',
-                        target=f'{top}/unit-tests-{module}',
-                        source=src,
-                        use=f'{objmod}-objects tests-common unit-tests-{module}-main',
-                        defines=[tmpdir],
-                        install_path=None)
+            bld.program(
+                name=f'unit-tests-{module}',
+                target=f'{top}/unit-tests-{module}',
+                source=src,
+                use=f'{module}-objects tests-common unit-tests-{module}-main',
+                defines=[tmpdir],
+                install_path=None)
 
     # Other tests (e.g., stress tests and benchmarks that can be enabled even if unit tests are disabled)
     if bld.env.WITH_TESTS or bld.env.WITH_OTHER_TESTS:
