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