relesetools: Support running all the unittests with atest.
All the unittests will be built into releasetools_test. One can run the tests with `atest releasetools_test` or the traditional way `test_utils.py`. The atest way is recommended, which additionally builds the required tools. With the current support in Soong, we can't pack the built tools into releasetools_test yet. So running `releasetools_test` alone in clound would fail. Follow-up CLs will address the issue in order to deploy the tests with TEST_MAPPING. Bug: 112080715 Test: `atest releasetools_test` Change-Id: Ica95517a5ab326f4e58fc57c6c2c276cfe882f3c
This commit is contained in:
25
tools/releasetools/test_utils.py
Normal file → Executable file
25
tools/releasetools/test_utils.py
Normal file → Executable file
@@ -1,3 +1,4 @@
|
||||
#!/usr/bin/env python
|
||||
#
|
||||
# Copyright (C) 2018 The Android Open Source Project
|
||||
#
|
||||
@@ -40,6 +41,19 @@ def get_testdata_dir():
|
||||
|
||||
def get_search_path():
|
||||
"""Returns the search path that has 'framework/signapk.jar' under."""
|
||||
|
||||
def signapk_exists(path):
|
||||
signapk_path = os.path.realpath(
|
||||
os.path.join(path, 'framework', 'signapk.jar'))
|
||||
return os.path.exists(signapk_path)
|
||||
|
||||
# Try with ANDROID_BUILD_TOP first.
|
||||
full_path = os.path.realpath(os.path.join(
|
||||
os.environ.get('ANDROID_BUILD_TOP', ''), 'out', 'host', 'linux-x86'))
|
||||
if signapk_exists(full_path):
|
||||
return full_path
|
||||
|
||||
# Otherwise try going with relative pathes.
|
||||
current_dir = os.path.dirname(os.path.realpath(__file__))
|
||||
for path in (
|
||||
# In relative to 'build/make/tools/releasetools' in the Android source.
|
||||
@@ -47,9 +61,7 @@ def get_search_path():
|
||||
# Or running the script unpacked from otatools.zip.
|
||||
['..']):
|
||||
full_path = os.path.realpath(os.path.join(current_dir, *path))
|
||||
signapk_path = os.path.realpath(
|
||||
os.path.join(full_path, 'framework', 'signapk.jar'))
|
||||
if os.path.exists(signapk_path):
|
||||
if signapk_exists(full_path):
|
||||
return full_path
|
||||
return None
|
||||
|
||||
@@ -123,3 +135,10 @@ class ReleaseToolsTestCase(unittest.TestCase):
|
||||
|
||||
def tearDown(self):
|
||||
common.Cleanup()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
testsuite = unittest.TestLoader().discover(
|
||||
os.path.dirname(os.path.realpath(__file__)))
|
||||
# atest needs a verbosity level of >= 2 to correctly parse the result.
|
||||
unittest.TextTestRunner(verbosity=2).run(testsuite)
|
||||
|
Reference in New Issue
Block a user