Index: uspace/lib/cpp/include/internal/test/test.hpp
===================================================================
--- uspace/lib/cpp/include/internal/test/test.hpp	(revision 035a35c2d41f69bc152ccb4925a6aa2e5a17243e)
+++ uspace/lib/cpp/include/internal/test/test.hpp	(revision f7aaffe06c246594d2ac20b0ce6bce6cfd84dadb)
@@ -41,4 +41,8 @@
 
             virtual ~test_suite() = default;
+
+            unsigned int get_failed() const noexcept;
+
+            unsigned int get_succeeded() const noexcept;
 
         protected:
Index: uspace/lib/cpp/include/internal/test/tests.hpp
===================================================================
--- uspace/lib/cpp/include/internal/test/tests.hpp	(revision 035a35c2d41f69bc152ccb4925a6aa2e5a17243e)
+++ uspace/lib/cpp/include/internal/test/tests.hpp	(revision f7aaffe06c246594d2ac20b0ce6bce6cfd84dadb)
@@ -30,8 +30,55 @@
 #define LIBCPP_TESTS
 
+#include <cstdio>
 #include <internal/test/test.hpp>
+#include <vector>
 
 namespace std::test
 {
+    class test_set
+    {
+        public:
+            test_set() = default;
+
+            template<class T>
+            void add()
+            {
+                tests_.push_back(new T{});
+            }
+
+            bool run()
+            {
+                bool res{true};
+                unsigned int succeeded{};
+                unsigned int failed{};
+
+                for (auto test: tests_)
+                {
+                    res &= test->run();
+                    succeeded += test->get_succeeded();
+                    failed += test->get_failed();
+                }
+
+                std::printf("\n");
+                if (res)
+                    std::printf("[TESTS SUCCEEDED!]");
+                else
+                    std::printf("[TESTS FAILED]");
+                std::printf("[%u OK][%u FAIL][%u TOTAL]\n",
+                            succeeded, failed, (succeeded + failed));
+
+                return res;
+            }
+
+            ~test_set()
+            {
+                // TODO: Gimme unique_ptr!
+                for (auto ptr: tests_)
+                    delete ptr;
+            }
+        private:
+            std::vector<test_suite*> tests_{};
+    };
+
     class array_test: public test_suite
     {
