mirror of
https://gitlab.com/fdroid/fdroidserver.git
synced 2024-10-03 17:50:11 +02:00
run all SDK tools commands using SdkToolsPopen
This commit is contained in:
parent
9244256461
commit
fa1cc48d57
@ -130,32 +130,6 @@ def read_config(opts, config_file='config.py'):
|
|||||||
|
|
||||||
fill_config_defaults(config)
|
fill_config_defaults(config)
|
||||||
|
|
||||||
bin_paths = {
|
|
||||||
'aapt': [
|
|
||||||
os.path.join(config['sdk_path'], 'build-tools', config['build_tools'], 'aapt'),
|
|
||||||
],
|
|
||||||
'zipalign': [
|
|
||||||
os.path.join(config['sdk_path'], 'tools', 'zipalign'),
|
|
||||||
os.path.join(config['sdk_path'], 'build-tools', config['build_tools'], 'zipalign'),
|
|
||||||
],
|
|
||||||
'android': [
|
|
||||||
os.path.join(config['sdk_path'], 'tools', 'android'),
|
|
||||||
],
|
|
||||||
'adb': [
|
|
||||||
os.path.join(config['sdk_path'], 'platform-tools', 'adb'),
|
|
||||||
],
|
|
||||||
}
|
|
||||||
|
|
||||||
for b, paths in bin_paths.items():
|
|
||||||
config[b] = None
|
|
||||||
for path in paths:
|
|
||||||
if os.path.isfile(path):
|
|
||||||
config[b] = path
|
|
||||||
break
|
|
||||||
if config[b] is None:
|
|
||||||
logging.warn("Could not find %s in any of the following paths:\n%s" % (
|
|
||||||
b, '\n'.join(paths)))
|
|
||||||
|
|
||||||
# There is no standard, so just set up the most common environment
|
# There is no standard, so just set up the most common environment
|
||||||
# variables
|
# variables
|
||||||
env = os.environ
|
env = os.environ
|
||||||
@ -1378,8 +1352,8 @@ def prepare_source(vcs, app, build, build_dir, srclib_dir, extlib_dir, onserver=
|
|||||||
|
|
||||||
# Generate (or update) the ant build file, build.xml...
|
# Generate (or update) the ant build file, build.xml...
|
||||||
if build['update'] and build['update'] != ['no'] and build['type'] == 'ant':
|
if build['update'] and build['update'] != ['no'] and build['type'] == 'ant':
|
||||||
parms = [config['android'], 'update', 'lib-project']
|
parms = ['android', 'update', 'lib-project']
|
||||||
lparms = [config['android'], 'update', 'project']
|
lparms = ['android', 'update', 'project']
|
||||||
|
|
||||||
if build['target']:
|
if build['target']:
|
||||||
parms += ['-t', build['target']]
|
parms += ['-t', build['target']]
|
||||||
@ -1397,7 +1371,7 @@ def prepare_source(vcs, app, build, build_dir, srclib_dir, extlib_dir, onserver=
|
|||||||
else:
|
else:
|
||||||
logging.debug("Updating subproject %s" % d)
|
logging.debug("Updating subproject %s" % d)
|
||||||
cmd = lparms + ['-p', d]
|
cmd = lparms + ['-p', d]
|
||||||
p = FDroidPopen(cmd, cwd=root_dir)
|
p = SdkToolsPopen(cmd, cwd=root_dir)
|
||||||
# Check to see whether an error was returned without a proper exit
|
# Check to see whether an error was returned without a proper exit
|
||||||
# code (this is the case for the 'no target set or target invalid'
|
# code (this is the case for the 'no target set or target invalid'
|
||||||
# error)
|
# error)
|
||||||
|
@ -25,14 +25,14 @@ from optparse import OptionParser, OptionError
|
|||||||
import logging
|
import logging
|
||||||
|
|
||||||
import common
|
import common
|
||||||
from common import FDroidPopen, FDroidException
|
from common import SdkToolsPopen, FDroidException
|
||||||
|
|
||||||
options = None
|
options = None
|
||||||
config = None
|
config = None
|
||||||
|
|
||||||
|
|
||||||
def devices():
|
def devices():
|
||||||
p = FDroidPopen([config['adb'], "devices"])
|
p = SdkToolsPopen(['adb', "devices"])
|
||||||
if p.returncode != 0:
|
if p.returncode != 0:
|
||||||
raise FDroidException("An error occured when finding devices: %s" % p.output)
|
raise FDroidException("An error occured when finding devices: %s" % p.output)
|
||||||
lines = p.output.splitlines()
|
lines = p.output.splitlines()
|
||||||
@ -103,7 +103,7 @@ def main():
|
|||||||
logging.info("Installing %s..." % apk)
|
logging.info("Installing %s..." % apk)
|
||||||
for dev in devs:
|
for dev in devs:
|
||||||
logging.info("Installing %s on %s..." % (apk, dev))
|
logging.info("Installing %s on %s..." % (apk, dev))
|
||||||
p = FDroidPopen([config['adb'], "-s", dev, "install", apk])
|
p = SdkToolsPopen(['adb', "-s", dev, "install", apk])
|
||||||
fail = ""
|
fail = ""
|
||||||
for line in p.output.splitlines():
|
for line in p.output.splitlines():
|
||||||
if line.startswith("Failure"):
|
if line.startswith("Failure"):
|
||||||
|
@ -28,7 +28,7 @@ import logging
|
|||||||
|
|
||||||
import common
|
import common
|
||||||
import metadata
|
import metadata
|
||||||
from common import FDroidPopen, BuildException
|
from common import FDroidPopen, SdkToolsPopen, BuildException
|
||||||
|
|
||||||
config = None
|
config = None
|
||||||
options = None
|
options = None
|
||||||
@ -213,8 +213,8 @@ def main():
|
|||||||
raise BuildException("Failed to sign application")
|
raise BuildException("Failed to sign application")
|
||||||
|
|
||||||
# Zipalign it...
|
# Zipalign it...
|
||||||
p = FDroidPopen([config['zipalign'], '-v', '4', apkfile,
|
p = SdkToolsPopen(['zipalign', '-v', '4', apkfile,
|
||||||
os.path.join(output_dir, apkfilename)])
|
os.path.join(output_dir, apkfilename)])
|
||||||
if p.returncode != 0:
|
if p.returncode != 0:
|
||||||
raise BuildException("Failed to align application")
|
raise BuildException("Failed to align application")
|
||||||
os.remove(apkfile)
|
os.remove(apkfile)
|
||||||
|
46
tests/install.TestCase
Executable file
46
tests/install.TestCase
Executable file
@ -0,0 +1,46 @@
|
|||||||
|
#!/usr/bin/env python2
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
# http://www.drdobbs.com/testing/unit-testing-with-python/240165163
|
||||||
|
|
||||||
|
import inspect
|
||||||
|
import optparse
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
import unittest
|
||||||
|
|
||||||
|
localmodule = os.path.realpath(os.path.join(
|
||||||
|
os.path.dirname(inspect.getfile(inspect.currentframe())),
|
||||||
|
'..'))
|
||||||
|
print('localmodule: ' + localmodule)
|
||||||
|
if localmodule not in sys.path:
|
||||||
|
sys.path.insert(0,localmodule)
|
||||||
|
|
||||||
|
import fdroidserver.common
|
||||||
|
import fdroidserver.install
|
||||||
|
|
||||||
|
class InstallTest(unittest.TestCase):
|
||||||
|
'''fdroidserver/install.py'''
|
||||||
|
|
||||||
|
def test_devices(self):
|
||||||
|
config = dict()
|
||||||
|
config['sdk_path'] = os.getenv('ANDROID_HOME')
|
||||||
|
fdroidserver.common.config = config
|
||||||
|
config['adb'] = fdroidserver.common.find_sdk_tools_cmd('adb')
|
||||||
|
self.assertTrue(os.path.exists(config['adb']))
|
||||||
|
self.assertTrue(os.path.isfile(config['adb']))
|
||||||
|
devices = fdroidserver.install.devices()
|
||||||
|
self.assertIsInstance(devices, list, 'install.devices() did not return a list!')
|
||||||
|
for device in devices:
|
||||||
|
self.assertIsInstance(device, basestring)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
parser = optparse.OptionParser()
|
||||||
|
parser.add_option("-v", "--verbose", action="store_true", default=False,
|
||||||
|
help="Spew out even more information than normal")
|
||||||
|
(fdroidserver.install.options, args) = parser.parse_args(['--verbose'])
|
||||||
|
|
||||||
|
newSuite = unittest.TestSuite()
|
||||||
|
newSuite.addTest(unittest.makeSuite(InstallTest))
|
||||||
|
unittest.main()
|
@ -97,9 +97,9 @@ echo_header "test python getsig replacement"
|
|||||||
|
|
||||||
cd $WORKSPACE/tests/getsig
|
cd $WORKSPACE/tests/getsig
|
||||||
./make.sh
|
./make.sh
|
||||||
cd $WORKSPACE/tests
|
for testcase in $WORKSPACE/tests/*.TestCase; do
|
||||||
./common.TestCase
|
$testcase
|
||||||
./update.TestCase
|
done
|
||||||
|
|
||||||
|
|
||||||
#------------------------------------------------------------------------------#
|
#------------------------------------------------------------------------------#
|
||||||
|
Loading…
Reference in New Issue
Block a user