From 9bac06cf606100f57a7b03e435f09749846ab5f1 Mon Sep 17 00:00:00 2001 From: Joshua Spence Date: Sun, 6 Jul 2014 01:50:53 +1000 Subject: [PATCH] Improve the `ArcanistInfrastructureTestCase` unit tests Summary: Improve the `ArcanistInfrastructureTestCase` unit tests such that they will fail if any of the following conditions are satisfied: - A symbol referenced in the `__phutil_library_map__.php` file no longer exists. - A symbol exists in the library but is not referenced within the `__phutil_library_map__.php` file. - A symbol extends from a different parent symbol than that declared in the `__phutil_library_map.php` file. Test Plan: See D9824 Reviewers: epriestley, #blessed_reviewers Reviewed By: epriestley, #blessed_reviewers Subscribers: epriestley, Korvin Differential Revision: https://secure.phabricator.com/D9826 --- .../ArcanistInfrastructureTestCase.php | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/__tests__/ArcanistInfrastructureTestCase.php b/src/__tests__/ArcanistInfrastructureTestCase.php index e1d6bb45..fa28b5df 100644 --- a/src/__tests__/ArcanistInfrastructureTestCase.php +++ b/src/__tests__/ArcanistInfrastructureTestCase.php @@ -1,6 +1,7 @@ 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() { + $root = phutil_get_library_root('arcanist'); + + $new_library_map = id(new PhutilLibraryMapBuilder($root)) + ->setQuiet(true) + ->setDryRun(true) + ->buildMap(); + + $bootloader = PhutilBootloader::getInstance(); + $old_library_map = $bootloader->getLibraryMap('arcanist'); + 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`.'); + } }