Esempio n. 1
0
    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)
Esempio n. 2
0
 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)
Esempio n. 3
0
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
Esempio n. 4
0
    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)
Esempio n. 5
0
    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)