All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH i-g-t 1/4] tests: improve pipe enumeration
@ 2015-02-18 17:06 Thomas Wood
  2015-02-18 17:06 ` [PATCH i-g-t 2/4] lib: use defines for igt_simple_init and igt_subtest_init Thomas Wood
                   ` (3 more replies)
  0 siblings, 4 replies; 7+ messages in thread
From: Thomas Wood @ 2015-02-18 17:06 UTC (permalink / raw)
  To: intel-gfx

Signed-off-by: Thomas Wood <thomas.wood@intel.com>
---
 tests/kms_flip_event_leak.c | 2 +-
 tests/kms_plane.c           | 2 +-
 tests/kms_universal_plane.c | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/tests/kms_flip_event_leak.c b/tests/kms_flip_event_leak.c
index 8a5e6db..ea4ce4c 100644
--- a/tests/kms_flip_event_leak.c
+++ b/tests/kms_flip_event_leak.c
@@ -119,7 +119,7 @@ igt_simple_main
 
 	igt_display_init(&data.display, data.drm_fd);
 
-	for (pipe = 0; pipe < 3; pipe++) {
+	for_each_pipe(&data.display, pipe) {
 		for_each_connected_output(&data.display, output) {
 			if (test(&data, pipe, output))
 				valid_tests++;
diff --git a/tests/kms_plane.c b/tests/kms_plane.c
index c94eac0..8a08f20 100644
--- a/tests/kms_plane.c
+++ b/tests/kms_plane.c
@@ -399,7 +399,7 @@ igt_main
 		igt_display_init(&data.display, data.drm_fd);
 	}
 
-	for (int pipe = 0; pipe < 3; pipe++)
+	for (int pipe = 0; pipe < I915_MAX_PIPES; pipe++)
 		run_tests_for_pipe(&data, pipe);
 
 	igt_fixture {
diff --git a/tests/kms_universal_plane.c b/tests/kms_universal_plane.c
index 04ff840..6a05584 100644
--- a/tests/kms_universal_plane.c
+++ b/tests/kms_universal_plane.c
@@ -569,7 +569,7 @@ igt_main
 		igt_require(data.display.has_universal_planes);
 	}
 
-	for (int pipe = 0; pipe < 3; pipe++)
+	for (int pipe = 0; pipe < I915_MAX_PIPES; pipe++)
 		run_tests_for_pipe(&data, pipe);
 
 	igt_fixture {
-- 
2.1.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH i-g-t 2/4] lib: use defines for igt_simple_init and igt_subtest_init
  2015-02-18 17:06 [PATCH i-g-t 1/4] tests: improve pipe enumeration Thomas Wood
@ 2015-02-18 17:06 ` Thomas Wood
  2015-02-23 23:49   ` Daniel Vetter
  2015-02-18 17:06 ` [PATCH i-g-t 3/4] lib: remove handled option arguments from argv Thomas Wood
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 7+ messages in thread
From: Thomas Wood @ 2015-02-18 17:06 UTC (permalink / raw)
  To: intel-gfx

Signed-off-by: Thomas Wood <thomas.wood@intel.com>
---
 lib/igt_core.c | 34 ----------------------------------
 lib/igt_core.h | 36 ++++++++++++++++++++++++++++++++----
 2 files changed, 32 insertions(+), 38 deletions(-)

diff --git a/lib/igt_core.c b/lib/igt_core.c
index eef338b..afecdf1 100644
--- a/lib/igt_core.c
+++ b/lib/igt_core.c
@@ -696,40 +696,6 @@ int igt_subtest_init_parse_opts(int argc, char **argv,
 enum igt_log_level igt_log_level = IGT_LOG_INFO;
 
 /**
- * igt_subtest_init:
- * @argc: argc from the test's main()
- * @argv: argv from the test's main()
- *
- * This initializes the for tests with subtests without the need for additional
- * cmdline options. It is just a simplified version of
- * igt_subtest_init_parse_opts().
- *
- * If there's not a reason to the contrary it's less error prone to just use an
- * #igt_main block instead of stitching the tests's main() function together
- * manually.
- */
-void igt_subtest_init(int argc, char **argv)
-{
-	igt_subtest_init_parse_opts(argc, argv, NULL, NULL, NULL, NULL);
-}
-
-/**
- * igt_simple_init:
- * @argc: argc from the test's main()
- * @argv: argv from the test's main()
- *
- * This initializes a simple test without any support for subtests.
- *
- * If there's not a reason to the contrary it's less error prone to just use an
- * #igt_simple_main block instead of stitching the tests's main() function together
- * manually.
- */
-void igt_simple_init(int argc, char **argv)
-{
-	common_init(argc, argv, NULL, NULL, NULL, NULL);
-}
-
-/**
  * igt_simple_init_parse_opts:
  * @argc: argc from the test's main()
  * @argv: argv from the test's main()
diff --git a/lib/igt_core.h b/lib/igt_core.h
index 0086945..88b47bf 100644
--- a/lib/igt_core.h
+++ b/lib/igt_core.h
@@ -106,7 +106,6 @@ void __igt_fixture_end(void) __attribute__((noreturn));
 
 /* subtest infrastructure */
 jmp_buf igt_subtest_jmpbuf;
-void igt_subtest_init(int argc, char **argv);
 typedef int (*igt_opt_handler_t)(int opt, int opt_index);
 #ifndef __GTK_DOC_IGNORE__ /* gtkdoc wants to document this forward decl */
 struct option;
@@ -117,6 +116,22 @@ int igt_subtest_init_parse_opts(int argc, char **argv,
 				const char *help_str,
 				igt_opt_handler_t extra_opt_handler);
 
+
+/**
+ * igt_subtest_init:
+ * @argc: argc from the test's main()
+ * @argv: argv from the test's main()
+ *
+ * This initializes the for tests with subtests without the need for additional
+ * cmdline options. It is just a simplified version of
+ * igt_subtest_init_parse_opts().
+ *
+ * If there's not a reason to the contrary it's less error prone to just use an
+ * #igt_main block instead of stitching the test's main() function together
+ * manually.
+ */
+#define igt_subtest_init(argc, argv) igt_subtest_init_parse_opts(argc, argv, NULL, NULL, NULL, NULL);
+
 bool __igt_run_subtest(const char *subtest_name);
 #define __igt_tokencat2(x, y) x ## y
 
@@ -180,13 +195,13 @@ bool igt_only_list_subtests(void);
 #define igt_main \
 	static void igt_tokencat(__real_main, __LINE__)(void); \
 	int main(int argc, char **argv) { \
-		igt_subtest_init(argc, argv); \
+		igt_subtest_init_parse_opts(argc, argv, NULL, NULL, NULL, NULL); \
 		igt_tokencat(__real_main, __LINE__)(); \
 		igt_exit(); \
 	} \
 	static void igt_tokencat(__real_main, __LINE__)(void) \
 
-void igt_simple_init(int argc, char **argv);
+
 void igt_simple_init_parse_opts(int argc, char **argv,
 				const char *extra_short_opts,
 				struct option *extra_long_opts,
@@ -194,6 +209,19 @@ void igt_simple_init_parse_opts(int argc, char **argv,
 				igt_opt_handler_t extra_opt_handler);
 
 /**
+ * igt_simple_init:
+ * @argc: argc from the test's main()
+ * @argv: argv from the test's main()
+ *
+ * This initializes a simple test without any support for subtests.
+ *
+ * If there's not a reason to the contrary it's less error prone to just use an
+ * #igt_simple_main block instead of stitching the test's main() function together
+ * manually.
+ */
+#define igt_simple_init(argc, argv) igt_simple_init_parse_opts(argc, argv, NULL, NULL, NULL, NULL);
+
+/**
  * igt_simple_main:
  *
  * This is a magic control flow block used instead of a main() function for
@@ -203,7 +231,7 @@ void igt_simple_init_parse_opts(int argc, char **argv,
 #define igt_simple_main \
 	static void igt_tokencat(__real_main, __LINE__)(void); \
 	int main(int argc, char **argv) { \
-		igt_simple_init(argc, argv); \
+		igt_simple_init_parse_opts(argc, argv, NULL, NULL, NULL, NULL); \
 		igt_tokencat(__real_main, __LINE__)(); \
 		igt_exit(); \
 	} \
-- 
2.1.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH i-g-t 3/4] lib: remove handled option arguments from argv
  2015-02-18 17:06 [PATCH i-g-t 1/4] tests: improve pipe enumeration Thomas Wood
  2015-02-18 17:06 ` [PATCH i-g-t 2/4] lib: use defines for igt_simple_init and igt_subtest_init Thomas Wood
@ 2015-02-18 17:06 ` Thomas Wood
  2015-02-18 17:06 ` [PATCH i-g-t 4/4] tests: remove extra file Thomas Wood
  2015-02-23 23:47 ` [PATCH i-g-t 1/4] tests: improve pipe enumeration Daniel Vetter
  3 siblings, 0 replies; 7+ messages in thread
From: Thomas Wood @ 2015-02-18 17:06 UTC (permalink / raw)
  To: intel-gfx

Remove options from argv that have been handled by getopt to allow
additional non-option parameters to be processed in the test application.

This fixes issues when using options such as --debug with tests that accept
additional non-option parameters.

Signed-off-by: Thomas Wood <thomas.wood@intel.com>
---
 lib/igt_core.c                    | 13 +++++++++----
 lib/igt_core.h                    | 12 ++++++------
 lib/tests/igt_list_only.c         |  3 ++-
 lib/tests/igt_no_exit.c           |  3 ++-
 lib/tests/igt_no_exit_list_only.c |  3 ++-
 lib/tests/igt_no_subtest.c        |  3 ++-
 lib/tests/igt_simulation.c        | 15 ++++++++++-----
 tests/gem_ctx_basic.c             |  2 +-
 tests/gem_render_copy.c           |  2 +-
 tests/gem_seqno_wrap.c            |  2 +-
 tests/gem_stress.c                |  2 +-
 tests/kms_psr_sink_crc.c          |  2 +-
 tests/kms_setmode.c               |  2 +-
 tests/pm_rpm.c                    |  2 +-
 14 files changed, 40 insertions(+), 26 deletions(-)

diff --git a/lib/igt_core.c b/lib/igt_core.c
index afecdf1..75b98f6 100644
--- a/lib/igt_core.c
+++ b/lib/igt_core.c
@@ -487,7 +487,7 @@ static void oom_adjust_for_doom(void)
 	low_mem_killer_disable(true);
 }
 
-static int common_init(int argc, char **argv,
+static int common_init(int *argc, char **argv,
 		       const char *extra_short_opts,
 		       struct option *extra_long_opts,
 		       const char *help_str,
@@ -582,7 +582,7 @@ static int common_init(int argc, char **argv,
 		       std_short_opts);
 	assert(ret >= 0);
 
-	while ((c = getopt_long(argc, argv, short_opts, combined_opts,
+	while ((c = getopt_long(*argc, argv, short_opts, combined_opts,
 			       &option_index)) != -1) {
 		switch(c) {
 		case OPT_INTERACTIVE_DEBUG:
@@ -655,6 +655,11 @@ out:
 	if (!test_with_subtests)
 		gettime(&subtest_time);
 
+	for (i = 0; (optind + i) < *argc; i++)
+		argv[i + 1] = argv[optind + i];
+
+	*argc = *argc - optind + 1;
+
 	return ret;
 }
 
@@ -678,7 +683,7 @@ out:
  *
  * Returns: Forwards any option parsing errors from getopt_long.
  */
-int igt_subtest_init_parse_opts(int argc, char **argv,
+int igt_subtest_init_parse_opts(int *argc, char **argv,
 				const char *extra_short_opts,
 				struct option *extra_long_opts,
 				const char *help_str,
@@ -707,7 +712,7 @@ enum igt_log_level igt_log_level = IGT_LOG_INFO;
  * This initializes a simple test without any support for subtests and allows
  * an arbitrary set of additional options.
  */
-void igt_simple_init_parse_opts(int argc, char **argv,
+void igt_simple_init_parse_opts(int *argc, char **argv,
 				const char *extra_short_opts,
 				struct option *extra_long_opts,
 				const char *help_str,
diff --git a/lib/igt_core.h b/lib/igt_core.h
index 88b47bf..e1833cf 100644
--- a/lib/igt_core.h
+++ b/lib/igt_core.h
@@ -110,7 +110,7 @@ typedef int (*igt_opt_handler_t)(int opt, int opt_index);
 #ifndef __GTK_DOC_IGNORE__ /* gtkdoc wants to document this forward decl */
 struct option;
 #endif
-int igt_subtest_init_parse_opts(int argc, char **argv,
+int igt_subtest_init_parse_opts(int *argc, char **argv,
 				const char *extra_short_opts,
 				struct option *extra_long_opts,
 				const char *help_str,
@@ -130,7 +130,7 @@ int igt_subtest_init_parse_opts(int argc, char **argv,
  * #igt_main block instead of stitching the test's main() function together
  * manually.
  */
-#define igt_subtest_init(argc, argv) igt_subtest_init_parse_opts(argc, argv, NULL, NULL, NULL, NULL);
+#define igt_subtest_init(argc, argv) igt_subtest_init_parse_opts(&argc, argv, NULL, NULL, NULL, NULL);
 
 bool __igt_run_subtest(const char *subtest_name);
 #define __igt_tokencat2(x, y) x ## y
@@ -195,14 +195,14 @@ bool igt_only_list_subtests(void);
 #define igt_main \
 	static void igt_tokencat(__real_main, __LINE__)(void); \
 	int main(int argc, char **argv) { \
-		igt_subtest_init_parse_opts(argc, argv, NULL, NULL, NULL, NULL); \
+		igt_subtest_init_parse_opts(&argc, argv, NULL, NULL, NULL, NULL); \
 		igt_tokencat(__real_main, __LINE__)(); \
 		igt_exit(); \
 	} \
 	static void igt_tokencat(__real_main, __LINE__)(void) \
 
 
-void igt_simple_init_parse_opts(int argc, char **argv,
+void igt_simple_init_parse_opts(int *argc, char **argv,
 				const char *extra_short_opts,
 				struct option *extra_long_opts,
 				const char *help_str,
@@ -219,7 +219,7 @@ void igt_simple_init_parse_opts(int argc, char **argv,
  * #igt_simple_main block instead of stitching the test's main() function together
  * manually.
  */
-#define igt_simple_init(argc, argv) igt_simple_init_parse_opts(argc, argv, NULL, NULL, NULL, NULL);
+#define igt_simple_init(argc, argv) igt_simple_init_parse_opts(&argc, argv, NULL, NULL, NULL, NULL);
 
 /**
  * igt_simple_main:
@@ -231,7 +231,7 @@ void igt_simple_init_parse_opts(int argc, char **argv,
 #define igt_simple_main \
 	static void igt_tokencat(__real_main, __LINE__)(void); \
 	int main(int argc, char **argv) { \
-		igt_simple_init_parse_opts(argc, argv, NULL, NULL, NULL, NULL); \
+		igt_simple_init_parse_opts(&argc, argv, NULL, NULL, NULL, NULL); \
 		igt_tokencat(__real_main, __LINE__)(); \
 		igt_exit(); \
 	} \
diff --git a/lib/tests/igt_list_only.c b/lib/tests/igt_list_only.c
index d3ea8c2..65fa9da 100644
--- a/lib/tests/igt_list_only.c
+++ b/lib/tests/igt_list_only.c
@@ -32,8 +32,9 @@ int main(int argc, char **argv)
 	char prog[] = "igt_list_only";
 	char arg[] = "--list-subtests";
 	char *fake_argv[] = {prog, arg};
+	int fake_argc = 2;
 
-	igt_subtest_init(2, fake_argv);
+	igt_subtest_init(fake_argc, fake_argv);
 
 	igt_subtest("A")
 		;
diff --git a/lib/tests/igt_no_exit.c b/lib/tests/igt_no_exit.c
index ba3fae0..dc89b83 100644
--- a/lib/tests/igt_no_exit.c
+++ b/lib/tests/igt_no_exit.c
@@ -31,8 +31,9 @@ int main(int argc, char **argv)
 {
 	char prog[] = "igt_no_exit";
 	char *fake_argv[] = {prog};
+	int fake_argc = 1;
 
-	igt_subtest_init(1, fake_argv);
+	igt_subtest_init(fake_argc, fake_argv);
 
 	igt_subtest("A")
 		;
diff --git a/lib/tests/igt_no_exit_list_only.c b/lib/tests/igt_no_exit_list_only.c
index 3b232be..add3fc2 100644
--- a/lib/tests/igt_no_exit_list_only.c
+++ b/lib/tests/igt_no_exit_list_only.c
@@ -32,8 +32,9 @@ int main(int argc, char **argv)
 	char prog[] = "igt_list_only";
 	char arg[] = "--list-subtests";
 	char *fake_argv[] = {prog, arg};
+	int fake_argc = 2;
 
-	igt_subtest_init(2, fake_argv);
+	igt_subtest_init(fake_argc, fake_argv);
 
 	igt_subtest("A")
 		;
diff --git a/lib/tests/igt_no_subtest.c b/lib/tests/igt_no_subtest.c
index 47f15fc..1ae62cf 100644
--- a/lib/tests/igt_no_subtest.c
+++ b/lib/tests/igt_no_subtest.c
@@ -31,8 +31,9 @@ int main(int argc, char **argv)
 {
 	char prog[] = "igt_no_exit";
 	char *fake_argv[] = {prog};
+	int fake_argc = 1;
 
-	igt_subtest_init(1, fake_argv);
+	igt_subtest_init(fake_argc, fake_argv);
 
 	igt_exit();
 }
diff --git a/lib/tests/igt_simulation.c b/lib/tests/igt_simulation.c
index e588959..32830ba 100644
--- a/lib/tests/igt_simulation.c
+++ b/lib/tests/igt_simulation.c
@@ -55,22 +55,27 @@ char *argv_run[] = { test };
 static int do_fork(void)
 {
 	int pid, status;
+	int argc;
 
 	switch (pid = fork()) {
 	case -1:
 		internal_assert(0);
 	case 0:
 		if (simple) {
-			igt_simple_init(1, argv_run);
+			argc = 1;
+			igt_simple_init(argc, argv_run);
 
 			igt_skip_on_simulation();
 
 			igt_exit();
 		} else {
-			if (list_subtests)
-				igt_subtest_init(2, argv_list);
-			else
-				igt_subtest_init(1, argv_run);
+			if (list_subtests) {
+				argc = 2;
+				igt_subtest_init(argc, argv_list);
+			} else {
+				argc = 1;
+				igt_subtest_init(argc, argv_run);
+			}
 
 			if (in_fixture) {
 				igt_fixture
diff --git a/tests/gem_ctx_basic.c b/tests/gem_ctx_basic.c
index 2d866b3..4301b34 100644
--- a/tests/gem_ctx_basic.c
+++ b/tests/gem_ctx_basic.c
@@ -144,7 +144,7 @@ int main(int argc, char *argv[])
 {
 	int i;
 
-	igt_simple_init_parse_opts(argc, argv, "i:c:n:mu", NULL, NULL,
+	igt_simple_init_parse_opts(&argc, argv, "i:c:n:mu", NULL, NULL,
 				   opt_handler);
 
 	fd = drm_open_any_render();
diff --git a/tests/gem_render_copy.c b/tests/gem_render_copy.c
index 6348eee..df1ac88 100644
--- a/tests/gem_render_copy.c
+++ b/tests/gem_render_copy.c
@@ -141,7 +141,7 @@ int main(int argc, char **argv)
 	igt_render_copyfunc_t render_copy = NULL;
 	int opt_dump_aub = igt_aub_dump_enabled();
 
-	igt_simple_init_parse_opts(argc, argv, "da", NULL, NULL, opt_handler);
+	igt_simple_init_parse_opts(&argc, argv, "da", NULL, NULL, opt_handler);
 
 	igt_fixture {
 		data.drm_fd = drm_open_any_render();
diff --git a/tests/gem_seqno_wrap.c b/tests/gem_seqno_wrap.c
index d07ec96..ba58ebd 100644
--- a/tests/gem_seqno_wrap.c
+++ b/tests/gem_seqno_wrap.c
@@ -503,7 +503,7 @@ int main(int argc, char **argv)
 	options.prewrap_space = 21;
 	options.buffers = 10;
 
-	igt_simple_init_parse_opts(argc, argv, "n:bvt:dp:ri:", long_options,
+	igt_simple_init_parse_opts(&argc, argv, "n:bvt:dp:ri:", long_options,
 				   help, parse_options);
 
 	card_index = drm_get_card();
diff --git a/tests/gem_stress.c b/tests/gem_stress.c
index f687b2d..cb951af 100644
--- a/tests/gem_stress.c
+++ b/tests/gem_stress.c
@@ -854,7 +854,7 @@ int main(int argc, char **argv)
 	options.tiles_per_buf = options.scratch_buf_size / TILE_BYTES(options.tile_size);
 	options.check_render_cpyfn = 0;
 
-	igt_simple_init_parse_opts(argc, argv,"ds:g:c:t:rbuxmo:fp:",
+	igt_simple_init_parse_opts(&argc, argv,"ds:g:c:t:rbuxmo:fp:",
 				   long_options, NULL, parse_options);
 
 	drm_fd = drm_open_any();
diff --git a/tests/kms_psr_sink_crc.c b/tests/kms_psr_sink_crc.c
index 98b60cf..9256640 100644
--- a/tests/kms_psr_sink_crc.c
+++ b/tests/kms_psr_sink_crc.c
@@ -489,7 +489,7 @@ int main(int argc, char *argv[])
 	data_t data = {};
 	enum operations op;
 
-	igt_subtest_init_parse_opts(argc, argv, "", long_options,
+	igt_subtest_init_parse_opts(&argc, argv, "", long_options,
 				    help_str, opt_handler);
 	igt_skip_on_simulation();
 
diff --git a/tests/kms_setmode.c b/tests/kms_setmode.c
index f13871e..8e6afbf 100644
--- a/tests/kms_setmode.c
+++ b/tests/kms_setmode.c
@@ -699,7 +699,7 @@ int main(int argc, char **argv)
 	int i;
 	int ret;
 
-	ret = igt_subtest_init_parse_opts(argc, argv, "dt:", NULL, help_str,
+	ret = igt_subtest_init_parse_opts(&argc, argv, "dt:", NULL, help_str,
 					  opt_handler);
 	if (ret < 0)
 		return ret == -1 ? 0 : ret;
diff --git a/tests/pm_rpm.c b/tests/pm_rpm.c
index 84254b7..c2847d0 100644
--- a/tests/pm_rpm.c
+++ b/tests/pm_rpm.c
@@ -1811,7 +1811,7 @@ int main(int argc, char *argv[])
 		{ 0, 0, 0, 0 }
 	};
 
-	igt_subtest_init_parse_opts(argc, argv, "", long_options,
+	igt_subtest_init_parse_opts(&argc, argv, "", long_options,
 				    help_str, opt_handler);
 
 	/* Skip instead of failing in case the machine is not prepared to reach
-- 
2.1.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH i-g-t 4/4] tests: remove extra file
  2015-02-18 17:06 [PATCH i-g-t 1/4] tests: improve pipe enumeration Thomas Wood
  2015-02-18 17:06 ` [PATCH i-g-t 2/4] lib: use defines for igt_simple_init and igt_subtest_init Thomas Wood
  2015-02-18 17:06 ` [PATCH i-g-t 3/4] lib: remove handled option arguments from argv Thomas Wood
@ 2015-02-18 17:06 ` Thomas Wood
  2015-02-23 23:47 ` [PATCH i-g-t 1/4] tests: improve pipe enumeration Daniel Vetter
  3 siblings, 0 replies; 7+ messages in thread
From: Thomas Wood @ 2015-02-18 17:06 UTC (permalink / raw)
  To: intel-gfx; +Cc: Daniel Vetter

Remove a file accidentally added in commit 6f582f7 (tests: Add
gem_ctx_param_basic).

Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
---
 tests/gem_ctx_param_basic. | 172 ---------------------------------------------
 1 file changed, 172 deletions(-)
 delete mode 100644 tests/gem_ctx_param_basic.

diff --git a/tests/gem_ctx_param_basic. b/tests/gem_ctx_param_basic.
deleted file mode 100644
index 2d866b3..0000000
--- a/tests/gem_ctx_param_basic.
+++ /dev/null
@@ -1,172 +0,0 @@
-/*
- * Copyright © 2011 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
- *
- * Authors:
- *    Ben Widawsky <ben@bwidawsk.net>
- *
- */
-
-/*
- * This test is useful for finding memory and refcount leaks.
- */
-
-#include <pthread.h>
-#include <stdlib.h>
-#include <sys/ioctl.h>
-#include <stdio.h>
-#include <string.h>
-#include <fcntl.h>
-#include <inttypes.h>
-#include <errno.h>
-#include <sys/stat.h>
-#include <sys/time.h>
-#include "drm.h"
-#include "ioctl_wrappers.h"
-#include "drmtest.h"
-#include "intel_bufmgr.h"
-#include "intel_batchbuffer.h"
-#include "intel_io.h"
-#include "intel_chipset.h"
-
-IGT_TEST_DESCRIPTION("Basic test for memory and refcount leaks.");
-
-/* options */
-int num_contexts = 10;
-int uncontexted = 0; /* test only context create/destroy */
-int multiple_fds = 1;
-int iter = 10000;
-
-/* globals */
-pthread_t *threads;
-int devid;
-int fd;
-
-static void init_buffer(drm_intel_bufmgr *bufmgr,
-			struct igt_buf *buf,
-			uint32_t size)
-{
-	buf->bo = drm_intel_bo_alloc(bufmgr, "", size, 4096);
-	buf->size = size;
-	igt_assert(buf->bo);
-	buf->tiling = I915_TILING_NONE;
-	buf->stride = 4096;
-}
-
-static void *work(void *arg)
-{
-	struct intel_batchbuffer *batch;
-	igt_render_copyfunc_t rendercopy = igt_get_render_copyfunc(devid);
-	drm_intel_context *context;
-	drm_intel_bufmgr *bufmgr;
-	int td_fd;
-	int i;
-
-	if (multiple_fds)
-		td_fd = fd = drm_open_any_render();
-	else
-		td_fd = fd;
-
-	igt_assert(td_fd >= 0);
-
-	bufmgr = drm_intel_bufmgr_gem_init(td_fd, 4096);
-	batch = intel_batchbuffer_alloc(bufmgr, devid);
-	context = drm_intel_gem_context_create(bufmgr);
-	igt_require(context);
-
-	for (i = 0; i < iter; i++) {
-		struct igt_buf src, dst;
-
-		init_buffer(bufmgr, &src, 4096);
-		init_buffer(bufmgr, &dst, 4096);
-
-
-		if (uncontexted) {
-			igt_assert(rendercopy);
-			rendercopy(batch, NULL, &src, 0, 0, 0, 0, &dst, 0, 0);
-		} else {
-			int ret;
-			ret = drm_intel_bo_subdata(batch->bo, 0, 4096, batch->buffer);
-			igt_assert(ret == 0);
-			intel_batchbuffer_flush_with_context(batch, context);
-		}
-	}
-
-	drm_intel_gem_context_destroy(context);
-	intel_batchbuffer_free(batch);
-	drm_intel_bufmgr_destroy(bufmgr);
-
-	if (multiple_fds)
-		close(td_fd);
-
-	pthread_exit(NULL);
-}
-
-static int opt_handler(int opt, int opt_index)
-{
-	switch (opt) {
-		case 'i':
-			iter = atoi(optarg);
-			break;
-		case 'c':
-			num_contexts = atoi(optarg);
-			break;
-		case 'm':
-			multiple_fds = 1;
-			break;
-		case 'u':
-			uncontexted = 1;
-			break;
-	}
-
-	return 0;
-}
-
-int main(int argc, char *argv[])
-{
-	int i;
-
-	igt_simple_init_parse_opts(argc, argv, "i:c:n:mu", NULL, NULL,
-				   opt_handler);
-
-	fd = drm_open_any_render();
-	devid = intel_get_drm_devid(fd);
-
-	if (igt_run_in_simulation()) {
-		num_contexts = 2;
-		iter = 4;
-	}
-
-	threads = calloc(num_contexts, sizeof(*threads));
-
-	for (i = 0; i < num_contexts; i++)
-		pthread_create(&threads[i], NULL, work, &i);
-
-	for (i = 0; i < num_contexts; i++) {
-		void *retval;
-		igt_assert(pthread_join(threads[i], &retval) == 0);
-	}
-
-	free(threads);
-	close(fd);
-
-	igt_exit();
-}
-- 
2.1.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH i-g-t 1/4] tests: improve pipe enumeration
  2015-02-18 17:06 [PATCH i-g-t 1/4] tests: improve pipe enumeration Thomas Wood
                   ` (2 preceding siblings ...)
  2015-02-18 17:06 ` [PATCH i-g-t 4/4] tests: remove extra file Thomas Wood
@ 2015-02-23 23:47 ` Daniel Vetter
  3 siblings, 0 replies; 7+ messages in thread
From: Daniel Vetter @ 2015-02-23 23:47 UTC (permalink / raw)
  To: Thomas Wood; +Cc: intel-gfx

On Wed, Feb 18, 2015 at 05:06:13PM +0000, Thomas Wood wrote:
> Signed-off-by: Thomas Wood <thomas.wood@intel.com>
> ---
>  tests/kms_flip_event_leak.c | 2 +-
>  tests/kms_plane.c           | 2 +-
>  tests/kms_universal_plane.c | 2 +-
>  3 files changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/tests/kms_flip_event_leak.c b/tests/kms_flip_event_leak.c
> index 8a5e6db..ea4ce4c 100644
> --- a/tests/kms_flip_event_leak.c
> +++ b/tests/kms_flip_event_leak.c
> @@ -119,7 +119,7 @@ igt_simple_main
>  
>  	igt_display_init(&data.display, data.drm_fd);
>  
> -	for (pipe = 0; pipe < 3; pipe++) {
> +	for_each_pipe(&data.display, pipe) {
>  		for_each_connected_output(&data.display, output) {
>  			if (test(&data, pipe, output))
>  				valid_tests++;
> diff --git a/tests/kms_plane.c b/tests/kms_plane.c
> index c94eac0..8a08f20 100644
> --- a/tests/kms_plane.c
> +++ b/tests/kms_plane.c
> @@ -399,7 +399,7 @@ igt_main
>  		igt_display_init(&data.display, data.drm_fd);
>  	}
>  
> -	for (int pipe = 0; pipe < 3; pipe++)
> +	for (int pipe = 0; pipe < I915_MAX_PIPES; pipe++)

Should we maybe add a for_each_possible_pipe for this kind of stuff?
Just an idea, but should be quick to implement if we also add a new
semantic patch to lib/igt.cocci to match it.
-Daniel

>  		run_tests_for_pipe(&data, pipe);
>  
>  	igt_fixture {
> diff --git a/tests/kms_universal_plane.c b/tests/kms_universal_plane.c
> index 04ff840..6a05584 100644
> --- a/tests/kms_universal_plane.c
> +++ b/tests/kms_universal_plane.c
> @@ -569,7 +569,7 @@ igt_main
>  		igt_require(data.display.has_universal_planes);
>  	}
>  
> -	for (int pipe = 0; pipe < 3; pipe++)
> +	for (int pipe = 0; pipe < I915_MAX_PIPES; pipe++)
>  		run_tests_for_pipe(&data, pipe);
>  
>  	igt_fixture {
> -- 
> 2.1.0
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH i-g-t 2/4] lib: use defines for igt_simple_init and igt_subtest_init
  2015-02-18 17:06 ` [PATCH i-g-t 2/4] lib: use defines for igt_simple_init and igt_subtest_init Thomas Wood
@ 2015-02-23 23:49   ` Daniel Vetter
  2015-02-24  9:45     ` Thomas Wood
  0 siblings, 1 reply; 7+ messages in thread
From: Daniel Vetter @ 2015-02-23 23:49 UTC (permalink / raw)
  To: Thomas Wood; +Cc: intel-gfx

What's the benifit here? Would be nice to add that to the commit message
with a short sentence. Series lgtm otherwise, imo you could push it as-is.
-Daniel

On Wed, Feb 18, 2015 at 05:06:14PM +0000, Thomas Wood wrote:
> Signed-off-by: Thomas Wood <thomas.wood@intel.com>
> ---
>  lib/igt_core.c | 34 ----------------------------------
>  lib/igt_core.h | 36 ++++++++++++++++++++++++++++++++----
>  2 files changed, 32 insertions(+), 38 deletions(-)
> 
> diff --git a/lib/igt_core.c b/lib/igt_core.c
> index eef338b..afecdf1 100644
> --- a/lib/igt_core.c
> +++ b/lib/igt_core.c
> @@ -696,40 +696,6 @@ int igt_subtest_init_parse_opts(int argc, char **argv,
>  enum igt_log_level igt_log_level = IGT_LOG_INFO;
>  
>  /**
> - * igt_subtest_init:
> - * @argc: argc from the test's main()
> - * @argv: argv from the test's main()
> - *
> - * This initializes the for tests with subtests without the need for additional
> - * cmdline options. It is just a simplified version of
> - * igt_subtest_init_parse_opts().
> - *
> - * If there's not a reason to the contrary it's less error prone to just use an
> - * #igt_main block instead of stitching the tests's main() function together
> - * manually.
> - */
> -void igt_subtest_init(int argc, char **argv)
> -{
> -	igt_subtest_init_parse_opts(argc, argv, NULL, NULL, NULL, NULL);
> -}
> -
> -/**
> - * igt_simple_init:
> - * @argc: argc from the test's main()
> - * @argv: argv from the test's main()
> - *
> - * This initializes a simple test without any support for subtests.
> - *
> - * If there's not a reason to the contrary it's less error prone to just use an
> - * #igt_simple_main block instead of stitching the tests's main() function together
> - * manually.
> - */
> -void igt_simple_init(int argc, char **argv)
> -{
> -	common_init(argc, argv, NULL, NULL, NULL, NULL);
> -}
> -
> -/**
>   * igt_simple_init_parse_opts:
>   * @argc: argc from the test's main()
>   * @argv: argv from the test's main()
> diff --git a/lib/igt_core.h b/lib/igt_core.h
> index 0086945..88b47bf 100644
> --- a/lib/igt_core.h
> +++ b/lib/igt_core.h
> @@ -106,7 +106,6 @@ void __igt_fixture_end(void) __attribute__((noreturn));
>  
>  /* subtest infrastructure */
>  jmp_buf igt_subtest_jmpbuf;
> -void igt_subtest_init(int argc, char **argv);
>  typedef int (*igt_opt_handler_t)(int opt, int opt_index);
>  #ifndef __GTK_DOC_IGNORE__ /* gtkdoc wants to document this forward decl */
>  struct option;
> @@ -117,6 +116,22 @@ int igt_subtest_init_parse_opts(int argc, char **argv,
>  				const char *help_str,
>  				igt_opt_handler_t extra_opt_handler);
>  
> +
> +/**
> + * igt_subtest_init:
> + * @argc: argc from the test's main()
> + * @argv: argv from the test's main()
> + *
> + * This initializes the for tests with subtests without the need for additional
> + * cmdline options. It is just a simplified version of
> + * igt_subtest_init_parse_opts().
> + *
> + * If there's not a reason to the contrary it's less error prone to just use an
> + * #igt_main block instead of stitching the test's main() function together
> + * manually.
> + */
> +#define igt_subtest_init(argc, argv) igt_subtest_init_parse_opts(argc, argv, NULL, NULL, NULL, NULL);
> +
>  bool __igt_run_subtest(const char *subtest_name);
>  #define __igt_tokencat2(x, y) x ## y
>  
> @@ -180,13 +195,13 @@ bool igt_only_list_subtests(void);
>  #define igt_main \
>  	static void igt_tokencat(__real_main, __LINE__)(void); \
>  	int main(int argc, char **argv) { \
> -		igt_subtest_init(argc, argv); \
> +		igt_subtest_init_parse_opts(argc, argv, NULL, NULL, NULL, NULL); \
>  		igt_tokencat(__real_main, __LINE__)(); \
>  		igt_exit(); \
>  	} \
>  	static void igt_tokencat(__real_main, __LINE__)(void) \
>  
> -void igt_simple_init(int argc, char **argv);
> +
>  void igt_simple_init_parse_opts(int argc, char **argv,
>  				const char *extra_short_opts,
>  				struct option *extra_long_opts,
> @@ -194,6 +209,19 @@ void igt_simple_init_parse_opts(int argc, char **argv,
>  				igt_opt_handler_t extra_opt_handler);
>  
>  /**
> + * igt_simple_init:
> + * @argc: argc from the test's main()
> + * @argv: argv from the test's main()
> + *
> + * This initializes a simple test without any support for subtests.
> + *
> + * If there's not a reason to the contrary it's less error prone to just use an
> + * #igt_simple_main block instead of stitching the test's main() function together
> + * manually.
> + */
> +#define igt_simple_init(argc, argv) igt_simple_init_parse_opts(argc, argv, NULL, NULL, NULL, NULL);
> +
> +/**
>   * igt_simple_main:
>   *
>   * This is a magic control flow block used instead of a main() function for
> @@ -203,7 +231,7 @@ void igt_simple_init_parse_opts(int argc, char **argv,
>  #define igt_simple_main \
>  	static void igt_tokencat(__real_main, __LINE__)(void); \
>  	int main(int argc, char **argv) { \
> -		igt_simple_init(argc, argv); \
> +		igt_simple_init_parse_opts(argc, argv, NULL, NULL, NULL, NULL); \
>  		igt_tokencat(__real_main, __LINE__)(); \
>  		igt_exit(); \
>  	} \
> -- 
> 2.1.0
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH i-g-t 2/4] lib: use defines for igt_simple_init and igt_subtest_init
  2015-02-23 23:49   ` Daniel Vetter
@ 2015-02-24  9:45     ` Thomas Wood
  0 siblings, 0 replies; 7+ messages in thread
From: Thomas Wood @ 2015-02-24  9:45 UTC (permalink / raw)
  To: Daniel Vetter; +Cc: Intel Graphics Development

On 23 February 2015 at 23:49, Daniel Vetter <daniel@ffwll.ch> wrote:
> What's the benifit here? Would be nice to add that to the commit message
> with a short sentence. Series lgtm otherwise, imo you could push it as-is.

It is partly as preparation for the next patch and partly just a
simplification to remove an extra function call. I'll add a suitable
comment to the commit message.

> -Daniel
>
> On Wed, Feb 18, 2015 at 05:06:14PM +0000, Thomas Wood wrote:
>> Signed-off-by: Thomas Wood <thomas.wood@intel.com>
>> ---
>>  lib/igt_core.c | 34 ----------------------------------
>>  lib/igt_core.h | 36 ++++++++++++++++++++++++++++++++----
>>  2 files changed, 32 insertions(+), 38 deletions(-)
>>
>> diff --git a/lib/igt_core.c b/lib/igt_core.c
>> index eef338b..afecdf1 100644
>> --- a/lib/igt_core.c
>> +++ b/lib/igt_core.c
>> @@ -696,40 +696,6 @@ int igt_subtest_init_parse_opts(int argc, char **argv,
>>  enum igt_log_level igt_log_level = IGT_LOG_INFO;
>>
>>  /**
>> - * igt_subtest_init:
>> - * @argc: argc from the test's main()
>> - * @argv: argv from the test's main()
>> - *
>> - * This initializes the for tests with subtests without the need for additional
>> - * cmdline options. It is just a simplified version of
>> - * igt_subtest_init_parse_opts().
>> - *
>> - * If there's not a reason to the contrary it's less error prone to just use an
>> - * #igt_main block instead of stitching the tests's main() function together
>> - * manually.
>> - */
>> -void igt_subtest_init(int argc, char **argv)
>> -{
>> -     igt_subtest_init_parse_opts(argc, argv, NULL, NULL, NULL, NULL);
>> -}
>> -
>> -/**
>> - * igt_simple_init:
>> - * @argc: argc from the test's main()
>> - * @argv: argv from the test's main()
>> - *
>> - * This initializes a simple test without any support for subtests.
>> - *
>> - * If there's not a reason to the contrary it's less error prone to just use an
>> - * #igt_simple_main block instead of stitching the tests's main() function together
>> - * manually.
>> - */
>> -void igt_simple_init(int argc, char **argv)
>> -{
>> -     common_init(argc, argv, NULL, NULL, NULL, NULL);
>> -}
>> -
>> -/**
>>   * igt_simple_init_parse_opts:
>>   * @argc: argc from the test's main()
>>   * @argv: argv from the test's main()
>> diff --git a/lib/igt_core.h b/lib/igt_core.h
>> index 0086945..88b47bf 100644
>> --- a/lib/igt_core.h
>> +++ b/lib/igt_core.h
>> @@ -106,7 +106,6 @@ void __igt_fixture_end(void) __attribute__((noreturn));
>>
>>  /* subtest infrastructure */
>>  jmp_buf igt_subtest_jmpbuf;
>> -void igt_subtest_init(int argc, char **argv);
>>  typedef int (*igt_opt_handler_t)(int opt, int opt_index);
>>  #ifndef __GTK_DOC_IGNORE__ /* gtkdoc wants to document this forward decl */
>>  struct option;
>> @@ -117,6 +116,22 @@ int igt_subtest_init_parse_opts(int argc, char **argv,
>>                               const char *help_str,
>>                               igt_opt_handler_t extra_opt_handler);
>>
>> +
>> +/**
>> + * igt_subtest_init:
>> + * @argc: argc from the test's main()
>> + * @argv: argv from the test's main()
>> + *
>> + * This initializes the for tests with subtests without the need for additional
>> + * cmdline options. It is just a simplified version of
>> + * igt_subtest_init_parse_opts().
>> + *
>> + * If there's not a reason to the contrary it's less error prone to just use an
>> + * #igt_main block instead of stitching the test's main() function together
>> + * manually.
>> + */
>> +#define igt_subtest_init(argc, argv) igt_subtest_init_parse_opts(argc, argv, NULL, NULL, NULL, NULL);
>> +
>>  bool __igt_run_subtest(const char *subtest_name);
>>  #define __igt_tokencat2(x, y) x ## y
>>
>> @@ -180,13 +195,13 @@ bool igt_only_list_subtests(void);
>>  #define igt_main \
>>       static void igt_tokencat(__real_main, __LINE__)(void); \
>>       int main(int argc, char **argv) { \
>> -             igt_subtest_init(argc, argv); \
>> +             igt_subtest_init_parse_opts(argc, argv, NULL, NULL, NULL, NULL); \
>>               igt_tokencat(__real_main, __LINE__)(); \
>>               igt_exit(); \
>>       } \
>>       static void igt_tokencat(__real_main, __LINE__)(void) \
>>
>> -void igt_simple_init(int argc, char **argv);
>> +
>>  void igt_simple_init_parse_opts(int argc, char **argv,
>>                               const char *extra_short_opts,
>>                               struct option *extra_long_opts,
>> @@ -194,6 +209,19 @@ void igt_simple_init_parse_opts(int argc, char **argv,
>>                               igt_opt_handler_t extra_opt_handler);
>>
>>  /**
>> + * igt_simple_init:
>> + * @argc: argc from the test's main()
>> + * @argv: argv from the test's main()
>> + *
>> + * This initializes a simple test without any support for subtests.
>> + *
>> + * If there's not a reason to the contrary it's less error prone to just use an
>> + * #igt_simple_main block instead of stitching the test's main() function together
>> + * manually.
>> + */
>> +#define igt_simple_init(argc, argv) igt_simple_init_parse_opts(argc, argv, NULL, NULL, NULL, NULL);
>> +
>> +/**
>>   * igt_simple_main:
>>   *
>>   * This is a magic control flow block used instead of a main() function for
>> @@ -203,7 +231,7 @@ void igt_simple_init_parse_opts(int argc, char **argv,
>>  #define igt_simple_main \
>>       static void igt_tokencat(__real_main, __LINE__)(void); \
>>       int main(int argc, char **argv) { \
>> -             igt_simple_init(argc, argv); \
>> +             igt_simple_init_parse_opts(argc, argv, NULL, NULL, NULL, NULL); \
>>               igt_tokencat(__real_main, __LINE__)(); \
>>               igt_exit(); \
>>       } \
>> --
>> 2.1.0
>>
>> _______________________________________________
>> Intel-gfx mailing list
>> Intel-gfx@lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
>
> --
> Daniel Vetter
> Software Engineer, Intel Corporation
> +41 (0) 79 365 57 48 - http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2015-02-24  9:46 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-02-18 17:06 [PATCH i-g-t 1/4] tests: improve pipe enumeration Thomas Wood
2015-02-18 17:06 ` [PATCH i-g-t 2/4] lib: use defines for igt_simple_init and igt_subtest_init Thomas Wood
2015-02-23 23:49   ` Daniel Vetter
2015-02-24  9:45     ` Thomas Wood
2015-02-18 17:06 ` [PATCH i-g-t 3/4] lib: remove handled option arguments from argv Thomas Wood
2015-02-18 17:06 ` [PATCH i-g-t 4/4] tests: remove extra file Thomas Wood
2015-02-23 23:47 ` [PATCH i-g-t 1/4] tests: improve pipe enumeration Daniel Vetter

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.