From: Abdiel Janulgue <abdiel.janulgue@linux.intel.com>
To: Petri Latvala <petri.latvala@intel.com>, intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH i-g-t] tools_test: Clean up and fix sysfs_l3_parity
Date: Wed, 20 Sep 2017 09:42:44 +0300 [thread overview]
Message-ID: <80cd8bde-eb36-e118-bb29-12082da92f89@linux.intel.com> (raw)
In-Reply-To: <1505820782-14587-1-git-send-email-petri.latvala@intel.com>
On 09/19/2017 02:33 PM, Petri Latvala wrote:
> Multiple misunderstandings of the expectations of the test and some
> missed parts of the shell-to-c conversion caused a couple of issues to
> remain.
>
> First, we need to actually disable a subbank before we check that a
> subbank is disabled (invoke the tool with -d).
>
> Second, the original pipe to wc -l was to check that the tool prints
> only one line, not that it prints "at least" a line. Modify the last
> check to verify that an "is disabled" text is _not_ printed.
>
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=101650
> CC: Abdiel Janulgue <abdiel.janulgue@linux.intel.com>
> Signed-off-by: Petri Latvala <petri.latvala@intel.com>
Reviewed-by: Abdiel Janulgue <abdiel.janulgue@linux.intel.com>
> ---
> tests/tools_test.c | 83 ++++++++++++++++++++++++++++++------------------------
> 1 file changed, 46 insertions(+), 37 deletions(-)
>
> diff --git a/tests/tools_test.c b/tests/tools_test.c
> index 132bb88b..ed32bb29 100644
> --- a/tests/tools_test.c
> +++ b/tests/tools_test.c
> @@ -28,26 +28,31 @@
> #include <fcntl.h>
>
> struct line_check {
> - bool found;
> + int found;
> const char *substr;
> };
>
> /**
> * Our igt_log_buffer_inspect handler. Checks the output of the
> - * intel_l3_parity tool and returns line_check::found to true if
> - * a specific substring is found.
> + * intel_l3_parity tool and increments line_check::found if a specific
> + * substring is found.
> */
> -static bool check_cmd_return_value(const char *line, void *data)
> +static bool check_cmd_output(const char *line, void *data)
> {
> struct line_check *check = data;
>
> - if (!strstr(line, check->substr)) {
> - check->found = false;
> - return false;
> + if (strstr(line, check->substr)) {
> + check->found++;
> }
>
> - check->found = true;
> - return true;
> + return false;
> +}
> +
> +static void assert_cmd_success(int exec_return)
> +{
> + igt_skip_on_f(exec_return == IGT_EXIT_SKIP,
> + "intel_l3_parity not supported\n");
> + igt_assert_eq(exec_return, IGT_EXIT_SUCCESS);
> }
>
> igt_main
> @@ -56,46 +61,50 @@ igt_main
>
> igt_subtest("sysfs_l3_parity") {
> int exec_return;
> + struct line_check line;
>
> + /* Sanity check that l3 parity tool is usable: Enable
> + * row,bank,subbank 0,0,0.
> + */
> igt_system_cmd(exec_return,
> "../tools/intel_l3_parity -r 0 -b 0 "
> "-s 0 -e");
> - igt_skip_on_f(exec_return == IGT_EXIT_SKIP,
> - "intel_l3_parity not supported\n");
> - igt_assert_eq(exec_return, IGT_EXIT_SUCCESS);
> + assert_cmd_success(exec_return);
>
> + /* Disable row,bank,subbank 0,0,0. */
> + igt_system_cmd(exec_return, "../tools/intel_l3_parity -r 0 -b 0 "
> + "-s 0 -d");
> + assert_cmd_success(exec_return);
> +
> + /* Check that disabling was successful */
> igt_system_cmd(exec_return, "../tools/intel_l3_parity -l");
> - if (exec_return == IGT_EXIT_SUCCESS) {
> - struct line_check line;
> - line.substr = "Row 0, Bank 0, Subbank 0 is disabled";
> - igt_log_buffer_inspect(check_cmd_return_value,
> - &line);
> - igt_assert_eq(line.found, true);
> - }
> + assert_cmd_success(exec_return);
> + line.substr = "Row 0, Bank 0, Subbank 0 is disabled";
> + line.found = 0;
> + igt_log_buffer_inspect(check_cmd_output,
> + &line);
> + igt_assert_eq(line.found, 1);
>
> + /* Re-enable row,bank,subbank 0,0,0 */
> igt_system_cmd(exec_return,
> "../tools/intel_l3_parity -r 0 -b 0 "
> "-s 0 -e");
> - igt_skip_on_f(exec_return == IGT_EXIT_SKIP,
> - "intel_l3_parity not supported\n");
> - igt_assert_eq(exec_return, IGT_EXIT_SUCCESS);
> + assert_cmd_success(exec_return);
>
> - /* Check that we can clear remaps:
> - * In the original shell script, the output of intel_l3_parity -l
> - * was piped thru wc -l to check if the tool would at least
> - * return a line. Just watch for one of the expected output
> - * string as an alternative.
> - * ("is disabled" unique only to intel_l3_parity.c:dumpit())
> + /* Check that re-enabling was successful:
> + * intel_l3_parity -l should now not print that Row 0,
> + * Bank 0, Subbank 0 is disabled.
> + *
> + * The previously printed line is already in the log
> + * buffer so we check for count 1.
> */
> - igt_system_cmd(exec_return,
> - "../tools/intel_l3_parity -l");
> - if (exec_return == IGT_EXIT_SUCCESS) {
> - struct line_check line;
> - line.substr = "is disabled";
> - igt_log_buffer_inspect(check_cmd_return_value,
> - &line);
> - igt_assert_eq(line.found, true);
> - }
> + igt_system_cmd(exec_return, "../tools/intel_l3_parity -l");
> + assert_cmd_success(exec_return);
> + line.substr = "Row 0, Bank 0, Subbank 0 is disabled";
> + line.found = 0;
> + igt_log_buffer_inspect(check_cmd_output,
> + &line);
> + igt_assert_eq(line.found, 1);
> }
>
> igt_subtest("tools_test") {
>
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
prev parent reply other threads:[~2017-09-20 6:42 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-09-19 11:33 [PATCH i-g-t] tools_test: Clean up and fix sysfs_l3_parity Petri Latvala
2017-09-19 23:28 ` ✓ Fi.CI.BAT: success for " Patchwork
2017-09-20 2:36 ` ✗ Fi.CI.IGT: failure " Patchwork
2017-09-20 6:42 ` Abdiel Janulgue [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=80cd8bde-eb36-e118-bb29-12082da92f89@linux.intel.com \
--to=abdiel.janulgue@linux.intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=petri.latvala@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.