Download perf-tests/globalSetup.ts from SaylorTwift/gemini-cli: direct link, hf CLI and curl.
- Browser
- Download file 1.95 kB
-
https://huggingface.co/SaylorTwift/gemini-cli/resolve/main/perf-tests/globalSetup.ts
- Command line
-
hf download hf://SaylorTwift/gemini-cli/perf-tests/globalSetup.ts
-
curl -L -o globalSetup.ts https://huggingface.co/SaylorTwift/gemini-cli/resolve/main/perf-tests/globalSetup.ts
1.95 kB
| /** | |
| * @license | |
| * Copyright 2026 Google LLC | |
| * SPDX-License-Identifier: Apache-2.0 | |
| */ | |
| import { mkdir, readdir, rm } from 'node:fs/promises'; | |
| import { join, dirname } from 'node:path'; | |
| import { fileURLToPath } from 'node:url'; | |
| import { canUseRipgrep } from '../packages/core/src/tools/ripGrep.js'; | |
| import { isolateTestEnv } from '../packages/test-utils/src/env-setup.js'; | |
| const __dirname = dirname(fileURLToPath(import.meta.url)); | |
| const rootDir = join(__dirname, '..'); | |
| const perfTestsDir = join(rootDir, '.perf-tests'); | |
| const KEEP_RUNS_COUNT = 5; | |
| let runDir = ''; | |
| export async function setup() { | |
| runDir = join(perfTestsDir, `${Date.now()}`); | |
| await mkdir(runDir, { recursive: true }); | |
| // Isolate environment variables | |
| isolateTestEnv(runDir); | |
| // Download ripgrep to avoid race conditions | |
| const available = await canUseRipgrep(); | |
| if (!available) { | |
| throw new Error('Failed to download ripgrep binary'); | |
| } | |
| // Clean up old test runs, keeping the latest few for debugging | |
| try { | |
| const testRuns = await readdir(perfTestsDir); | |
| if (testRuns.length > KEEP_RUNS_COUNT) { | |
| const oldRuns = testRuns | |
| .sort() | |
| .slice(0, testRuns.length - KEEP_RUNS_COUNT); | |
| await Promise.all( | |
| oldRuns.map((oldRun) => | |
| rm(join(perfTestsDir, oldRun), { | |
| recursive: true, | |
| force: true, | |
| }), | |
| ), | |
| ); | |
| } | |
| } catch (e) { | |
| console.error('Error cleaning up old perf test runs:', e); | |
| } | |
| process.env['INTEGRATION_TEST_FILE_DIR'] = runDir; | |
| process.env['VERBOSE'] = process.env['VERBOSE'] ?? 'false'; | |
| console.log(`\nPerf test output directory: ${runDir}`); | |
| } | |
| export async function teardown() { | |
| // Cleanup unless KEEP_OUTPUT is set | |
| if (process.env['KEEP_OUTPUT'] !== 'true' && runDir) { | |
| try { | |
| await rm(runDir, { recursive: true, force: true }); | |
| } catch (e) { | |
| console.warn('Failed to clean up perf test directory:', e); | |
| } | |
| } | |
| } | |