summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2019-10-22 14:55:14 -0400
committerTom Rini <trini@konsulko.com>2019-10-22 14:58:22 -0400
commit0d9140a3db2c6c11efc49ef0b2af323bdada3438 (patch)
tree4fd24a1cc43905f197e4e3c8f66891ddf74a0929
parentb459af55d1fba9ca7127a4770fd2e0228af63ec5 (diff)
downloadu-boot-0d9140a3db2c6c11efc49ef0b2af323bdada3438.tar.gz
test/py: Rework test.py to be a different kind of wrapper
Now that we have moved to being based on pytest for python3 we need to make our test.py wrapper more robust in terms of only calling python3 rather than possibly finding and using python2. To do this, change from execvp()'ing pytest to invoking the package itself via python. In the event that pytest is unavailable we still get a user-friendly error: pkg_resources.DistributionNotFound: The 'pytest' distribution was not found and is required by the application Cc: Stephen Warren <swarren@nvidia.com> Signed-off-by: Tom Rini <trini@konsulko.com> --- Changes in v2: - New patch
-rwxr-xr-xtest/py/test.py20
1 files changed, 4 insertions, 16 deletions
diff --git a/test/py/test.py b/test/py/test.py
index 0ce1838833..bee88d96bc 100755
--- a/test/py/test.py
+++ b/test/py/test.py
@@ -10,23 +10,11 @@
import os
import os.path
import sys
-
-# Get rid of argv[0]
-sys.argv.pop(0)
+from pkg_resources import load_entry_point
# argv; py.test test_directory_name user-supplied-arguments
-args = ['py.test', os.path.dirname(__file__) + '/tests']
+args = [os.path.dirname(__file__) + '/tests']
args.extend(sys.argv)
-try:
- os.execvp('py.test', args)
-except:
- # Log full details of any exception for detailed analysis
- import traceback
- traceback.print_exc()
- # Hint to the user that they likely simply haven't installed the required
- # dependencies.
- print('''
-exec(py.test) failed; perhaps you are missing some dependencies?
-See test/py/README.md for the list.''', file=sys.stderr)
- sys.exit(1)
+if __name__ == '__main__':
+ sys.exit(load_entry_point('pytest', 'console_scripts', 'pytest')(args))