tests: Improve test output readability

When running multiple tests, e.g. by using unit-tests target, it is hard
to differentiate, which output comes from which file and/or
configuration. This patch makes the output easier to analyze and
understand by using new wrapper macro cb_run_group_tests(). This macro
uses __TEST_NAME__ value (containing test path and Makefile test name)
as a group name when calling cmocka group runner.

Example:
 Test path: tests/lib/
 Makefile test name: cbmem_stage_cache-test
 Test group array name: tests
 Result: tests/lib/cbmem_stage_cache-test(tests)

Signed-off-by: Jakub Czapiga <jacz@semihalf.com>
Change-Id: I4fd936d00d77cbe2637b857ba03b4a208428ea0d
Reviewed-on: https://review.coreboot.org/c/coreboot/+/57144
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Fagerburg <pfagerburg@chromium.org>
Reviewed-by: Julius Werner <jwerner@chromium.org>
diff --git a/Documentation/tutorial/part3.md b/Documentation/tutorial/part3.md
index 7cdf7d9..dc48718 100644
--- a/Documentation/tutorial/part3.md
+++ b/Documentation/tutorial/part3.md
@@ -381,6 +381,6 @@
                      cmocka_unit_test(i2c_read_field_test),
              };
 
-             return cmocka_run_group_tests(tests, NULL, NULL);
+             return cb_run_group_tests(tests, NULL, NULL);
      }
 ```
diff --git a/tests/Makefile.inc b/tests/Makefile.inc
index 2f73cb3..fa5faab 100644
--- a/tests/Makefile.inc
+++ b/tests/Makefile.inc
@@ -136,7 +136,8 @@
 	printf '#endif\n' >> $$@;
 
 $($(1)-objs): TEST_CFLAGS += -I$$(dir $$($(1)-config-file)) \
-	-D__$$(shell echo $$($(1)-stage) | tr '[:lower:]' '[:upper:]')__
+	-D__$$(shell echo $$($(1)-stage) | tr '[:lower:]' '[:upper:]')__ \
+	-D__TEST_NAME__=\"$(1)\"
 
 # Give us a way to distinguish between coreboot source files and test files in code.
 $($(1)-srcobjs): TEST_CFLAGS += -D__TEST_SRCOBJ__
diff --git a/tests/acpi/acpigen-test.c b/tests/acpi/acpigen-test.c
index 369ff29..6bd1d02 100644
--- a/tests/acpi/acpigen-test.c
+++ b/tests/acpi/acpigen-test.c
@@ -213,5 +213,5 @@
 						setup_acpigen, teardown_acpigen),
 	};
 
-	return cmocka_run_group_tests(tests, NULL, NULL);
+	return cb_run_group_tests(tests, NULL, NULL);
 }
diff --git a/tests/commonlib/bsd/helpers-test.c b/tests/commonlib/bsd/helpers-test.c
index 324c901..6fae331 100644
--- a/tests/commonlib/bsd/helpers-test.c
+++ b/tests/commonlib/bsd/helpers-test.c
@@ -51,5 +51,5 @@
 		cmocka_unit_test(test_retry),
 	};
 
-	return cmocka_run_group_tests(tests, NULL, NULL);
+	return cb_run_group_tests(tests, NULL, NULL);
 }
diff --git a/tests/commonlib/region-test.c b/tests/commonlib/region-test.c
index fab5961..59f272a 100644
--- a/tests/commonlib/region-test.c
+++ b/tests/commonlib/region-test.c
@@ -404,5 +404,5 @@
 		cmocka_unit_test(test_mem_rdev),
 	};
 
-	return cmocka_run_group_tests(tests, NULL, NULL);
+	return cb_run_group_tests(tests, NULL, NULL);
 }
diff --git a/tests/console/routing-test.c b/tests/console/routing-test.c
index ea90342..153ca77 100644
--- a/tests/console/routing-test.c
+++ b/tests/console/routing-test.c
@@ -66,5 +66,5 @@
 						teardown_console_log_level),
 	};
 
-	return cmocka_run_group_tests(tests, NULL, NULL);
+	return cb_run_group_tests(tests, NULL, NULL);
 }
diff --git a/tests/device/ddr4-test.c b/tests/device/ddr4-test.c
index 0a9831d..3ee1e79 100644
--- a/tests/device/ddr4-test.c
+++ b/tests/device/ddr4-test.c
@@ -37,5 +37,5 @@
 		cmocka_unit_test(ddr4_speed_mhz_to_mts_test)
 	};
 
-	return cmocka_run_group_tests(tests, NULL, NULL);
+	return cb_run_group_tests(tests, NULL, NULL);
 }
diff --git a/tests/device/i2c-test.c b/tests/device/i2c-test.c
index 2c94230..010b868 100644
--- a/tests/device/i2c-test.c
+++ b/tests/device/i2c-test.c
@@ -164,5 +164,5 @@
 		cmocka_unit_test(i2c_write_field_test)
 	};
 
-	return cmocka_run_group_tests(tests, NULL, NULL);
+	return cb_run_group_tests(tests, NULL, NULL);
 }
diff --git a/tests/include/tests/test.h b/tests/include/tests/test.h
index 14dc7c7..523f8fa 100644
--- a/tests/include/tests/test.h
+++ b/tests/include/tests/test.h
@@ -36,4 +36,11 @@
 	TEST_SYMBOL(_e##region, _##region + size); \
 	TEST_SYMBOL(_##region##_size, size)
 
+/* Wrapper for running cmocka test groups using name provided by build system in __TEST_NAME__
+   This should be used instead of cmocka_run_group_tests(). If there is a need to use custom
+   group name, then please use cmocka_run_group_tests_name(). */
+#define cb_run_group_tests(group_tests, group_setup, group_teardown)                           \
+	cmocka_run_group_tests_name((__TEST_NAME__ "(" #group_tests ")"), group_tests,         \
+				    group_setup, group_teardown)
+
 #endif /* _TESTS_TEST_H */
diff --git a/tests/lib/b64_decode-test.c b/tests/lib/b64_decode-test.c
index e6bbca5..631dc15 100644
--- a/tests/lib/b64_decode-test.c
+++ b/tests/lib/b64_decode-test.c
@@ -57,5 +57,5 @@
 		cmocka_unit_test(test_b64_decode),
 	};
 
-	return cmocka_run_group_tests(tests, NULL, NULL);
+	return cb_run_group_tests(tests, NULL, NULL);
 }
diff --git a/tests/lib/bootmem-test.c b/tests/lib/bootmem-test.c
index b571ccb..6059833 100644
--- a/tests/lib/bootmem-test.c
+++ b/tests/lib/bootmem-test.c
@@ -411,5 +411,5 @@
 		cmocka_unit_test(test_bootmem_region_targets_type)
 	};
 
-	return cmocka_run_group_tests(tests, NULL, NULL);
+	return cb_run_group_tests(tests, NULL, NULL);
 }
diff --git a/tests/lib/cbmem_console-test.c b/tests/lib/cbmem_console-test.c
index 604ca7a..fca84a7 100644
--- a/tests/lib/cbmem_console-test.c
+++ b/tests/lib/cbmem_console-test.c
@@ -118,12 +118,6 @@
 
 int main(void)
 {
-#if ENV_ROMSTAGE_OR_BEFORE
-	const char *test_name = "cbmem_console-test-romstage";
-#else
-	const char *test_name = "cbmem_console-test-ramstage";
-#endif
-
 	const struct CMUnitTest tests[] = {
 		cmocka_unit_test_teardown(test_cbmemc_init, teardown_cbmemc),
 		cmocka_unit_test_setup_teardown(test_cbmemc_tx_byte,
@@ -132,5 +126,5 @@
 						setup_cbmemc, teardown_cbmemc),
 	};
 
-	return cmocka_run_group_tests_name(test_name, tests, NULL, NULL);
+	return cb_run_group_tests(tests, NULL, NULL);
 }
diff --git a/tests/lib/cbmem_stage_cache-test.c b/tests/lib/cbmem_stage_cache-test.c
index 24ba095..8a07e6f 100644
--- a/tests/lib/cbmem_stage_cache-test.c
+++ b/tests/lib/cbmem_stage_cache-test.c
@@ -190,5 +190,5 @@
 						setup_test, teardown_test),
 	};
 
-	return cmocka_run_group_tests(tests, NULL, NULL);
+	return cb_run_group_tests(tests, NULL, NULL);
 }
diff --git a/tests/lib/compute_ip_checksum-test.c b/tests/lib/compute_ip_checksum-test.c
index fb67439..18e7ff0 100644
--- a/tests/lib/compute_ip_checksum-test.c
+++ b/tests/lib/compute_ip_checksum-test.c
@@ -98,5 +98,5 @@
 		cmocka_unit_test(test_add_ip_checksums),
 	};
 
-	return cmocka_run_group_tests(tests, setup_test_group, NULL);
+	return cb_run_group_tests(tests, setup_test_group, NULL);
 }
diff --git a/tests/lib/coreboot_table-test.c b/tests/lib/coreboot_table-test.c
index ba3e63d..7668941 100644
--- a/tests/lib/coreboot_table-test.c
+++ b/tests/lib/coreboot_table-test.c
@@ -493,5 +493,5 @@
 						teardown_write_tables_test),
 	};
 
-	return cmocka_run_group_tests(tests, NULL, NULL);
+	return cb_run_group_tests(tests, NULL, NULL);
 }
diff --git a/tests/lib/crc_byte-test.c b/tests/lib/crc_byte-test.c
index 12934bc..8624942 100644
--- a/tests/lib/crc_byte-test.c
+++ b/tests/lib/crc_byte-test.c
@@ -296,5 +296,5 @@
 		cmocka_unit_test(test_crc32_byte_static_data),
 	};
 
-	return cmocka_run_group_tests(tests, NULL, NULL);
+	return cb_run_group_tests(tests, NULL, NULL);
 }
diff --git a/tests/lib/dimm_info_util-test.c b/tests/lib/dimm_info_util-test.c
index a698fc5..4b3f979 100644
--- a/tests/lib/dimm_info_util-test.c
+++ b/tests/lib/dimm_info_util-test.c
@@ -108,5 +108,5 @@
 		cmocka_unit_test(test_smbios_form_factor_to_spd_mod_type),
 	};
 
-	return cmocka_run_group_tests(tests, NULL, NULL);
+	return cb_run_group_tests(tests, NULL, NULL);
 }
diff --git a/tests/lib/edid-test.c b/tests/lib/edid-test.c
index 0da7c61..73ce4ec 100644
--- a/tests/lib/edid-test.c
+++ b/tests/lib/edid-test.c
@@ -1267,6 +1267,6 @@
 						teardown_edid_test),
 	};
 
-	return cmocka_run_group_tests(tests, NULL, NULL);
+	return cb_run_group_tests(tests, NULL, NULL);
 }
 
diff --git a/tests/lib/fmap-test.c b/tests/lib/fmap-test.c
index 444af5a..044c312 100644
--- a/tests/lib/fmap-test.c
+++ b/tests/lib/fmap-test.c
@@ -302,5 +302,5 @@
 						setup_fmap, teardown_fmap),
 	};
 
-	return cmocka_run_group_tests(tests, NULL, NULL);
+	return cb_run_group_tests(tests, NULL, NULL);
 }
diff --git a/tests/lib/hexstrtobin-test.c b/tests/lib/hexstrtobin-test.c
index 46ad3df..f096b9b 100644
--- a/tests/lib/hexstrtobin-test.c
+++ b/tests/lib/hexstrtobin-test.c
@@ -44,5 +44,5 @@
 		cmocka_unit_test(test_hexstrtobin),
 	};
 
-	return cmocka_run_group_tests(tests, NULL, NULL);
+	return cb_run_group_tests(tests, NULL, NULL);
 }
diff --git a/tests/lib/imd-test.c b/tests/lib/imd-test.c
index c2bcf0c..6da1ac9 100644
--- a/tests/lib/imd-test.c
+++ b/tests/lib/imd-test.c
@@ -759,6 +759,6 @@
 		cmocka_unit_test(test_imd_cursor_next),
 	};
 
-	return cmocka_run_group_tests(tests, NULL, NULL);
+	return cb_run_group_tests(tests, NULL, NULL);
 }
 
diff --git a/tests/lib/imd_cbmem-test.c b/tests/lib/imd_cbmem-test.c
index f857579..1a1756c 100644
--- a/tests/lib/imd_cbmem-test.c
+++ b/tests/lib/imd_cbmem-test.c
@@ -626,5 +626,5 @@
 				setup_teardown_test_imd_cbmem),
 	};
 
-	return cmocka_run_group_tests(tests, setup_group_imd_cbmem, teardown_group_imd_cbmem);
+	return cb_run_group_tests(tests, setup_group_imd_cbmem, teardown_group_imd_cbmem);
 }
diff --git a/tests/lib/libgcc-test.c b/tests/lib/libgcc-test.c
index 3bdd145..d089f64 100644
--- a/tests/lib/libgcc-test.c
+++ b/tests/lib/libgcc-test.c
@@ -128,5 +128,5 @@
 		cmocka_unit_test(test_clzsi2_with_data),
 	};
 
-	return cmocka_run_group_tests(tests, NULL, NULL);
+	return cb_run_group_tests(tests, NULL, NULL);
 }
diff --git a/tests/lib/list-test.c b/tests/lib/list-test.c
index 6688c4fa..309346a 100644
--- a/tests/lib/list-test.c
+++ b/tests/lib/list-test.c
@@ -125,5 +125,5 @@
 	};
 
 
-	return cmocka_run_group_tests(tests, NULL, NULL);
+	return cb_run_group_tests(tests, NULL, NULL);
 }
diff --git a/tests/lib/malloc-test.c b/tests/lib/malloc-test.c
index b70de06..452d74f 100644
--- a/tests/lib/malloc-test.c
+++ b/tests/lib/malloc-test.c
@@ -164,5 +164,5 @@
 		cmocka_unit_test_setup(test_calloc_memory_is_zeroed, setup_calloc_test),
 	};
 
-	return cmocka_run_group_tests(tests, NULL, NULL);
+	return cb_run_group_tests(tests, NULL, NULL);
 }
diff --git a/tests/lib/memchr-test.c b/tests/lib/memchr-test.c
index 9762b9a..eadabc7 100644
--- a/tests/lib/memchr-test.c
+++ b/tests/lib/memchr-test.c
@@ -101,5 +101,5 @@
 		cmocka_unit_test(test_memchr_zero_size),
 	};
 
-	return cmocka_run_group_tests(tests, NULL, NULL);
+	return cb_run_group_tests(tests, NULL, NULL);
 }
diff --git a/tests/lib/memcmp-test.c b/tests/lib/memcmp-test.c
index f45b7f4..59ca86c 100644
--- a/tests/lib/memcmp-test.c
+++ b/tests/lib/memcmp-test.c
@@ -69,5 +69,5 @@
 		cmocka_unit_test(test_memcmp_zero_size),
 	};
 
-	return cmocka_run_group_tests(tests, NULL, NULL);
+	return cb_run_group_tests(tests, NULL, NULL);
 }
diff --git a/tests/lib/memcpy-test.c b/tests/lib/memcpy-test.c
index 842a5f0..f4f6e18 100644
--- a/tests/lib/memcpy-test.c
+++ b/tests/lib/memcpy-test.c
@@ -192,5 +192,5 @@
 						setup_test, teardown_test),
 	};
 
-	return cmocka_run_group_tests(tests, NULL, NULL);
+	return cb_run_group_tests(tests, NULL, NULL);
 }
diff --git a/tests/lib/memmove-test.c b/tests/lib/memmove-test.c
index a1d33cf..87cace9 100644
--- a/tests/lib/memmove-test.c
+++ b/tests/lib/memmove-test.c
@@ -245,6 +245,6 @@
 						setup_test, teardown_test),
 	};
 
-	return cmocka_run_group_tests(tests, NULL, NULL);
+	return cb_run_group_tests(tests, NULL, NULL);
 }
 
diff --git a/tests/lib/memrange-test.c b/tests/lib/memrange-test.c
index f9e6056..1bdd62e 100644
--- a/tests/lib/memrange-test.c
+++ b/tests/lib/memrange-test.c
@@ -629,10 +629,10 @@
 		cmocka_unit_test(test_memrange_add_resources_filter),
 	};
 
-	return cmocka_run_group_tests_name("Boundary on 4GiB",
+	return cmocka_run_group_tests_name(__TEST_NAME__"(Boundary on 4GiB)",
 						tests, setup_test_1, NULL) +
-		cmocka_run_group_tests_name("Boundaries 1 byte from 4GiB",
+		cmocka_run_group_tests_name(__TEST_NAME__"(Boundaries 1 byte from 4GiB)",
 						tests, setup_test_2, NULL) +
-		cmocka_run_group_tests_name("Range over 4GiB boundary",
+		cmocka_run_group_tests_name(__TEST_NAME__"(Range over 4GiB boundary)",
 						tests, setup_test_3, NULL);
 }
diff --git a/tests/lib/memset-test.c b/tests/lib/memset-test.c
index 7d888a6..bdc3cb3 100644
--- a/tests/lib/memset-test.c
+++ b/tests/lib/memset-test.c
@@ -116,5 +116,5 @@
 				setup_test, teardown_test),
 	};
 
-	return cmocka_run_group_tests(tests, NULL, NULL);
+	return cb_run_group_tests(tests, NULL, NULL);
 }
diff --git a/tests/lib/region_file-test.c b/tests/lib/region_file-test.c
index aeeaa4e..98c4eb6 100644
--- a/tests/lib/region_file-test.c
+++ b/tests/lib/region_file-test.c
@@ -325,7 +325,6 @@
 				setup_teardown_region_file_test),
 	};
 
-	return cmocka_run_group_tests(tests,
-					setup_region_file_test_group,
-					teardown_region_file_test_group);
+	return cb_run_group_tests(tests, setup_region_file_test_group,
+				  teardown_region_file_test_group);
 }
diff --git a/tests/lib/rtc-test.c b/tests/lib/rtc-test.c
index d58011d..e941571 100644
--- a/tests/lib/rtc-test.c
+++ b/tests/lib/rtc-test.c
@@ -308,5 +308,5 @@
 		cmocka_unit_test(test_leap_day_secday),
 	};
 
-	return cmocka_run_group_tests(tests, NULL, NULL);
+	return cb_run_group_tests(tests, NULL, NULL);
 }
diff --git a/tests/lib/spd_cache-test.c b/tests/lib/spd_cache-test.c
index 4bc0a3d..4f75690 100644
--- a/tests/lib/spd_cache-test.c
+++ b/tests/lib/spd_cache-test.c
@@ -253,5 +253,5 @@
 #endif
 	};
 
-	return cmocka_run_group_tests(tests, setup_spd_cache, teardown_spd_cache);
+	return cb_run_group_tests(tests, setup_spd_cache, teardown_spd_cache);
 }
diff --git a/tests/lib/stack-test.c b/tests/lib/stack-test.c
index bed59aa..1f671f3 100644
--- a/tests/lib/stack-test.c
+++ b/tests/lib/stack-test.c
@@ -129,5 +129,5 @@
 		cmocka_unit_test_setup(test_incorrectly_initialized_stack, setup_stack_test),
 	};
 
-	return cmocka_run_group_tests(tests, NULL, NULL);
+	return cb_run_group_tests(tests, NULL, NULL);
 }
diff --git a/tests/lib/string-test.c b/tests/lib/string-test.c
index 7718547..0f21747 100644
--- a/tests/lib/string-test.c
+++ b/tests/lib/string-test.c
@@ -267,5 +267,5 @@
 		cmocka_unit_test(test_atol),
 	};
 
-	return cmocka_run_group_tests(tests, NULL, NULL);
+	return cb_run_group_tests(tests, NULL, NULL);
 }
diff --git a/tests/lib/timestamp-test.c b/tests/lib/timestamp-test.c
index 8dc103d..ad33ed0 100644
--- a/tests/lib/timestamp-test.c
+++ b/tests/lib/timestamp-test.c
@@ -131,7 +131,7 @@
 	};
 
 #if CONFIG(COLLECT_TIMESTAMPS)
-	return cmocka_run_group_tests(tests, NULL, NULL);
+	return cb_run_group_tests(tests, NULL, NULL);
 #else
 	return 0;
 #endif
diff --git a/tests/lib/uuid-test.c b/tests/lib/uuid-test.c
index c6e40f5..6b56842 100644
--- a/tests/lib/uuid-test.c
+++ b/tests/lib/uuid-test.c
@@ -91,5 +91,5 @@
 		cmocka_unit_test(test_guid),
 	};
 
-	return cmocka_run_group_tests(tests, NULL, NULL);
+	return cb_run_group_tests(tests, NULL, NULL);
 }