[igt-dev] [PATCH i-g-t 1/1] Rename dynamic subtest blocks

Petri Latvala petri.latvala at intel.com
Mon Nov 18 11:09:36 UTC 2019


The final naming for the magic block identifiers is:

igt_subtest_with_dynamic("do-stuff-on-things") {
    for_each_thing(x) {
        igt_dynamic_f("%s", x->name) {
	    do_stuff(x);
	}
    }
}

Signed-off-by: Petri Latvala <petri.latvala at intel.com>
Cc: Chris Wilson <chris at chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
Cc: Arkadiusz Hiler <arkadiusz.hiler at intel.com>
Cc: Katarzyna Dec <katarzyna.dec at intel.com>
---

NOTE!

The commit message is worded as being the final decision, but it's of
course just a suggestion for the final naming and won't be used
without acks, especially the people who have pointed out the awfulness
of the naming. With luck I might have succeeded in CCing all of them
and people otherwise involved in reviewing dynamic subtests.

These names meet the requirements laid out in words on the mailing
list:

* makes it clear that the subtest that can have dynamic runtime parts
  is a subtest more than an igt_subtest_group
* don't completely destroy ickle's keyboard


lib/igt_core.c                   |  4 +--
 lib/igt_core.h                   | 46 ++++++++++++++++----------------
 lib/tests/igt_describe.c         |  4 +--
 lib/tests/igt_dynamic_subtests.c | 18 ++++++-------
 4 files changed, 36 insertions(+), 36 deletions(-)

diff --git a/lib/igt_core.c b/lib/igt_core.c
index a0c673d1..99aa0bee 100644
--- a/lib/igt_core.c
+++ b/lib/igt_core.c
@@ -127,7 +127,7 @@
  *
  * - Code blocks with magic control flow are implemented with setjmp()
  *   and longjmp(). This applies to #igt_fixture, #igt_subtest,
- *   #igt_subtest_with_dynamic_subsubtests and #igt_dynamic_subsubtest
+ *   #igt_subtest_with_dynamic and #igt_dynamic
  *   blocks and all the three variants to finish test: igt_success(),
  *   igt_skip() and igt_fail(). Mostly this is of no concern, except
  *   when such a control block changes stack variables defined in the
@@ -1281,7 +1281,7 @@ static void exit_subtest(const char *result)
 	const char *subtest_text = in_dynamic_subtest ? "Dynamic subtest" : "Subtest";
 	const char **subtest_name = in_dynamic_subtest ? &in_dynamic_subtest : &in_subtest;
 	struct timespec *thentime = in_dynamic_subtest ? &dynamic_subtest_time : &subtest_time;
-	jmp_buf *jmptarget = in_dynamic_subtest ? &igt_dynamic_subsubtest_jmpbuf : &igt_subtest_jmpbuf;
+	jmp_buf *jmptarget = in_dynamic_subtest ? &igt_dynamic_jmpbuf : &igt_subtest_jmpbuf;
 
 	igt_gettime(&now);
 
diff --git a/lib/igt_core.h b/lib/igt_core.h
index 86bc1b41..c17a7ba8 100644
--- a/lib/igt_core.h
+++ b/lib/igt_core.h
@@ -146,7 +146,7 @@ void __igt_fixture_end(void) __attribute__((noreturn));
 
 /* subtest infrastructure */
 jmp_buf igt_subtest_jmpbuf;
-jmp_buf igt_dynamic_subsubtest_jmpbuf;
+jmp_buf igt_dynamic_jmpbuf;
 typedef int (*igt_opt_handler_t)(int opt, int opt_index, void *data);
 #define IGT_OPT_HANDLER_SUCCESS 0
 #define IGT_OPT_HANDLER_ERROR -2
@@ -230,7 +230,7 @@ bool __igt_run_dynamic_subtest(const char *dynamic_subtest_name);
 	__igt_subtest_f(igt_tokencat(__tmpchar, __LINE__), f)
 
 /**
- * igt_subtest_with_dynamic_subsubtests:
+ * igt_subtest_with_dynamic:
  * @name: name of the subtest
  *
  * This is a magic control flow block which denotes a subtest code
@@ -238,13 +238,13 @@ bool __igt_run_dynamic_subtest(const char *dynamic_subtest_name);
  * printf format string, which is useful for constructing
  * combinatorial tests.
  *
- * See igt_subtest_with_dynamic_subsubtests_f() for documentation.
+ * See igt_subtest_with_dynamic_f() for documentation.
  */
-#define igt_subtest_with_dynamic_subsubtests(name) for (; __igt_run_subtest((name), __FILE__, __LINE__) && \
+#define igt_subtest_with_dynamic(name) for (; __igt_run_subtest((name), __FILE__, __LINE__) && \
 							 __igt_enter_dynamic_container() && \
 							 (sigsetjmp(igt_subtest_jmpbuf, 1) == 0); \
 						 igt_success())
-#define __igt_subtest_with_dynamic_subsubtests_f(tmp, format...) \
+#define __igt_subtest_with_dynamic_f(tmp, format...) \
 	for (char tmp [256]; \
 	     snprintf( tmp , sizeof( tmp ), \
 		      format), \
@@ -254,7 +254,7 @@ bool __igt_run_dynamic_subtest(const char *dynamic_subtest_name);
 	     igt_success())
 
 /**
- * igt_subtest_with_dynamic_subsubtests_f:
+ * igt_subtest_with_dynamic_f:
  * @...: format string and optional arguments
  *
  * This is a magic control flow block which denotes a subtest code
@@ -275,12 +275,12 @@ bool __igt_run_dynamic_subtest(const char *dynamic_subtest_name);
  * subsubtest for each pipe and performs the operation for that pipe
  * in there.
  *
- * The result of a subtest igt_subtest_with_dynamic_subsubtests will be
+ * The result of a subtest igt_subtest_with_dynamic will be
  * * SKIP, if no dynamic subsubtests are entered
  * * PASS, if _all_ dynamic subsubtests PASS
  * * FAIL, if _any_ dynamic subsubtests FAIL
  *
- * Within a igt_subtest_with_dynamic_subsubtests block, explicit
+ * Within a igt_subtest_with_dynamic block, explicit
  * failure (e.g. igt_assert) is not allowed, only dynamic subsubtests
  * themselves will produce test results. igt_skip()/igt_require() is
  * allowed. Example:
@@ -288,7 +288,7 @@ bool __igt_run_dynamic_subtest(const char *dynamic_subtest_name);
  * |[<!-- language="C" -->
  * igt_main
  * {
- *     igt_subtest_with_dynamic_subsubtests("engine-tests") {
+ *     igt_subtest_with_dynamic("engine-tests") {
  *               igt_require(is_awesome(fd)); // requires ok here
  *
  *               for_each_engine(fd, e) {
@@ -300,14 +300,14 @@ bool __igt_run_dynamic_subtest(const char *dynamic_subtest_name);
  * }
  * ]|
  *
- * Like igt_subtest_with_dynamic_subsubtests(), but also accepts a printf
+ * Like igt_subtest_with_dynamic(), but also accepts a printf
  * format string instead of a static string.
  */
-#define igt_subtest_with_dynamic_subsubtests_f(f...) \
-	__igt_subtest_with_dynamic_subsubtests_f(igt_tokencat(__tmpchar, __LINE__), f)
+#define igt_subtest_with_dynamic_f(f...) \
+	__igt_subtest_with_dynamic_f(igt_tokencat(__tmpchar, __LINE__), f)
 
 /**
- * igt_dynamic_subsubtest:
+ * igt_dynamic:
  * @name: name of the dynamic subtest
  *
  * This is a magic control flow block which denotes a dynamic
@@ -316,22 +316,22 @@ bool __igt_run_dynamic_subtest(const char *dynamic_subtest_name);
  * variant accepts a printf format string, which is useful for
  * constructing combinatorial tests.
  *
- * See igt_subtest_with_dynamic_subsubtests_f() for documentation on
+ * See igt_subtest_with_dynamic_f() for documentation on
  * dynamic subsubtests.
  */
-#define igt_dynamic_subsubtest(name) for (; __igt_run_dynamic_subtest((name)) && \
-					  (sigsetjmp(igt_dynamic_subsubtest_jmpbuf, 1) == 0); \
+#define igt_dynamic(name) for (; __igt_run_dynamic_subtest((name)) && \
+					  (sigsetjmp(igt_dynamic_jmpbuf, 1) == 0); \
 				  igt_success())
-#define __igt_dynamic_subsubtest_f(tmp, format...) \
+#define __igt_dynamic_f(tmp, format...) \
 	for (char tmp [256]; \
 	     snprintf( tmp , sizeof( tmp ), \
 		      format), \
 	     __igt_run_dynamic_subtest( tmp ) && \
-	     (sigsetjmp(igt_dynamic_subsubtest_jmpbuf, 1) == 0); \
+	     (sigsetjmp(igt_dynamic_jmpbuf, 1) == 0); \
 	     igt_success())
 
 /**
- * igt_dynamic_subsubtest_f:
+ * igt_dynamic_f:
  * @...: format string and optional arguments
  *
  * This is a magic control flow block which denotes a dynamic
@@ -340,14 +340,14 @@ bool __igt_run_dynamic_subtest(const char *dynamic_subtest_name);
  * variant accepts a printf format string, which is useful for
  * constructing combinatorial tests.
  *
- * See igt_subtest_with_dynamic_subsubtests_f() for documentation on
+ * See igt_subtest_with_dynamic_f() for documentation on
  * dynamic subsubtests.
  *
- * Like igt_dynamic_subsubtest(), but also accepts a printf format string
+ * Like igt_dynamic(), but also accepts a printf format string
  * instead of a static string.
  */
-#define igt_dynamic_subsubtest_f(f...) \
-	__igt_dynamic_subsubtest_f(igt_tokencat(__tmpchar, __LINE__), f)
+#define igt_dynamic_f(f...) \
+	__igt_dynamic_f(igt_tokencat(__tmpchar, __LINE__), f)
 
 const char *igt_subtest_name(void);
 bool igt_only_list_subtests(void);
diff --git a/lib/tests/igt_describe.c b/lib/tests/igt_describe.c
index 7ea3b961..6f3a4319 100644
--- a/lib/tests/igt_describe.c
+++ b/lib/tests/igt_describe.c
@@ -88,10 +88,10 @@ static void fake_main(int argc, char **argv) {
 		;
 
 	igt_describe("Subtest with dynamic subsubtests");
-	igt_subtest_with_dynamic_subsubtests("G") {
+	igt_subtest_with_dynamic("G") {
 		printf("should not be executed!\n");
 		igt_describe("should assert on execution");
-		igt_dynamic_subsubtest("should-not-list")
+		igt_dynamic("should-not-list")
 			printf("should not be executed!\n");
 	}
 
diff --git a/lib/tests/igt_dynamic_subtests.c b/lib/tests/igt_dynamic_subtests.c
index 82d80a77..606104c5 100644
--- a/lib/tests/igt_dynamic_subtests.c
+++ b/lib/tests/igt_dynamic_subtests.c
@@ -56,7 +56,7 @@ static void dynamic_subtest_in_normal_subtest(void)
 	igt_subtest_init(fake_argc, fake_argv);
 
 	igt_subtest("normal-subtest") {
-		igt_dynamic_subsubtest("dynamic") {
+		igt_dynamic("dynamic") {
 			igt_info("Dynamic subtest in normal subtest\n");
 		}
 	}
@@ -72,8 +72,8 @@ static void invalid_dynamic_subtest_name(void)
 
 	igt_subtest_init(fake_argc, fake_argv);
 
-	igt_subtest_with_dynamic_subsubtests("subtest") {
-		igt_dynamic_subsubtest("# invalid name !") {
+	igt_subtest_with_dynamic("subtest") {
+		igt_dynamic("# invalid name !") {
 			igt_info("Invalid dynamic subtest name test\n");
 		}
 	}
@@ -89,7 +89,7 @@ static void dynamic_subtest_in_toplevel(void)
 
 	igt_subtest_init(fake_argc, fake_argv);
 
-	igt_dynamic_subsubtest("dynamic-subtest-in-toplevel") {
+	igt_dynamic("dynamic-subtest-in-toplevel") {
 		igt_info("Dynamic subtests need to be in a subtest\n");
 	}
 
@@ -104,7 +104,7 @@ static void subtest_itself_failing(void)
 
 	igt_subtest_init(fake_argc, fake_argv);
 
-	igt_subtest_with_dynamic_subsubtests("subtest") {
+	igt_subtest_with_dynamic("subtest") {
 		igt_assert(false);
 	}
 
@@ -119,7 +119,7 @@ static void subtest_itself_skipping(void)
 
 	igt_subtest_init(fake_argc, fake_argv);
 
-	igt_subtest_with_dynamic_subsubtests("subtest") {
+	igt_subtest_with_dynamic("subtest") {
 		igt_skip("Skipping\n");
 	}
 
@@ -134,8 +134,8 @@ static void dynamic_subtest_failure_leads_to_fail(void)
 
 	igt_subtest_init(fake_argc, fake_argv);
 
-	igt_subtest_with_dynamic_subsubtests("subtest") {
-		igt_dynamic_subsubtest("dynamic") {
+	igt_subtest_with_dynamic("subtest") {
+		igt_dynamic("dynamic") {
 			igt_assert(false);
 		}
 	}
@@ -151,7 +151,7 @@ static void no_dynamic_subtests_entered_leads_to_skip(void)
 
 	igt_subtest_init(fake_argc, fake_argv);
 
-	igt_subtest_with_dynamic_subsubtests("subtest") {
+	igt_subtest_with_dynamic("subtest") {
 	}
 
 	igt_exit();
-- 
2.19.1



More information about the igt-dev mailing list