Apply pylint to scripts/construct_context*.py
1. Run pyformat scripts/construct_context.py -s 4 --force_quote_type none -i to fix formatting 2. Wrap #pylint: [disable|enable]=line-too-long in tests Test: m construct_context construct_context_test Test: pylint --rcfile tools/repohooks/tools/pylintrc build/soong/scripts/construct_context.py build/soong/scripts/construct_context_test.py Bug: 195738175 Change-Id: I2e756b17aae3e70ddaa03356c78f1f2f85c0f6a5
This commit is contained in:
@@ -27,20 +27,35 @@ from manifest import compare_version_gt
|
||||
def parse_args(args):
|
||||
"""Parse commandline arguments."""
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument('--target-sdk-version', default='', dest='sdk',
|
||||
parser.add_argument(
|
||||
'--target-sdk-version',
|
||||
default='',
|
||||
dest='sdk',
|
||||
help='specify target SDK version (as it appears in the manifest)')
|
||||
parser.add_argument('--host-context-for-sdk', dest='host_contexts',
|
||||
action='append', nargs=2, metavar=('sdk','context'),
|
||||
parser.add_argument(
|
||||
'--host-context-for-sdk',
|
||||
dest='host_contexts',
|
||||
action='append',
|
||||
nargs=2,
|
||||
metavar=('sdk', 'context'),
|
||||
help='specify context on host for a given SDK version or "any" version')
|
||||
parser.add_argument('--target-context-for-sdk', dest='target_contexts',
|
||||
action='append', nargs=2, metavar=('sdk','context'),
|
||||
help='specify context on target for a given SDK version or "any" version')
|
||||
parser.add_argument(
|
||||
'--target-context-for-sdk',
|
||||
dest='target_contexts',
|
||||
action='append',
|
||||
nargs=2,
|
||||
metavar=('sdk', 'context'),
|
||||
help='specify context on target for a given SDK version or "any" '
|
||||
'version'
|
||||
)
|
||||
return parser.parse_args(args)
|
||||
|
||||
|
||||
# Special keyword that means that the context should be added to class loader
|
||||
# context regardless of the target SDK version.
|
||||
any_sdk = 'any'
|
||||
|
||||
|
||||
# We assume that the order of context arguments passed to this script is
|
||||
# correct (matches the order computed by package manager). It is possible to
|
||||
# sort them here, but Soong needs to use deterministic order anyway, so it can
|
||||
@@ -52,12 +67,17 @@ def construct_context(versioned_contexts, target_sdk):
|
||||
context.append(ctx)
|
||||
return context
|
||||
|
||||
|
||||
def construct_contexts(args):
|
||||
host_context = construct_context(args.host_contexts, args.sdk)
|
||||
target_context = construct_context(args.target_contexts, args.sdk)
|
||||
context_sep = '#'
|
||||
return ('class_loader_context_arg=--class-loader-context=PCL[]{%s} ; ' % context_sep.join(host_context) +
|
||||
'stored_class_loader_context_arg=--stored-class-loader-context=PCL[]{%s}' % context_sep.join(target_context))
|
||||
return (
|
||||
'class_loader_context_arg=--class-loader-context=PCL[]{%s} ; ' %
|
||||
context_sep.join(host_context) +
|
||||
'stored_class_loader_context_arg=--stored-class-loader-context=PCL[]{%s}' #pylint: disable=line-too-long
|
||||
% context_sep.join(target_context))
|
||||
|
||||
|
||||
def main():
|
||||
"""Program entry point."""
|
||||
@@ -77,5 +97,6 @@ def main():
|
||||
print('error: ' + str(err), file=sys.stderr)
|
||||
sys.exit(-1)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
@@ -23,53 +23,63 @@ import construct_context as cc
|
||||
|
||||
sys.dont_write_bytecode = True
|
||||
|
||||
|
||||
def construct_contexts(arglist):
|
||||
args = cc.parse_args(arglist)
|
||||
return cc.construct_contexts(args)
|
||||
|
||||
|
||||
contexts = [
|
||||
'--host-context-for-sdk', '28', 'PCL[out/zdir/z.jar]',
|
||||
'--target-context-for-sdk', '28', 'PCL[/system/z.jar]',
|
||||
'--host-context-for-sdk', '29', 'PCL[out/xdir/x.jar]#PCL[out/ydir/y.jar]',
|
||||
'--target-context-for-sdk', '29', 'PCL[/system/x.jar]#PCL[/product/y.jar]',
|
||||
'--host-context-for-sdk', 'any', 'PCL[out/adir/a.jar]#PCL[out/bdir/b.jar]',
|
||||
'--target-context-for-sdk', 'any', 'PCL[/system/a.jar]#PCL[/product/b.jar]',
|
||||
'--host-context-for-sdk',
|
||||
'28',
|
||||
'PCL[out/zdir/z.jar]',
|
||||
'--target-context-for-sdk',
|
||||
'28',
|
||||
'PCL[/system/z.jar]',
|
||||
'--host-context-for-sdk',
|
||||
'29',
|
||||
'PCL[out/xdir/x.jar]#PCL[out/ydir/y.jar]',
|
||||
'--target-context-for-sdk',
|
||||
'29',
|
||||
'PCL[/system/x.jar]#PCL[/product/y.jar]',
|
||||
'--host-context-for-sdk',
|
||||
'any',
|
||||
'PCL[out/adir/a.jar]#PCL[out/bdir/b.jar]',
|
||||
'--target-context-for-sdk',
|
||||
'any',
|
||||
'PCL[/system/a.jar]#PCL[/product/b.jar]',
|
||||
]
|
||||
|
||||
#pylint: disable=line-too-long
|
||||
class ConstructContextTest(unittest.TestCase):
|
||||
|
||||
def test_construct_context_28(self):
|
||||
args = ['--target-sdk-version', '28'] + contexts
|
||||
result = construct_contexts(args)
|
||||
expect = ('class_loader_context_arg=--class-loader-context=PCL[]{PCL[out/xdir/x.jar]'
|
||||
'#PCL[out/ydir/y.jar]'
|
||||
'#PCL[out/adir/a.jar]'
|
||||
'#PCL[out/bdir/b.jar]}'
|
||||
expect = (
|
||||
'class_loader_context_arg=--class-loader-context=PCL[]{PCL[out/xdir/x.jar]#PCL[out/ydir/y.jar]#PCL[out/adir/a.jar]#PCL[out/bdir/b.jar]}'
|
||||
' ; '
|
||||
'stored_class_loader_context_arg=--stored-class-loader-context=PCL[]{PCL[/system/x.jar]'
|
||||
'#PCL[/product/y.jar]'
|
||||
'#PCL[/system/a.jar]'
|
||||
'#PCL[/product/b.jar]}')
|
||||
'stored_class_loader_context_arg=--stored-class-loader-context=PCL[]{PCL[/system/x.jar]#PCL[/product/y.jar]#PCL[/system/a.jar]#PCL[/product/b.jar]}')
|
||||
self.assertEqual(result, expect)
|
||||
|
||||
def test_construct_context_29(self):
|
||||
args = ['--target-sdk-version', '29'] + contexts
|
||||
result = construct_contexts(args)
|
||||
expect = ('class_loader_context_arg=--class-loader-context=PCL[]{PCL[out/adir/a.jar]'
|
||||
'#PCL[out/bdir/b.jar]}'
|
||||
expect = (
|
||||
'class_loader_context_arg=--class-loader-context=PCL[]{PCL[out/adir/a.jar]#PCL[out/bdir/b.jar]}'
|
||||
' ; '
|
||||
'stored_class_loader_context_arg=--stored-class-loader-context=PCL[]{PCL[/system/a.jar]'
|
||||
'#PCL[/product/b.jar]}')
|
||||
'stored_class_loader_context_arg=--stored-class-loader-context=PCL[]{PCL[/system/a.jar]#PCL[/product/b.jar]}')
|
||||
self.assertEqual(result, expect)
|
||||
|
||||
def test_construct_context_S(self):
|
||||
args = ['--target-sdk-version', 'S'] + contexts
|
||||
result = construct_contexts(args)
|
||||
expect = ('class_loader_context_arg=--class-loader-context=PCL[]{PCL[out/adir/a.jar]'
|
||||
'#PCL[out/bdir/b.jar]}'
|
||||
expect = (
|
||||
'class_loader_context_arg=--class-loader-context=PCL[]{PCL[out/adir/a.jar]#PCL[out/bdir/b.jar]}'
|
||||
' ; '
|
||||
'stored_class_loader_context_arg=--stored-class-loader-context=PCL[]{PCL[/system/a.jar]'
|
||||
'#PCL[/product/b.jar]}')
|
||||
'stored_class_loader_context_arg=--stored-class-loader-context=PCL[]{PCL[/system/a.jar]#PCL[/product/b.jar]}')
|
||||
self.assertEqual(result, expect)
|
||||
#pylint: enable=line-too-long
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main(verbosity=2)
|
||||
|
Reference in New Issue
Block a user