Index: kernel/generic/src/console/cmd.c
===================================================================
--- kernel/generic/src/console/cmd.c	(revision a3630165a53276d3b260291f875ed00c4e105d15)
+++ kernel/generic/src/console/cmd.c	(revision e8d48d29c439a3624f43c9ea580cc1d74ff5b46a)
@@ -206,5 +206,6 @@
 	.func = cmd_test,
 	.argc = 1,
-	.argv = test_argv
+	.argv = test_argv,
+	.hints_enum = tests_hints_enum
 };
 
Index: kernel/test/test.c
===================================================================
--- kernel/test/test.c	(revision a3630165a53276d3b260291f875ed00c4e105d15)
+++ kernel/test/test.c	(revision e8d48d29c439a3624f43c9ea580cc1d74ff5b46a)
@@ -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 a3630165a53276d3b260291f875ed00c4e105d15)
+++ kernel/test/test.h	(revision e8d48d29c439a3624f43c9ea580cc1d74ff5b46a)
@@ -85,4 +85,6 @@
 extern test_t tests[];
 
+extern const char* tests_hints_enum(const char *, const char **, void **);
+
 #endif
 
