Index: kernel/test/test.c
===================================================================
--- kernel/test/test.c	(revision 8848276f783a994f2c75a9a78277b322ca2a81ad)
+++ kernel/test/test.c	(revision 0cfc18d371132ba897ebc75f095c39ad9d64be99)
@@ -34,4 +34,5 @@
 
 #include <test.h>
+#include <str.h>
 
 bool test_quiet;
@@ -68,4 +69,30 @@
 };
 
+const char* tests_hints_enum(const char *input, const char **help,
+    void **ctx)
+{
+	size_t len = str_length(input);
+	test_t **test = (test_t**)ctx;
+	
+	if (*test == NULL)
+		*test = tests;
+	
+	for (; (*test)->name; (*test)++) {
+		const char *curname = (*test)->name;
+		
+		if (str_length(curname) < len)
+			continue;
+		
+		if (str_lcmp(input, curname, len) == 0) {
+			(*test)++;
+			if (help)
+				*help = (*test)->desc;
+			return (curname + str_lsize(curname, len));
+		}
+	}
+	
+	return NULL;
+}
+
 /** @}
  */
Index: kernel/test/test.h
===================================================================
--- kernel/test/test.h	(revision 8848276f783a994f2c75a9a78277b322ca2a81ad)
+++ kernel/test/test.h	(revision 0cfc18d371132ba897ebc75f095c39ad9d64be99)
@@ -85,4 +85,6 @@
 extern test_t tests[];
 
+extern const char* tests_hints_enum(const char *, const char **, void **);
+
 #endif
 
