• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#!/usr/bin/env python3
2
3from __future__ import print_function
4
5import os
6import sys
7sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
8
9import unittest
10
11from vndk_definition_tool import NDK_LIBS
12
13
14class NDKLibDictTest(unittest.TestCase):
15    def test_is_ll_ndk(self):
16        self.assertTrue(NDK_LIBS.is_ll_ndk('/system/lib/libc.so'))
17        self.assertTrue(NDK_LIBS.is_ll_ndk('/system/lib/libdl.so'))
18        self.assertTrue(NDK_LIBS.is_ll_ndk('/system/lib/liblog.so'))
19        self.assertTrue(NDK_LIBS.is_ll_ndk('/system/lib/libm.so'))
20        self.assertTrue(NDK_LIBS.is_ll_ndk('/system/lib/libstdc++.so'))
21        self.assertTrue(NDK_LIBS.is_ll_ndk('/system/lib/libvndksupport.so'))
22        self.assertTrue(NDK_LIBS.is_ll_ndk('/system/lib/libandroid_net.so'))
23        self.assertTrue(NDK_LIBS.is_ll_ndk('/system/lib/libz.so'))
24
25        self.assertTrue(NDK_LIBS.is_ll_ndk('/system/lib64/libc.so'))
26        self.assertTrue(NDK_LIBS.is_ll_ndk('/system/lib64/libdl.so'))
27        self.assertTrue(NDK_LIBS.is_ll_ndk('/system/lib64/liblog.so'))
28        self.assertTrue(NDK_LIBS.is_ll_ndk('/system/lib64/libm.so'))
29        self.assertTrue(NDK_LIBS.is_ll_ndk('/system/lib64/libstdc++.so'))
30        self.assertTrue(NDK_LIBS.is_ll_ndk('/system/lib64/libvndksupport.so'))
31        self.assertTrue(NDK_LIBS.is_ll_ndk('/system/lib64/libandroid_net.so'))
32        self.assertTrue(NDK_LIBS.is_ll_ndk('/system/lib64/libz.so'))
33
34        self.assertFalse(NDK_LIBS.is_ll_ndk('/system/lib/libm'))
35
36    def test_is_sp_ndk(self):
37        self.assertTrue(NDK_LIBS.is_sp_ndk('/system/lib/libEGL.so'))
38        self.assertTrue(NDK_LIBS.is_sp_ndk('/system/lib/libGLESv1_CM.so'))
39        self.assertTrue(NDK_LIBS.is_sp_ndk('/system/lib/libGLESv2.so'))
40        self.assertTrue(NDK_LIBS.is_sp_ndk('/system/lib/libGLESv3.so'))
41        self.assertTrue(NDK_LIBS.is_sp_ndk('/system/lib/libnativewindow.so'))
42        self.assertTrue(NDK_LIBS.is_sp_ndk('/system/lib/libsync.so'))
43        self.assertTrue(NDK_LIBS.is_sp_ndk('/system/lib/libvulkan.so'))
44
45        self.assertTrue(NDK_LIBS.is_sp_ndk('/system/lib64/libEGL.so'))
46        self.assertTrue(NDK_LIBS.is_sp_ndk('/system/lib64/libGLESv1_CM.so'))
47        self.assertTrue(NDK_LIBS.is_sp_ndk('/system/lib64/libGLESv2.so'))
48        self.assertTrue(NDK_LIBS.is_sp_ndk('/system/lib64/libGLESv3.so'))
49        self.assertTrue(NDK_LIBS.is_sp_ndk('/system/lib64/libnativewindow.so'))
50        self.assertTrue(NDK_LIBS.is_sp_ndk('/system/lib64/libsync.so'))
51        self.assertTrue(NDK_LIBS.is_sp_ndk('/system/lib64/libvulkan.so'))
52
53        # Vendor libraries with the same name are still not SP-NDK.
54        self.assertFalse(NDK_LIBS.is_sp_ndk('/vendor/lib64/libEGL.so'))
55        self.assertFalse(NDK_LIBS.is_sp_ndk('/vendor/lib64/libGLESv1_CM.so'))
56        self.assertFalse(NDK_LIBS.is_sp_ndk('/vendor/lib64/libGLESv2.so'))
57        self.assertFalse(NDK_LIBS.is_sp_ndk('/vendor/lib64/libGLESv3.so'))
58
59        self.assertFalse(NDK_LIBS.is_sp_ndk('/vendor/lib64/egl/libEGL.so'))
60        self.assertFalse(NDK_LIBS.is_sp_ndk('/vendor/lib64/egl/libGLESv1_CM.so'))
61        self.assertFalse(NDK_LIBS.is_sp_ndk('/vendor/lib64/egl/libGLESv2.so'))
62        self.assertFalse(NDK_LIBS.is_sp_ndk('/vendor/lib64/egl/libGLESv3.so'))
63
64        self.assertFalse(NDK_LIBS.is_sp_ndk('/vendor/lib64/libvulkan.so'))
65        self.assertFalse(NDK_LIBS.is_sp_ndk('/vendor/lib64/vulkan.so'))
66
67        # LL-NDK is not SP-NDK.
68        self.assertFalse(NDK_LIBS.is_sp_ndk('/system/lib/libc.so'))
69
70    def test_is_hlndk(self):
71        self.assertTrue(NDK_LIBS.is_hl_ndk('/system/lib/libOpenMAXAL.so'))
72        self.assertTrue(NDK_LIBS.is_hl_ndk('/system/lib/libOpenSLES.so'))
73        self.assertTrue(NDK_LIBS.is_hl_ndk('/system/lib/libandroid.so'))
74        self.assertTrue(NDK_LIBS.is_hl_ndk('/system/lib/libcamera2ndk.so'))
75        self.assertTrue(NDK_LIBS.is_hl_ndk('/system/lib/libjnigraphics.so'))
76        self.assertTrue(NDK_LIBS.is_hl_ndk('/system/lib/libmediandk.so'))
77
78        self.assertTrue(NDK_LIBS.is_hl_ndk('/system/lib64/libOpenMAXAL.so'))
79        self.assertTrue(NDK_LIBS.is_hl_ndk('/system/lib64/libOpenSLES.so'))
80        self.assertTrue(NDK_LIBS.is_hl_ndk('/system/lib64/libandroid.so'))
81        self.assertTrue(NDK_LIBS.is_hl_ndk('/system/lib64/libcamera2ndk.so'))
82        self.assertTrue(NDK_LIBS.is_hl_ndk('/system/lib64/libjnigraphics.so'))
83        self.assertTrue(NDK_LIBS.is_hl_ndk('/system/lib64/libmediandk.so'))
84
85        # LL-NDK and SP-NDK are not HL-NDK.
86        self.assertFalse(NDK_LIBS.is_hl_ndk('/system/lib/libc.so'))
87        self.assertFalse(NDK_LIBS.is_hl_ndk('/system/lib/libEGL.so'))
88        self.assertFalse(NDK_LIBS.is_hl_ndk('/system/lib/libGLESv1_CM.so'))
89        self.assertFalse(NDK_LIBS.is_hl_ndk('/system/lib/libGLESv2.so'))
90        self.assertFalse(NDK_LIBS.is_hl_ndk('/system/lib/libGLESv3.so'))
91        self.assertFalse(NDK_LIBS.is_hl_ndk('/system/lib/libvulkan.so'))
92
93        self.assertFalse(NDK_LIBS.is_hl_ndk('/system/lib64/libc.so'))
94        self.assertFalse(NDK_LIBS.is_hl_ndk('/system/lib64/libEGL.so'))
95        self.assertFalse(NDK_LIBS.is_hl_ndk('/system/lib64/libGLESv1_CM.so'))
96        self.assertFalse(NDK_LIBS.is_hl_ndk('/system/lib64/libGLESv2.so'))
97        self.assertFalse(NDK_LIBS.is_hl_ndk('/system/lib64/libGLESv3.so'))
98        self.assertFalse(NDK_LIBS.is_hl_ndk('/system/lib64/libvulkan.so'))
99
100    def test_is_ndk(self):
101        # LL-NDK
102        self.assertTrue(NDK_LIBS.is_ndk('/system/lib/libc.so'))
103        self.assertTrue(NDK_LIBS.is_ndk('/system/lib/libdl.so'))
104        self.assertTrue(NDK_LIBS.is_ndk('/system/lib/liblog.so'))
105        self.assertTrue(NDK_LIBS.is_ndk('/system/lib/libm.so'))
106        self.assertTrue(NDK_LIBS.is_ndk('/system/lib/libstdc++.so'))
107        self.assertTrue(NDK_LIBS.is_ndk('/system/lib/libvndksupport.so'))
108        self.assertTrue(NDK_LIBS.is_ndk('/system/lib/libandroid_net.so'))
109        self.assertTrue(NDK_LIBS.is_ndk('/system/lib/libz.so'))
110
111        self.assertTrue(NDK_LIBS.is_ndk('/system/lib64/libc.so'))
112        self.assertTrue(NDK_LIBS.is_ndk('/system/lib64/libdl.so'))
113        self.assertTrue(NDK_LIBS.is_ndk('/system/lib64/liblog.so'))
114        self.assertTrue(NDK_LIBS.is_ndk('/system/lib64/libm.so'))
115        self.assertTrue(NDK_LIBS.is_ndk('/system/lib64/libstdc++.so'))
116        self.assertTrue(NDK_LIBS.is_ndk('/system/lib64/libvndksupport.so'))
117        self.assertTrue(NDK_LIBS.is_ndk('/system/lib64/libandroid_net.so'))
118        self.assertTrue(NDK_LIBS.is_ndk('/system/lib64/libz.so'))
119
120        # SP-NDK
121        self.assertTrue(NDK_LIBS.is_ndk('/system/lib/libEGL.so'))
122        self.assertTrue(NDK_LIBS.is_ndk('/system/lib/libGLESv1_CM.so'))
123        self.assertTrue(NDK_LIBS.is_ndk('/system/lib/libGLESv2.so'))
124        self.assertTrue(NDK_LIBS.is_ndk('/system/lib/libGLESv3.so'))
125
126        self.assertTrue(NDK_LIBS.is_ndk('/system/lib64/libEGL.so'))
127        self.assertTrue(NDK_LIBS.is_ndk('/system/lib64/libGLESv1_CM.so'))
128        self.assertTrue(NDK_LIBS.is_ndk('/system/lib64/libGLESv2.so'))
129        self.assertTrue(NDK_LIBS.is_ndk('/system/lib64/libGLESv3.so'))
130
131        # HL-NDK
132        self.assertTrue(NDK_LIBS.is_ndk('/system/lib/libOpenMAXAL.so'))
133        self.assertTrue(NDK_LIBS.is_ndk('/system/lib/libOpenSLES.so'))
134        self.assertTrue(NDK_LIBS.is_ndk('/system/lib/libandroid.so'))
135        self.assertTrue(NDK_LIBS.is_ndk('/system/lib/libcamera2ndk.so'))
136        self.assertTrue(NDK_LIBS.is_ndk('/system/lib/libjnigraphics.so'))
137        self.assertTrue(NDK_LIBS.is_ndk('/system/lib/libmediandk.so'))
138        self.assertTrue(NDK_LIBS.is_ndk('/system/lib/libvulkan.so'))
139
140        self.assertTrue(NDK_LIBS.is_ndk('/system/lib64/libOpenMAXAL.so'))
141        self.assertTrue(NDK_LIBS.is_ndk('/system/lib64/libOpenSLES.so'))
142        self.assertTrue(NDK_LIBS.is_ndk('/system/lib64/libandroid.so'))
143        self.assertTrue(NDK_LIBS.is_ndk('/system/lib64/libcamera2ndk.so'))
144        self.assertTrue(NDK_LIBS.is_ndk('/system/lib64/libjnigraphics.so'))
145        self.assertTrue(NDK_LIBS.is_ndk('/system/lib64/libmediandk.so'))
146        self.assertTrue(NDK_LIBS.is_ndk('/system/lib64/libvulkan.so'))
147
148    def test_classify(self):
149        self.assertEqual(NDK_LIBS.NOT_NDK,
150                         NDK_LIBS.classify('/system/lib/libfoo.so'))
151        self.assertEqual(NDK_LIBS.LL_NDK,
152                         NDK_LIBS.classify('/system/lib/libc.so'))
153        self.assertEqual(NDK_LIBS.SP_NDK,
154                         NDK_LIBS.classify('/system/lib/libEGL.so'))
155        self.assertEqual(NDK_LIBS.HL_NDK,
156                         NDK_LIBS.classify('/system/lib/libmediandk.so'))
157
158        self.assertEqual(NDK_LIBS.NOT_NDK,
159                         NDK_LIBS.classify('/system/lib64/libfoo.so'))
160        self.assertEqual(NDK_LIBS.LL_NDK,
161                         NDK_LIBS.classify('/system/lib64/libc.so'))
162        self.assertEqual(NDK_LIBS.SP_NDK,
163                         NDK_LIBS.classify('/system/lib64/libEGL.so'))
164        self.assertEqual(NDK_LIBS.HL_NDK,
165                         NDK_LIBS.classify('/system/lib64/libmediandk.so'))
166
167
168if __name__ == '__main__':
169    unittest.main()
170