def setUp(self): self.gs_mock = self.StartPatcher(gs_unittest.GSContextMock()) self.gs_mock.SetDefaultCmdResult() self.sdk_mock = self.StartPatcher( SDKFetcherMock(external_mocks=[self.gs_mock])) os.environ.pop(cros_chrome_sdk.SDKFetcher.SDK_VERSION_ENV, None) self.sdk = cros_chrome_sdk.SDKFetcher( os.path.join(self.tempdir, 'cache'), self.BOARD)
def testSpecificComponent(self): """Tests that SDKFetcher.Prepare() handles |components| param properly.""" sdk = cros_chrome_sdk.SDKFetcher(os.path.join(self.tempdir), SDKFetcherMock.BOARD) components = [constants.BASE_IMAGE_TAR, constants.CHROME_SYSROOT_TAR] with sdk.Prepare(components=components) as ctx: for c in components: self.assertExists(ctx.key_map[c].path) for c in [constants.IMAGE_SCRIPTS_TAR, constants.CHROME_ENV_TAR]: self.assertFalse(c in ctx.key_map)
def _StripBinContext(options): if not options.dostrip: yield None elif options.strip_bin: yield options.strip_bin else: sdk = cros_chrome_sdk.SDKFetcher(options.cache_dir, options.board) components = (sdk.TARGET_TOOLCHAIN_KEY, constants.CHROME_ENV_TAR) with sdk.Prepare(components=components, target_tc=options.target_tc, toolchain_url=options.toolchain_url) as ctx: env_path = os.path.join(ctx.key_map[constants.CHROME_ENV_TAR].path, constants.CHROME_ENV_FILE) strip_bin = osutils.SourceEnvironment(env_path, ['STRIP'])['STRIP'] strip_bin = os.path.join( ctx.key_map[sdk.TARGET_TOOLCHAIN_KEY].path, 'bin', os.path.basename(strip_bin)) yield strip_bin
def testSymlinkCacheToolchainOverride(self): """Ensures that the SDK picks up an overridden component.""" sdk = cros_chrome_sdk.SDKFetcher(os.path.join(self.tempdir), SDKFetcherMock.BOARD) board, version, _ = self.VERSION_KEY toolchain_link = os.path.join( self.tempdir, 'chrome-sdk/symlinks/%s+%s+target_toolchain' % (board, version)) components = [sdk.TARGET_TOOLCHAIN_KEY] toolchain_url_1 = 'some-fake-gs-path-1' toolchain_dir_1 = os.path.join( self.tempdir, 'chrome-sdk/tarballs/target_toolchain/', toolchain_url_1) toolchain_url_2 = 'some-fake-gs-path-2' toolchain_dir_2 = os.path.join( self.tempdir, 'chrome-sdk/tarballs/target_toolchain/', toolchain_url_2) # Prepare the cache using 'toolchain_url_1'. self.sdk_mock.tarball_cache_key_map = { sdk.TARGET_TOOLCHAIN_KEY: toolchain_url_1 } with sdk.Prepare(components, toolchain_url=toolchain_url_1): self.assertEqual(toolchain_dir_1, os.path.realpath(toolchain_link)) self.assertExists(toolchain_dir_1) self.assertNotExists(toolchain_dir_2) # Prepare the cache with 'toolchain_url_2' and make sure the active symlink # points to it and that 'toolchain_url_1' is still present. self.sdk_mock.tarball_cache_key_map = { sdk.TARGET_TOOLCHAIN_KEY: toolchain_url_2 } with sdk.Prepare(components, toolchain_url=toolchain_url_2): self.assertEqual(toolchain_dir_2, os.path.realpath(toolchain_link)) self.assertExists(toolchain_dir_2) self.assertExists(toolchain_dir_1)
def setUp(self): """Sets up a temporary symlink & tarball cache.""" self.gs_mock = self.StartPatcher(gs_unittest.GSContextMock()) self.gs_mock.SetDefaultCmdResult() self.sdk_fetcher = cros_chrome_sdk.SDKFetcher(self.tempdir, None)