|  | # Copyright 2016 The Bazel Authors. All rights reserved. | 
|  | # | 
|  | # Licensed under the Apache License, Version 2.0 (the "License"); | 
|  | # you may not use this file except in compliance with the License. | 
|  | # You may obtain a copy of the License at | 
|  | # | 
|  | #    http://www.apache.org/licenses/LICENSE-2.0 | 
|  | # | 
|  | # Unless required by applicable law or agreed to in writing, software | 
|  | # distributed under the License is distributed on an "AS IS" BASIS, | 
|  | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 
|  | # See the License for the specific language governing permissions and | 
|  | # limitations under the License. | 
|  |  | 
|  | """Tests for aar_native_libs_zip_creator.""" | 
|  |  | 
|  | import io | 
|  | import unittest | 
|  | import zipfile | 
|  |  | 
|  | from tools.android import aar_native_libs_zip_creator | 
|  |  | 
|  |  | 
|  | class AarNativeLibsZipCreatorTest(unittest.TestCase): | 
|  | """Unit tests for aar_native_libs_zip_creator.py.""" | 
|  |  | 
|  | def testAarWithNoLibs(self): | 
|  | aar = zipfile.ZipFile(io.BytesIO(), "w") | 
|  | outzip = zipfile.ZipFile(io.BytesIO(), "w") | 
|  | aar_native_libs_zip_creator.CreateNativeLibsZip(aar, "x86", outzip) | 
|  | self.assertEquals([], outzip.namelist()) | 
|  |  | 
|  | def testAarWithMissingLibs(self): | 
|  | aar = zipfile.ZipFile(io.BytesIO(), "w") | 
|  | aar.writestr("jni/armeabi/foo.so", "") | 
|  | outzip = zipfile.ZipFile(io.BytesIO(), "w") | 
|  | self.assertRaises( | 
|  | aar_native_libs_zip_creator.UnsupportedArchitectureException, | 
|  | aar_native_libs_zip_creator.CreateNativeLibsZip, | 
|  | aar, "x86", outzip) | 
|  |  | 
|  | def testAarWithAllLibs(self): | 
|  | aar = zipfile.ZipFile(io.BytesIO(), "w") | 
|  | aar.writestr("jni/x86/foo.so", "") | 
|  | aar.writestr("jni/armeabi/foo.so", "") | 
|  | outzip = zipfile.ZipFile(io.BytesIO(), "w") | 
|  | aar_native_libs_zip_creator.CreateNativeLibsZip(aar, "x86", outzip) | 
|  | self.assertIn("lib/x86/foo.so", outzip.namelist()) | 
|  | self.assertNotIn("lib/armeabi/foo.so", outzip.namelist()) | 
|  |  | 
|  |  | 
|  | if __name__ == "__main__": | 
|  | unittest.main() |