diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php --- a/src/__phutil_library_map__.php +++ b/src/__phutil_library_map__.php @@ -209,6 +209,7 @@ 'PhutilLexerSyntaxHighlighter' => 'markup/syntax/highlighter/PhutilLexerSyntaxHighlighter.php', 'PhutilLibraryConflictException' => 'moduleutils/PhutilLibraryConflictException.php', 'PhutilLibraryMapBuilder' => 'moduleutils/PhutilLibraryMapBuilder.php', + 'PhutilLibraryTestCase' => '__tests__/PhutilLibraryTestCase.php', 'PhutilLipsumContextFreeGrammar' => 'grammar/PhutilLipsumContextFreeGrammar.php', 'PhutilLock' => 'filesystem/PhutilLock.php', 'PhutilLockException' => 'filesystem/PhutilLockException.php', @@ -605,7 +606,7 @@ 'PhutilIPAddress' => 'Phobject', 'PhutilIPAddressTestCase' => 'PhutilTestCase', 'PhutilInRequestKeyValueCache' => 'PhutilKeyValueCache', - 'PhutilInfrastructureTestCase' => 'PhutilTestCase', + 'PhutilInfrastructureTestCase' => 'PhutilLibraryTestCase', 'PhutilInvalidRuleParserGeneratorException' => 'PhutilParserGeneratorException', 'PhutilIrreducibleRuleParserGeneratorException' => 'PhutilParserGeneratorException', 'PhutilJIRAAuthAdapter' => 'PhutilOAuth1AuthAdapter', @@ -624,6 +625,7 @@ 'PhutilLanguageGuesserTestCase' => 'PhutilTestCase', 'PhutilLexerSyntaxHighlighter' => 'PhutilSyntaxHighlighter', 'PhutilLibraryConflictException' => 'Exception', + 'PhutilLibraryTestCase' => 'PhutilTestCase', 'PhutilLipsumContextFreeGrammar' => 'PhutilContextFreeGrammar', 'PhutilLockException' => 'Exception', 'PhutilLogFileChannel' => 'PhutilChannelChannel', diff --git a/src/__tests__/PhutilInfrastructureTestCase.php b/src/__tests__/PhutilInfrastructureTestCase.php --- a/src/__tests__/PhutilInfrastructureTestCase.php +++ b/src/__tests__/PhutilInfrastructureTestCase.php @@ -1,37 +1,3 @@ selectAndLoadSymbols(); - $this->assertTrue(true); - } - - /** - * This is more of an acceptance test case instead of a unit test. It verifies - * that all the library map is up-to-date. - */ - public function testLibraryMap() { - $library = phutil_get_current_library_name(); - $root = phutil_get_library_root($library); - - $new_library_map = id(new PhutilLibraryMapBuilder($root)) - ->buildMap(); - - $bootloader = PhutilBootloader::getInstance(); - $old_library_map = $bootloader->getLibraryMapWithoutExtensions($library); - unset($old_library_map[PhutilLibraryMapBuilder::LIBRARY_MAP_VERSION_KEY]); - - $this->assertEqual( - $new_library_map, - $old_library_map, - 'The library map does not appear to be up-to-date. Try '. - 'rebuilding the map with `arc liberate`.'); - } - -} +final class PhutilInfrastructureTestCase extends PhutilLibraryTestCase {} diff --git a/src/__tests__/PhutilInfrastructureTestCase.php b/src/__tests__/PhutilLibraryTestCase.php copy from src/__tests__/PhutilInfrastructureTestCase.php copy to src/__tests__/PhutilLibraryTestCase.php --- a/src/__tests__/PhutilInfrastructureTestCase.php +++ b/src/__tests__/PhutilLibraryTestCase.php @@ -1,6 +1,6 @@ getLibraryRoot(); + $library = phutil_get_library_name_for_root($root); $new_library_map = id(new PhutilLibraryMapBuilder($root)) ->buildMap(); @@ -30,8 +30,18 @@ $this->assertEqual( $new_library_map, $old_library_map, - 'The library map does not appear to be up-to-date. Try '. - 'rebuilding the map with `arc liberate`.'); + pht( + 'The library map does not appear to be up-to-date. Try '. + 'rebuilding the map with `%s`.', + 'arc liberate')); + } + + /** + * Get the root directory for the library currently being tested. + */ + protected function getLibraryRoot() { + $caller = idx(debug_backtrace(), 2); + return phutil_get_library_root_for_path($caller['file']); } }