Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit af44faad authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "Apply pylint to scripts/construct_context*.py"

parents 9da0a435 ec555f1a
Loading
Loading
Loading
Loading
+59 −38
Original line number Diff line number Diff line
@@ -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()
+50 −40
Original line number Diff line number Diff line
@@ -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)