mirror of
https://github.com/ManchildProductions/UXP-Fixed.git
synced 2026-07-08 14:58:55 +00:00
129 lines
5.0 KiB
Python
129 lines
5.0 KiB
Python
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
|
|
import json
|
|
import optparse
|
|
import os
|
|
import re
|
|
import sys
|
|
from threading import RLock
|
|
|
|
from tps import TPSTestRunner
|
|
|
|
|
|
def main():
|
|
parser = optparse.OptionParser()
|
|
parser.add_option('--binary',
|
|
action='store',
|
|
type='string',
|
|
dest='binary',
|
|
default=None,
|
|
help='path to the Firefox binary, specified either as '
|
|
'a local file or a url; if omitted, the PATH '
|
|
'will be searched;')
|
|
parser.add_option('--configfile',
|
|
action='store',
|
|
type='string',
|
|
dest='configfile',
|
|
default=None,
|
|
help='path to the config file to use default: %default]')
|
|
parser.add_option('--debug',
|
|
action='store_true',
|
|
dest='debug',
|
|
default=False,
|
|
help='run in debug mode')
|
|
parser.add_option('--ignore-unused-engines',
|
|
default=False,
|
|
action='store_true',
|
|
dest='ignore_unused_engines',
|
|
help='If defined, do not load unused engines in individual tests.'
|
|
' Has no effect for pulse monitor.')
|
|
parser.add_option('--logfile',
|
|
action='store',
|
|
type='string',
|
|
dest='logfile',
|
|
default='tps.log',
|
|
help='path to the log file [default: %default]')
|
|
parser.add_option('--mobile',
|
|
action='store_true',
|
|
dest='mobile',
|
|
default=False,
|
|
help='run with mobile settings')
|
|
parser.add_option('--pulsefile',
|
|
action='store',
|
|
type='string',
|
|
dest='pulsefile',
|
|
default=None,
|
|
help='path to file containing a pulse message in '
|
|
'json format that you want to inject into the monitor')
|
|
parser.add_option('--resultfile',
|
|
action='store',
|
|
type='string',
|
|
dest='resultfile',
|
|
default='tps_result.json',
|
|
help='path to the result file [default: %default]')
|
|
parser.add_option('--testfile',
|
|
action='store',
|
|
type='string',
|
|
dest='testfile',
|
|
default='all_tests.json',
|
|
help='path to the test file to run [default: %default]')
|
|
parser.add_option('--stop-on-error',
|
|
action='store_true',
|
|
dest='stop_on_error',
|
|
help='stop running tests after the first failure')
|
|
(options, args) = parser.parse_args()
|
|
|
|
configfile = options.configfile
|
|
if configfile is None:
|
|
virtual_env = os.environ.get('VIRTUAL_ENV')
|
|
if virtual_env:
|
|
configfile = os.path.join(virtual_env, 'config.json')
|
|
if configfile is None or not os.access(configfile, os.F_OK):
|
|
raise Exception('Unable to find config.json in a VIRTUAL_ENV; you must '
|
|
'specify a config file using the --configfile option')
|
|
|
|
# load the config file
|
|
f = open(configfile, 'r')
|
|
configcontent = f.read()
|
|
f.close()
|
|
config = json.loads(configcontent)
|
|
testfile = os.path.join(config.get('testdir', ''), options.testfile)
|
|
|
|
rlock = RLock()
|
|
|
|
print 'using result file', options.resultfile
|
|
|
|
extensionDir = config.get('extensiondir')
|
|
if not extensionDir or extensionDir == '__EXTENSIONDIR__':
|
|
extensionDir = os.path.join(os.getcwd(), '..', '..',
|
|
'services', 'sync', 'tps', 'extensions')
|
|
else:
|
|
if sys.platform == 'win32':
|
|
# replace msys-style paths with proper Windows paths
|
|
m = re.match('^\/\w\/', extensionDir)
|
|
if m:
|
|
extensionDir = '%s:/%s' % (m.group(0)[1:2], extensionDir[3:])
|
|
extensionDir = extensionDir.replace('/', '\\')
|
|
|
|
TPS = TPSTestRunner(extensionDir,
|
|
binary=options.binary,
|
|
config=config,
|
|
debug=options.debug,
|
|
ignore_unused_engines=options.ignore_unused_engines,
|
|
logfile=options.logfile,
|
|
mobile=options.mobile,
|
|
resultfile=options.resultfile,
|
|
rlock=rlock,
|
|
testfile=testfile,
|
|
stop_on_error=options.stop_on_error,
|
|
)
|
|
TPS.run_tests()
|
|
|
|
if TPS.numfailed > 0 or TPS.numpassed == 0:
|
|
sys.exit(1)
|
|
|
|
if __name__ == '__main__':
|
|
main()
|