common.get_android_tools_versions() for modern NDK dir layout
NDK r10e is still in use, but is so old, it does not have the modern sdkmanager package metadata.
This commit is contained in:
parent
0dd5a7db64
commit
898624dcac
|
@ -552,9 +552,12 @@ include tests/dump_internal_metadata_format.py
|
|||
include tests/exception.TestCase
|
||||
include tests/extra/manual-vmtools-test.py
|
||||
include tests/funding-usernames.yaml
|
||||
include tests/get_android_tools_versions/android-ndk/android-ndk-r21d/source.properties
|
||||
include tests/get_android_tools_versions/android-ndk/r11c/source.properties
|
||||
include tests/get_android_tools_versions/android-ndk/r17c/source.properties
|
||||
include tests/get_android_tools_versions/android-ndk-r10e/RELEASE.TXT
|
||||
include tests/get_android_tools_versions/android-sdk/ndk/11.2.2725575/source.properties
|
||||
include tests/get_android_tools_versions/android-sdk/ndk/17.2.4988734/source.properties
|
||||
include tests/get_android_tools_versions/android-sdk/ndk/21.3.6528147/source.properties
|
||||
include tests/get_android_tools_versions/android-sdk/ndk-bundle/package.xml
|
||||
include tests/get_android_tools_versions/android-sdk/ndk-bundle/source.properties
|
||||
include tests/get_android_tools_versions/android-sdk/patcher/v4/source.properties
|
||||
include tests/get_android_tools_versions/android-sdk/platforms/android-30/source.properties
|
||||
include tests/get_android_tools_versions/android-sdk/skiaparser/1/source.properties
|
||||
|
|
|
@ -4043,10 +4043,10 @@ def get_android_tools_versions():
|
|||
sdk_path = config['sdk_path']
|
||||
if sdk_path[-1] != '/':
|
||||
sdk_path += '/'
|
||||
components = []
|
||||
for ndk_path in config.get('ndk_paths', []):
|
||||
components = set()
|
||||
for ndk_path in config.get('ndk_paths', {}).values():
|
||||
version = get_ndk_version(ndk_path)
|
||||
components.append((os.path.basename(ndk_path), str(version)))
|
||||
components.add((os.path.relpath(ndk_path, sdk_path), str(version)))
|
||||
|
||||
pattern = re.compile(r'^Pkg.Revision *= *(.+)', re.MULTILINE)
|
||||
for root, dirs, files in os.walk(sdk_path):
|
||||
|
@ -4055,9 +4055,9 @@ def get_android_tools_versions():
|
|||
with open(source_properties, 'r') as fp:
|
||||
m = pattern.search(fp.read())
|
||||
if m:
|
||||
components.append((root[len(sdk_path):], m.group(1)))
|
||||
components.add((os.path.relpath(root, sdk_path), m.group(1)))
|
||||
|
||||
return components
|
||||
return sorted(components)
|
||||
|
||||
|
||||
def get_android_tools_version_log():
|
||||
|
|
|
@ -2118,21 +2118,49 @@ class CommonTest(unittest.TestCase):
|
|||
{'AutoName': testvalue, 'id': 'nope'}]:
|
||||
self.assertEqual(testvalue, fdroidserver.common.get_app_display_name(app))
|
||||
|
||||
@mock.patch.dict(os.environ, {'PATH': os.getenv('PATH')}, clear=True)
|
||||
def test_get_android_tools_versions(self):
|
||||
sdk_path = os.path.join(self.basedir, 'get_android_tools_versions')
|
||||
fdroidserver.common.config = {'sdk_path': sdk_path}
|
||||
sdk_path = os.path.join(self.basedir, 'get_android_tools_versions/android-sdk')
|
||||
config = {
|
||||
'ndk_paths': {'r10e': os.path.join(sdk_path, '..', 'android-ndk-r10e')},
|
||||
'sdk_path': sdk_path,
|
||||
}
|
||||
fdroidserver.common.config = config
|
||||
fdroidserver.common.fill_config_defaults(config)
|
||||
components = fdroidserver.common.get_android_tools_versions()
|
||||
expected = (
|
||||
('android-ndk/android-ndk-r21d', '21.3.6528147'),
|
||||
('android-ndk/r11c', '11.2.2725575'),
|
||||
('android-ndk/r17c', '17.2.4988734'),
|
||||
('android-sdk/patcher/v4', '1'),
|
||||
('android-sdk/platforms/android-30', '3'),
|
||||
('android-sdk/skiaparser/1', '6'),
|
||||
('android-sdk/tools', '26.1.1'),
|
||||
('../android-ndk-r10e', 'r10e'),
|
||||
('ndk-bundle', '21.4.7075529'),
|
||||
('ndk/11.2.2725575', '11.2.2725575'),
|
||||
('ndk/17.2.4988734', '17.2.4988734'),
|
||||
('ndk/21.3.6528147', '21.3.6528147'),
|
||||
('patcher/v4', '1'),
|
||||
('platforms/android-30', '3'),
|
||||
('skiaparser/1', '6'),
|
||||
('tools', '26.1.1'),
|
||||
)
|
||||
self.assertSequenceEqual(expected, sorted(components))
|
||||
|
||||
@mock.patch.dict(os.environ, {'PATH': os.getenv('PATH')}, clear=True)
|
||||
def test_get_android_tools_versions_no_ndk(self):
|
||||
with tempfile.TemporaryDirectory() as tmpdir:
|
||||
sdk_path = Path(tmpdir) / 'get_android_tools_versions'
|
||||
shutil.copytree(
|
||||
os.path.join(self.basedir, 'get_android_tools_versions'), sdk_path
|
||||
)
|
||||
shutil.rmtree(sdk_path / 'android-ndk-r10e')
|
||||
shutil.rmtree(sdk_path / 'android-sdk/ndk')
|
||||
shutil.rmtree(sdk_path / 'android-sdk/ndk-bundle')
|
||||
fdroidserver.common.config = {'sdk_path': str(sdk_path)}
|
||||
components = fdroidserver.common.get_android_tools_versions()
|
||||
expected = (
|
||||
('android-sdk/patcher/v4', '1'),
|
||||
('android-sdk/platforms/android-30', '3'),
|
||||
('android-sdk/skiaparser/1', '6'),
|
||||
('android-sdk/tools', '26.1.1'),
|
||||
)
|
||||
self.assertSequenceEqual(expected, sorted(components))
|
||||
|
||||
def test_read_pkg_args(self):
|
||||
allow_vercodes = False
|
||||
self.assertEqual(
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
r10e-rc4 (64-bit)
|
|
@ -0,0 +1 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><ns2:repository xmlns:ns2="http://schemas.android.com/repository/android/common/01" xmlns:ns3="http://schemas.android.com/repository/android/generic/01" xmlns:ns4="http://schemas.android.com/sdk/android/repo/addon2/01" xmlns:ns5="http://schemas.android.com/sdk/android/repo/repository2/01" xmlns:ns6="http://schemas.android.com/sdk/android/repo/sys-img2/01"><license id="license-C3FD9DF8" type="text"/><localPackage path="ndk-bundle" obsolete="false"><type-details xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ns3:genericDetailsType"/><revision><major>21</major><minor>4</minor><micro>7075529</micro></revision><display-name>Android NDK</display-name><uses-license ref="license-C3FD9DF8"/></localPackage></ns2:repository>
|
|
@ -0,0 +1,2 @@
|
|||
Pkg.Desc = Android NDK
|
||||
Pkg.Revision = 21.4.7075529
|
Loading…
Reference in New Issue