| 103 | self.assertEqual(path_file.read(), expectedContent) |
| 104 | |
| 105 | def run_cmake( |
| 106 | self, |
| 107 | cmake_args: Optional[List[str]] = None, |
| 108 | error_contains: Optional[str] = None, |
| 109 | ): |
| 110 | cmake_args = (cmake_args or []) + ["--no-warn-unused-cli"] |
| 111 | |
| 112 | result = subprocess.run( |
| 113 | ["cmake", *cmake_args, "-S", ".", "-B", "cmake-out"], |
| 114 | cwd=self.workspace, |
| 115 | stdout=subprocess.DEVNULL, |
| 116 | stderr=subprocess.PIPE if error_contains else None, |
| 117 | check=False, |
| 118 | ) |
| 119 | |
| 120 | if error_contains is not None: |
| 121 | self.assertNotEqual(result.returncode, 0) |
| 122 | actual_error = result.stderr.decode("utf-8") |
| 123 | self.assertTrue( |
| 124 | error_contains in actual_error, |
| 125 | f"\n\nWanted: {error_contains}\n\nActual: {actual_error}", |
| 126 | ) |
| 127 | else: |
| 128 | self.assertEqual(result.returncode, 0) |
| 129 | self.assertTrue(os.path.exists(os.path.join(self.workspace, "cmake-out"))) |
| 130 | |
| 131 | def assert_cmake_cache( |
| 132 | self, |