diff --git a/include/test/test-names.h b/include/test/test-names.h
index 9711ed2..4fbb742 100644
--- a/include/test/test-names.h
+++ b/include/test/test-names.h
@@ -5,11 +5,13 @@
 #define KUNIT_T kunit
 #define KUNIT_RESOURCE_T kunit_resource
 #define KUNIT_CASE_T kunit_case
+#define KUNIT_SUITE_T kunit_suite
 
 #else
 
 #define KUNIT_T test
 #define KUNIT_RESOURCE_T test_resource
 #define KUNIT_CASE_T test_case
+#define KUNIT_SUITE_T test_module
 
 #endif
diff --git a/include/test/test.h b/include/test/test.h
index 0fa45ed..9e0d5a7 100644
--- a/include/test/test.h
+++ b/include/test/test.h
@@ -85,7 +85,7 @@
  * A test case is a function with the signature, ``void (*)(struct KUNIT_T *)``
  * that makes expectations and assertions (see EXPECT_TRUE() and ASSERT_TRUE())
  * about code under test. Each test case is associated with a
- * &struct test_module and will be run after the module's init function and
+ * &struct KUNIT_SUITE_T and will be run after the module's init function and
  * followed by the module's exit function.
  *
  * A test case should be static and should only be created with the TEST_CASE()
@@ -129,7 +129,7 @@
 #define TEST_CASE(test_name) { .run_case = test_name, .name = #test_name }
 
 /**
- * struct test_module - describes a related collection of &struct KUNIT_CASE_T s.
+ * struct KUNIT_SUITE_T - describes a related collection of &struct KUNIT_CASE_T s.
  * @name: the name of the test. Purely informational.
  * @init: called before every test case.
  * @exit: called after every test case.
@@ -143,7 +143,7 @@
  * Every &struct KUNIT_CASE_T must be associated with a test_module for KUnit to
  * run it.
  */
-struct test_module {
+struct KUNIT_SUITE_T {
 	const char name[256];
 	int (*init)(struct KUNIT_T *test);
 	void (*exit)(struct KUNIT_T *test);
@@ -164,7 +164,7 @@
 /**
  * struct KUNIT_T - represents a running instance of a test.
  * @priv: for user to store arbitrary data. Commonly used to pass data created
- * in the init function (see &struct test_module).
+ * in the init function (see &struct KUNIT_SUITE_T).
  *
  * Used to store information about the current context under which the test is
  * running. Most of this data is private and should only be accessed indirectly
@@ -199,7 +199,7 @@
 
 int test_init_test(struct KUNIT_T *test, const char *name);
 
-int test_run_tests(struct test_module *module);
+int test_run_tests(struct KUNIT_SUITE_T *module);
 
 #if IS_ENABLED(CONFIG_TEST)
 int test_executor_init(void);
@@ -224,10 +224,10 @@
 		test_pure_initcall(register_test_initcall_##initcall)
 
 /**
- * module_test() - used to register a &struct test_module with KUnit.
- * @module: a statically allocated &struct test_module.
+ * module_test() - used to register a &struct KUNIT_SUITE_T with KUnit.
+ * @module: a statically allocated &struct KUNIT_SUITE_T.
  *
- * Registers @module with the test framework. See &struct test_module for more
+ * Registers @module with the test framework. See &struct KUNIT_SUITE_T for more
  * information.
  * Hardcoding the alignment to 8 was chosen as the most likely to remain
  * between the compiler laying out the test module pointers in the custom
@@ -238,7 +238,7 @@
  * (test_module *) starting at __test_modules_start.
  */
 #define module_test(module) \
-		static struct test_module *__test_module_##module __used       \
+		static struct KUNIT_SUITE_T *__test_module_##module __used       \
 		__aligned(8) __attribute__((__section__(".test_modules"))) = \
 			&module
 
diff --git a/test/example-test.c b/test/example-test.c
index d61daf7..92c739a 100644
--- a/test/example-test.c
+++ b/test/example-test.c
@@ -68,7 +68,7 @@
 	{},
 };
 
-static struct test_module example_test_module = {
+static struct KUNIT_SUITE_T example_test_module = {
 	.name = "example",
 	.init = example_test_init,
 	.test_cases = example_test_cases,
diff --git a/test/mock-macro-test.c b/test/mock-macro-test.c
index 32f2b3c..14da7eb 100644
--- a/test/mock-macro-test.c
+++ b/test/mock-macro-test.c
@@ -254,7 +254,7 @@
 	{},
 };
 
-static struct test_module mock_macro_test_module = {
+static struct KUNIT_SUITE_T mock_macro_test_module = {
 	.name = "mock-macro-test",
 	.init = mock_macro_test_init,
 	.test_cases = mock_macro_test_cases,
diff --git a/test/mock-test.c b/test/mock-test.c
index e67a1bd1..56608da 100644
--- a/test/mock-test.c
+++ b/test/mock-test.c
@@ -1107,7 +1107,7 @@
         {},
 };
 
-static struct test_module mock_test_module = {
+static struct KUNIT_SUITE_T mock_test_module = {
 	.name = "mock-test",
 	.init = mock_test_init,
 	.test_cases = mock_test_cases,
diff --git a/test/strerror-test.c b/test/strerror-test.c
index 09e2fbc..7bd3820 100644
--- a/test/strerror-test.c
+++ b/test/strerror-test.c
@@ -72,7 +72,7 @@
 	{},
 };
 
-static struct test_module strerror_test_module = {
+static struct KUNIT_SUITE_T strerror_test_module = {
 	.name = "strerror-test",
 	.test_cases = strerror_test_cases,
 };
diff --git a/test/string-stream-test.c b/test/string-stream-test.c
index 0a97050..9bb8381 100644
--- a/test/string-stream-test.c
+++ b/test/string-stream-test.c
@@ -53,7 +53,7 @@
 	{}
 };
 
-static struct test_module string_stream_test_module = {
+static struct KUNIT_SUITE_T string_stream_test_module = {
 	.name = "string-stream-test",
 	.test_cases = string_stream_test_cases
 };
diff --git a/test/test-death-test.c b/test/test-death-test.c
index 806effe..5b8bfe1 100644
--- a/test/test-death-test.c
+++ b/test/test-death-test.c
@@ -19,7 +19,7 @@
 	{},
 };
 
-static struct test_module test_death_test_module = {
+static struct KUNIT_SUITE_T test_death_test_module = {
 	.name = "test-death-test",
 	.test_cases = test_death_test_cases,
 };
diff --git a/test/test-executor.c b/test/test-executor.c
index 2cb8bb3..edc751f 100644
--- a/test/test-executor.c
+++ b/test/test-executor.c
@@ -12,11 +12,11 @@
 
 static bool test_run_all_tests(void)
 {
-	struct test_module **module;
-	struct test_module ** const test_modules_start =
-			(struct test_module **) &__test_modules_start;
-	struct test_module ** const test_modules_end =
-			(struct test_module **) &__test_modules_end;
+	struct KUNIT_SUITE_T **module;
+	struct KUNIT_SUITE_T ** const test_modules_start =
+			(struct KUNIT_SUITE_T **) &__test_modules_start;
+	struct KUNIT_SUITE_T ** const test_modules_end =
+			(struct KUNIT_SUITE_T **) &__test_modules_end;
 	bool has_test_failed = false;
 
 	for (module = test_modules_start; module < test_modules_end; ++module) {
diff --git a/test/test-stream-test.c b/test/test-stream-test.c
index c1c7e96..0dfc82b 100644
--- a/test/test-stream-test.c
+++ b/test/test-stream-test.c
@@ -162,7 +162,7 @@
 	{},
 };
 
-static struct test_module test_stream_test_module = {
+static struct KUNIT_SUITE_T test_stream_test_module = {
 	.name = "test-stream-test",
 	.init = test_stream_test_init,
 	.exit = test_stream_test_exit,
diff --git a/test/test-test.c b/test/test-test.c
index 9b00bee..9839c75 100644
--- a/test/test-test.c
+++ b/test/test-test.c
@@ -122,7 +122,7 @@
 	{},
 };
 
-static struct test_module test_test_module = {
+static struct KUNIT_SUITE_T test_test_module = {
 	.name = "test-test",
 	.init = test_test_init,
 	.exit = test_test_exit,
diff --git a/test/test.c b/test/test.c
index d0cad80..33583e3 100644
--- a/test/test.c
+++ b/test/test.c
@@ -138,7 +138,7 @@
  * Initializes and runs test case. Does not clean up or do post validations.
  */
 static void test_run_case_internal(struct KUNIT_T *test,
-				   struct test_module *module,
+				   struct KUNIT_SUITE_T *module,
 				   struct KUNIT_CASE_T *test_case)
 {
 	struct test_initcall *initcall;
@@ -169,7 +169,7 @@
  * Handles an unexpected crash in a test case.
  */
 static void test_handle_test_crash(struct KUNIT_T *test,
-				   struct test_module *module,
+				   struct KUNIT_SUITE_T *module,
 				   struct KUNIT_CASE_T *test_case)
 {
 	test_err(test, "%s crashed", test_case->name);
@@ -184,7 +184,7 @@
 
 struct test_try_catch_context {
 	struct KUNIT_T *test;
-	struct test_module *module;
+	struct KUNIT_SUITE_T *module;
 	struct KUNIT_CASE_T *test_case;
 };
 
@@ -194,7 +194,7 @@
  * XXX: Should ONLY BE CALLED AFTER test_run_case_internal!
  */
 static void test_run_case_cleanup(struct KUNIT_T *test,
-				  struct test_module *module,
+				  struct KUNIT_SUITE_T *module,
 				  struct KUNIT_CASE_T *test_case)
 {
 	struct test_post_condition *condition, *condition_safe;
@@ -217,7 +217,7 @@
 {
 	struct test_try_catch_context *ctx = data;
 	struct KUNIT_T *test = ctx->test;
-	struct test_module *module = ctx->module;
+	struct KUNIT_SUITE_T *module = ctx->module;
 	struct KUNIT_CASE_T *test_case = ctx->test_case;
 
 	/*
@@ -234,7 +234,7 @@
 {
 	struct test_try_catch_context *ctx = data;
 	struct KUNIT_T *test = ctx->test;
-	struct test_module *module = ctx->module;
+	struct KUNIT_SUITE_T *module = ctx->module;
 	struct KUNIT_CASE_T *test_case = ctx->test_case;
 	int try_exit_code = test_try_catch_get_result(&test->try_catch);
 
@@ -279,7 +279,7 @@
  * occurs in a test case and reports them as failures.
  */
 static bool test_run_case_catch_errors(struct KUNIT_T *test,
-				       struct test_module *module,
+				       struct KUNIT_SUITE_T *module,
 				       struct KUNIT_CASE_T *test_case)
 {
 	struct test_try_catch *try_catch = &test->try_catch;
@@ -300,7 +300,7 @@
 	return test_get_success(test);
 }
 
-int test_run_tests(struct test_module *module)
+int test_run_tests(struct KUNIT_SUITE_T *module)
 {
 	bool all_passed = true, success;
 	struct KUNIT_CASE_T *test_case;
