blob: 2ff5ac54a11359f901d1a1d3c64a053ce9403775 [file] [log] [blame]
Ulya Trafimovich5f364b62020-06-30 12:39:01 +01001#!/usr/bin/env python
2#
3# Copyright (C) 2020 The Android Open Source Project
4#
5# Licensed under the Apache License, Version 2.0 (the "License");
6# you may not use this file except in compliance with the License.
7# You may obtain a copy of the License at
8#
9# http://www.apache.org/licenses/LICENSE-2.0
10#
11# Unless required by applicable law or agreed to in writing, software
12# distributed under the License is distributed on an "AS IS" BASIS,
13# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14# See the License for the specific language governing permissions and
15# limitations under the License.
16#
17"""Unit tests for construct_context.py."""
18
19import sys
20import unittest
21
22import construct_context as cc
23
24sys.dont_write_bytecode = True
25
Spandan Dasec555f12021-08-25 18:42:40 +000026
Ulya Trafimovich5f364b62020-06-30 12:39:01 +010027def construct_contexts(arglist):
Spandan Dasec555f12021-08-25 18:42:40 +000028 args = cc.parse_args(arglist)
29 return cc.construct_contexts(args)
30
Ulya Trafimovich5f364b62020-06-30 12:39:01 +010031
Ulya Trafimovich8130c482020-10-07 15:17:13 +010032contexts = [
Spandan Dasec555f12021-08-25 18:42:40 +000033 '--host-context-for-sdk',
34 '28',
35 'PCL[out/zdir/z.jar]',
36 '--target-context-for-sdk',
37 '28',
38 'PCL[/system/z.jar]',
39 '--host-context-for-sdk',
40 '29',
41 'PCL[out/xdir/x.jar]#PCL[out/ydir/y.jar]',
42 '--target-context-for-sdk',
43 '29',
44 'PCL[/system/x.jar]#PCL[/product/y.jar]',
45 '--host-context-for-sdk',
46 'any',
47 'PCL[out/adir/a.jar]#PCL[out/bdir/b.jar]',
48 '--target-context-for-sdk',
49 'any',
50 'PCL[/system/a.jar]#PCL[/product/b.jar]',
Ulya Trafimovich5f364b62020-06-30 12:39:01 +010051]
52
Spandan Dasec555f12021-08-25 18:42:40 +000053#pylint: disable=line-too-long
Ulya Trafimovich5f364b62020-06-30 12:39:01 +010054class ConstructContextTest(unittest.TestCase):
Ulya Trafimovich5f364b62020-06-30 12:39:01 +010055
Spandan Dasec555f12021-08-25 18:42:40 +000056 def test_construct_context_28(self):
57 args = ['--target-sdk-version', '28'] + contexts
58 result = construct_contexts(args)
59 expect = (
60 '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]}'
61 ' ; '
62 '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]}')
63 self.assertEqual(result, expect)
Ulya Trafimovich5f364b62020-06-30 12:39:01 +010064
Spandan Dasec555f12021-08-25 18:42:40 +000065 def test_construct_context_29(self):
66 args = ['--target-sdk-version', '29'] + contexts
67 result = construct_contexts(args)
68 expect = (
69 'class_loader_context_arg=--class-loader-context=PCL[]{PCL[out/adir/a.jar]#PCL[out/bdir/b.jar]}'
70 ' ; '
71 'stored_class_loader_context_arg=--stored-class-loader-context=PCL[]{PCL[/system/a.jar]#PCL[/product/b.jar]}')
72 self.assertEqual(result, expect)
73
74 def test_construct_context_S(self):
75 args = ['--target-sdk-version', 'S'] + contexts
76 result = construct_contexts(args)
77 expect = (
78 'class_loader_context_arg=--class-loader-context=PCL[]{PCL[out/adir/a.jar]#PCL[out/bdir/b.jar]}'
79 ' ; '
80 'stored_class_loader_context_arg=--stored-class-loader-context=PCL[]{PCL[/system/a.jar]#PCL[/product/b.jar]}')
81 self.assertEqual(result, expect)
82#pylint: enable=line-too-long
Ulya Trafimovich5f364b62020-06-30 12:39:01 +010083
84if __name__ == '__main__':
Spandan Dasec555f12021-08-25 18:42:40 +000085 unittest.main(verbosity=2)