All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alper Nebi Yasak <alpernebiyasak@gmail.com>
To: u-boot@lists.denx.de
Cc: Walter Lozano <walter.lozano@collabora.com>,
	Simon Glass <sjg@chromium.org>,
	Alper Nebi Yasak <alpernebiyasak@gmail.com>
Subject: [PATCH 2/5] patman: test_util: Handle nonexistent tests while loading tests
Date: Sat,  2 Apr 2022 20:06:05 +0300	[thread overview]
Message-ID: <20220402170609.17790-3-alpernebiyasak@gmail.com> (raw)
In-Reply-To: <20220402170609.17790-1-alpernebiyasak@gmail.com>

It's possible to request a specific test to run when trying to run a
python tool's tests. If we request a nonexistent test, the unittest
loaders generate a fake test that reports this as an error. However, we
get these fake tests even when the test exists, because test_util can
load tests from multiple places one by one and the test we want only
exists in one.

The test_util helpers currently remove these fake tests when printing
test results, but that's more of a workaround than a proper solution.
Instead, don't even try to load the missing tests.

Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
---

 tools/patman/test_util.py | 21 +++++----------------
 1 file changed, 5 insertions(+), 16 deletions(-)

diff --git a/tools/patman/test_util.py b/tools/patman/test_util.py
index 8b2220dbbafc..a4c2a2c3c0b2 100644
--- a/tools/patman/test_util.py
+++ b/tools/patman/test_util.py
@@ -110,19 +110,6 @@ def report_result(toolname:str, test_name: str, result: unittest.TestResult):
         test_name: Name of test that was run, or None for all
         result: A unittest.TestResult object containing the results
     """
-    # Remove errors which just indicate a missing test. Since Python v3.5 If an
-    # ImportError or AttributeError occurs while traversing name then a
-    # synthetic test that raises that error when run will be returned. These
-    # errors are included in the errors accumulated by result.errors.
-    if test_name:
-        errors = []
-
-        for test, err in result.errors:
-            if ("has no attribute '%s'" % test_name) not in err:
-                errors.append((test, err))
-            result.testsRun -= 1
-        result.errors = errors
-
     print(result)
     for test, err in result.errors:
         print(test.id(), err)
@@ -184,10 +171,12 @@ def run_test_suites(result, debug, verbosity, test_preserve_dirs, processes,
                 preserve_outdirs=test_preserve_dirs and test_name is not None,
                 toolpath=toolpath, verbosity=verbosity)
         if test_name:
-            try:
+            # Since Python v3.5 If an ImportError or AttributeError occurs
+            # while traversing a name then a synthetic test that raises that
+            # error when run will be returned. Check that the requested test
+            # exists, otherwise these errors are included in the results.
+            if test_name in loader.getTestCaseNames(module):
                 suite.addTests(loader.loadTestsFromName(test_name, module))
-            except AttributeError:
-                continue
         else:
             suite.addTests(loader.loadTestsFromTestCase(module))
     if use_concurrent and processes != 1:
-- 
2.35.1


  parent reply	other threads:[~2022-04-02 17:07 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-04-02 17:06 [PATCH 0/5] patman: test_util: Prettify test report outputs for python tools Alper Nebi Yasak
2022-04-02 17:06 ` [PATCH 1/5] patman: test_util: Fix printing results for failed tests Alper Nebi Yasak
2022-04-19 21:54   ` Simon Glass
2022-06-28 13:38   ` Simon Glass
2022-04-02 17:06 ` Alper Nebi Yasak [this message]
2022-04-19 21:54   ` [PATCH 2/5] patman: test_util: Handle nonexistent tests while loading tests Simon Glass
2022-06-28 13:38   ` Simon Glass
2022-04-02 17:06 ` [PATCH 3/5] patman: test_util: Use unittest text runner to print test results Alper Nebi Yasak
2022-04-19 21:54   ` Simon Glass
2022-06-28 13:38   ` Simon Glass
2022-04-02 17:06 ` [PATCH 4/5] patman: test_util: Customize unittest test results for more info Alper Nebi Yasak
2022-04-02 17:06 ` [PATCH 5/5] patman: test_util: Print test stdout/stderr within test summaries Alper Nebi Yasak
2022-04-19 21:54   ` Simon Glass
2022-06-28 13:38   ` Simon Glass
2022-06-28 13:38 ` [PATCH 4/5] patman: test_util: Customize unittest test results for more info Simon Glass

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=20220402170609.17790-3-alpernebiyasak@gmail.com \
    --to=alpernebiyasak@gmail.com \
    --cc=sjg@chromium.org \
    --cc=u-boot@lists.denx.de \
    --cc=walter.lozano@collabora.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.