Index: uspace/app/tmon/commands.h
===================================================================
--- uspace/app/tmon/commands.h	(revision 7f70d1c93f7231d3c5d9a97f24f6558552056488)
+++ uspace/app/tmon/commands.h	(revision fd312d505127e9d7f9046c8ee961d3cb5c51249c)
@@ -38,5 +38,6 @@
 
 int tmon_list(int, char **);
-int tmon_test_bulk(int, char **);
+int tmon_stress_bulk_in(int, char **);
+int tmon_stress_bulk_out(int, char **);
 
 #endif /* TMON_COMMANDS_H_ */
Index: uspace/app/tmon/main.c
===================================================================
--- uspace/app/tmon/main.c	(revision 7f70d1c93f7231d3c5d9a97f24f6558552056488)
+++ uspace/app/tmon/main.c	(revision fd312d505127e9d7f9046c8ee961d3cb5c51249c)
@@ -40,11 +40,4 @@
 #define NAME "tmon"
 
-static int fallback(int argc, char *argv[])
-{
-	// FIXME
-	printf(NAME ": Not implemented, lol!\n");
-	return 1;
-}
-
 typedef struct {
 	const char *name;
@@ -60,17 +53,12 @@
 	},
 	{
-		.name = "test-bulk",
-		.description = "Benchmark bulk endpoints of a diagnostic device.",
-		.action = tmon_test_bulk,
+		.name = "stress-bulk-in",
+		.description = "Stress benchmark bulk in endpoints of a diagnostic device.",
+		.action = tmon_stress_bulk_in,
 	},
 	{
-		.name = "test-intr",
-		.description = "Benchmark interrupt endpoints of a diagnostic device.",
-		.action = fallback,
-	},
-	{
-		.name = "test-isoch",
-		.description = "Benchmark isochronous endpoints of a diagnostic device.",
-		.action = fallback,
+		.name = "stress-bulk-out",
+		.description = "Benchmark bulk out endpoints of a diagnostic device.",
+		.action = tmon_stress_bulk_out,
 	},
 	{
Index: uspace/app/tmon/test.c
===================================================================
--- uspace/app/tmon/test.c	(revision 7f70d1c93f7231d3c5d9a97f24f6558552056488)
+++ uspace/app/tmon/test.c	(revision fd312d505127e9d7f9046c8ee961d3cb5c51249c)
@@ -114,16 +114,14 @@
 }
 
-static int bulk_worker(devman_handle_t fun) {
+static int stress_bulk_in(devman_handle_t fun) {
 	async_sess_t *sess = usbdiag_connect(fun);
 	async_exch_t *exch = async_exchange_begin(sess);
 
-	// TODO: do some testing
-	int y;
-	int rc = usbdiag_test(exch, 4200, &y);
+	const int cycles = 1024;
+	const size_t size = 65432;
+	int rc = usbdiag_stress_bulk_in(exch, cycles, size);
 
 	if (rc) {
 		printf(NAME ": %s\n", str_error(rc));
-	} else {
-		printf("The number is %d.\n", y);
 	}
 
@@ -133,7 +131,29 @@
 }
 
-int tmon_test_bulk(int argc, char *argv[])
+static int stress_bulk_out(devman_handle_t fun) {
+	async_sess_t *sess = usbdiag_connect(fun);
+	async_exch_t *exch = async_exchange_begin(sess);
+
+	const int cycles = 1024;
+	const size_t size = 65432;
+	int rc = usbdiag_stress_bulk_out(exch, cycles, size);
+
+	if (rc) {
+		printf(NAME ": %s\n", str_error(rc));
+	}
+
+	async_exchange_end(exch);
+	usbdiag_disconnect(sess);
+	return 0;
+}
+
+int tmon_stress_bulk_in(int argc, char *argv[])
 {
-	return resolve_and_test(argc, argv, bulk_worker);
+	return resolve_and_test(argc, argv, stress_bulk_in);
+}
+
+int tmon_stress_bulk_out(int argc, char *argv[])
+{
+	return resolve_and_test(argc, argv, stress_bulk_out);
 }
 
