| #!/usr/bin/env python3 | |
| # Copyright 2026 The PDFium Authors | |
| # Use of this source code is governed by a BSD-style license that can be | |
| # found in the LICENSE file. | |
| """Tests for libclang_check.""" | |
| import unittest | |
| from libclang_check import CheckDeps | |
| class LibclangCheckTest(unittest.TestCase): | |
| def testSuccess(self): | |
| deps = ''' | |
| deps = { | |
| 'third_party/llvm-libclang': { | |
| 'objects': [ | |
| { | |
| 'object_name': 'Linux_x64/rust-libclang-1.tar.xz', | |
| }, | |
| { | |
| 'object_name': 'Win/rust-libclang-1.tar.xz', | |
| }, | |
| ], | |
| }, | |
| 'third_party/rust-toolchain': { | |
| 'objects': [ | |
| { | |
| 'object_name': 'Linux_x64/rust-toolchain-1.tar.xz', | |
| }, | |
| { | |
| 'object_name': 'Win/rust-toolchain-1.tar.xz', | |
| }, | |
| ], | |
| }, | |
| } | |
| ''' | |
| self.assertIsNone(CheckDeps(deps)) | |
| def testRevisionMismatch(self): | |
| deps = ''' | |
| deps = { | |
| 'third_party/llvm-libclang': { | |
| 'objects': [ | |
| { | |
| 'object_name': 'Linux_x64/rust-libclang-1.tar.xz', | |
| }, | |
| ], | |
| }, | |
| 'third_party/rust-toolchain': { | |
| 'objects': [ | |
| { | |
| 'object_name': 'Linux_x64/rust-toolchain-2.tar.xz', | |
| }, | |
| ], | |
| }, | |
| } | |
| ''' | |
| self.assertEqual( | |
| 'Mismatch between rust-libclang and rust-toolchain: ' | |
| "[('Linux_x64', '1')] vs. [('Linux_x64', '2')]", CheckDeps(deps)) | |
| def testMissingLibclang(self): | |
| deps = ''' | |
| deps = { | |
| 'third_party/rust-toolchain': { | |
| 'objects': [ | |
| { | |
| 'object_name': 'Linux_x64/rust-toolchain-1.tar.xz', | |
| }, | |
| ], | |
| }, | |
| } | |
| ''' | |
| self.assertEqual('Cannot parse rust-libclang revisions', CheckDeps(deps)) | |
| def testMissingRustToolchain(self): | |
| deps = ''' | |
| deps = { | |
| 'third_party/llvm-libclang': { | |
| 'objects': [ | |
| { | |
| 'object_name': 'Linux_x64/rust-libclang-1.tar.xz', | |
| }, | |
| ], | |
| }, | |
| } | |
| ''' | |
| self.assertEqual('Cannot parse rust-toolchain revisions', CheckDeps(deps)) | |
| if __name__ == '__main__': | |
| unittest.main() |