Add Source E2E Integ Test Smt
GoogleCloudPlatform/spanner-migration-tool
Skill for independently generating Integration Tests and performing End-to-End QA validation for newly added Spanner Migration Tool database sources.
Step-by-step runbook for creating, extending, and verifying integration tests in the GCSFuse repository.
$ npx skills add GoogleCloudPlatform/gcsfuse --skill gcsfuse-integration-testing -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install GoogleCloudPlatform/gcsfuse gcsfuse-integration-testing --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/GoogleCloudPlatform/gcsfuse.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/integration-tests .claude/skills/gcsfuse-integration-testing && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "gcsfuse-integration-testing" agent skill from https://github.com/GoogleCloudPlatform/gcsfuse/tree/master/.agents/skills/integration-tests into .claude/skills/gcsfuse-integration-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gcsfuse-integration-testing", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/GoogleCloudPlatform/gcsfuse/tree/master/.agents/skills/integration-testsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add GoogleCloudPlatform/gcsfuse --skill gcsfuse-integration-testing -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install GoogleCloudPlatform/gcsfuse gcsfuse-integration-testing --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/GoogleCloudPlatform/gcsfuse.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/integration-tests .agents/skills/gcsfuse-integration-testing && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "gcsfuse-integration-testing" agent skill from https://github.com/GoogleCloudPlatform/gcsfuse/tree/master/.agents/skills/integration-tests into .agents/skills/gcsfuse-integration-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gcsfuse-integration-testing", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add GoogleCloudPlatform/gcsfuse --skill gcsfuse-integration-testing -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install GoogleCloudPlatform/gcsfuse gcsfuse-integration-testing --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/GoogleCloudPlatform/gcsfuse.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/integration-tests .cursor/skills/gcsfuse-integration-testing && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "gcsfuse-integration-testing" agent skill from https://github.com/GoogleCloudPlatform/gcsfuse/tree/master/.agents/skills/integration-tests into .cursor/skills/gcsfuse-integration-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gcsfuse-integration-testing", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/GoogleCloudPlatform/gcsfuse.git --path .agents/skills/integration-tests--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add GoogleCloudPlatform/gcsfuse --skill gcsfuse-integration-testing -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install GoogleCloudPlatform/gcsfuse gcsfuse-integration-testing --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/GoogleCloudPlatform/gcsfuse.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/integration-tests .gemini/skills/gcsfuse-integration-testing && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "gcsfuse-integration-testing" agent skill from https://github.com/GoogleCloudPlatform/gcsfuse/tree/master/.agents/skills/integration-tests into .gemini/skills/gcsfuse-integration-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gcsfuse-integration-testing", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install GoogleCloudPlatform/gcsfuse gcsfuse-integration-testingInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add GoogleCloudPlatform/gcsfuse --skill gcsfuse-integration-testing -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/GoogleCloudPlatform/gcsfuse.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/integration-tests .github/skills/gcsfuse-integration-testing && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "gcsfuse-integration-testing" agent skill from https://github.com/GoogleCloudPlatform/gcsfuse/tree/master/.agents/skills/integration-tests into .github/skills/gcsfuse-integration-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gcsfuse-integration-testing", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add GoogleCloudPlatform/gcsfuse --skill gcsfuse-integration-testing -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install GoogleCloudPlatform/gcsfuse gcsfuse-integration-testing --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/GoogleCloudPlatform/gcsfuse.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/integration-tests .opencode/skills/gcsfuse-integration-testing && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "gcsfuse-integration-testing" agent skill from https://github.com/GoogleCloudPlatform/gcsfuse/tree/master/.agents/skills/integration-tests into .opencode/skills/gcsfuse-integration-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gcsfuse-integration-testing", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
gcsfuse-integration-testingStep-by-step runbook for creating, extending, and verifying integration tests in the GCSFuse repository.
Gcsfuse Integration Testing is an agent skill from GoogleCloudPlatform/gcsfuse. Step-by-step runbook for creating, extending, and verifying integration tests in the GCSFuse repository.
Its SKILL.md is about 5.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files.
It sits in Testing & QA, covering Integration testing. It works with Google Kubernetes Engine and Google Cloud. The repository describes itself as: A user-space file system for interacting with Google Cloud Storage. The licence is Apache-2.0.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit fac0483. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships script files (Go), which the agent can run.
Shell commands in SKILL.md call:
gogitFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Gcsfuse Integration Testing loads about 5.6k tokens when it runs. Until then it costs about 33 tokens; SKILL.md has 2,215 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from GoogleCloudPlatform/gcsfuse at commit fac0483, republished under its Apache-2.0 licence (© GoogleCloudPlatform). 2,215 words, ~5,623 tokens.
.claude/skills/gcsfuse-integration-testing/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.This skill provides a comprehensive, step-by-step runbook for Antigravity agents to create, extend, structure, and verify integration tests within the GCSFuse repository's tools/integration_tests directory. Following this framework ensures that all tests adhere to uniform setup configurations, GKE compatibility paths, safe flag override systems, and clean teardowns.
Before writing any new integration tests or modifying files, walk through the clarification, research, and technical design steps to prepare your testing components.
Engage the developer to confirm basic requirements:
GKEMountedDirectory execution path correctly.flat, hns, zonal). Note that different configs can be run on different sets of compatible bucket types.Config struct in tools/integration_tests/util/test_suite/config.go to map the new YAML properties correctly.[!TIP] Proactive Reference Cross-Checking: Do not limit yourself strictly to basic dummy templates! You are highly encouraged to explore and inspect other active packages under tools/integration_tests (such as read_cache, operations, or negative_stat_cache) to review real-world design, study current code styles, and cross-reference helper functions. Proactively reiterate your design choices and ensure your target test suite aligns perfectly with established repository standards before proposing changes!
When creating a new integration test suite, it is highly recommended to draft a structured technical action plan to scope your work before implementation:
flat, hns, zonal / rapid) and mount behaviors (static, dynamic, only-dir) your test suite must cover to ensure clean compliance checks.All integration tests are driven by central configurations and dynamic environmental mappings that resolve variables according to where they are run.
All modern integration tests in GCSFuse rely on a centralized, shared configuration file: tools/integration_tests/test_config.yaml.
[!IMPORTANT] No Backward-Compatibility Support Policy: Do NOT build fallback logic to parse command flags directly if the YAML configuration is absent. The repository is migrating fully to the configuration file model. Enforce parsing of the YAML config via the
test_suite.ReadConfigFileflow in all cases.
During execution, the test suite dynamically determines GCS environment capabilities to filter what configurations should be run:
setup.TestEnvironment(ctx, cfg) queries the target bucket attributes via GCS APIs.zonal (if attrs.LocationType == "zone")hns (if Hierarchical Namespace is enabled: attrs.HierarchicalNamespace.Enabled)flat (if standard bucket architecture)setup.BuildFlagSets(*cfg, bucketType, t.Name()) loops through the configs list in the YAML file and filters them based on their compatibility maps.compatible[bucketType] is marked as true (and whose run properties match the active Go test suite/run filters) are scheduled to execute.Central GKE and runner variables are written as text placeholders within tools/integration_tests/test_config.yaml. They are dynamically resolved at runtime depending on GKE pod mounts or local flag rewrites:
| Placeholder | Meaning & Role | Resolution Flow |
|---|---|---|
${MOUNTED_DIR} | The GKE/container pre-mounted point target directory. | Parsed directly via setup.MountedDirectory() on GKE. |
${BUCKET_NAME} | The active target GCS bucket name. | Injected from CLI flags or setup.TestBucket(). |
${ONLY_DIR} | Sub-directory inside the bucket for static Only-Dir subpath tests. | Populated via the setup.OnlyDirMounted() environment helpers. |
${PROFILE_LABEL} | GCP Cloud Profiler label/version to differentiate profiling runs. | Extracted and populated via setup.ExtractServiceVersionFromFlags(). |
${PROFILE_SERVICE_NAME} | GCP Cloud Profiler service identifier tag. | Extracted and populated via setup.CloudProfilerServiceNameFromFlags(). |
${BILLING_PROJECT} | The GCP Billing Project ID for Requester Pays validation. | Parsed and set dynamically via setup.BillingProject(). |
${KEY_FILE} | The Service Account credentials JSON filepath. | Loaded and set dynamically via setup.KeyFile(). |
Integration tests configure temporary workspaces, cache directories, and log targets via flag sets (e.g., --cache-dir=/gcsfuse-tmp/... and --log-file=/gcsfuse-tmp/...):
setup.OverrideFilePathsInFlagSet(cfg, setup.TestDir()). This recursively replaces all occurrences of the /gcsfuse-tmp flag paths with safe, dynamically generated workspace directories under the host system's sandboxed environment (setup.TestDir()).In Only-Dir mounting configurations, GCSFuse mounts only a single directory prefix inside the GCS bucket rather than the entire bucket root:
setup.SetOnlyDirMounted(onlyDirName + "/").setup.GetBucketAndObjectBasedOnTypeOfMount(object) instead of directly targeting the raw bucket name. This dynamically prefixes the target directory key and translates paths correctly so assertions do not fail.To keep GCSFuse integration tests clean and uniform, all folders and files must adhere to standard splitting conventions, lifecycles, and safe utility routines.
setup_test.go or <package_name>_test.go: Contains the main TestMain(m *testing.M) function, the shared package env struct, common package constants (e.g., testDirName), and shared helper functions used by more than one test file in the package.<scenario>_test.go: Separate scenario files should hold specific testing suites using testify/suite (suite.Suite).env struct containing pointers to the clients, target configs, and state strings:type env struct {
mountFunc func(*test_suite.TestConfig, []string) error
mountDir string
rootDir string
storageClient *storage.Client
storageControlClient *control.StorageControlClient
ctx context.Context
testDirPath string
cfg *test_suite.TestConfig
bucketType string
}
var testEnv envWhen executing, the integration package's TestMain(m *testing.M) function MUST sequentially handle:
setup.ParseSetUpFlags().config := test_suite.ReadConfigFile(setup.ConfigFile())
testEnv.cfg = &config.<PackageName>[0]testEnv.bucketType = setup.TestEnvironment(testEnv.ctx, testEnv.cfg)client.CreateStorageClientWithCancel(...), client.CreateControlClientWithCancel(...)).if testEnv.cfg.GKEMountedDirectory != "" && testEnv.cfg.TestBucket != "" {
testEnv.mountDir, testEnv.rootDir = testEnv.cfg.GKEMountedDirectory, testEnv.cfg.GKEMountedDirectory
os.Exit(setup.RunTestsForMountedDirectory(testEnv.cfg.GKEMountedDirectory, m))
}setup.SetUpTestDirForTestBucket(testEnv.cfg)
setup.OverrideFilePathsInFlagSet(testEnv.cfg, setup.TestDir())
testEnv.mountDir, testEnv.rootDir = testEnv.cfg.GCSFuseMountedDirectory, testEnv.cfg.GCSFuseMountedDirectorym.Run()) sequentially across target mount models (static, dynamic, or only-dir mounting) depending on compatibility, keeping track of failure success codes.setup.CleanupDirectoryOnGCS(testEnv.ctx, testEnv.storageClient, path.Join(testEnv.cfg.TestBucket, testDirName))If your test needs to parse parameters from complex list structures or flag strings:
--cloud-profiler-service-name=foo,--log-severity=trace).= or whitespace) and exclude trailing items using comma and whitespace breakers.func CloudProfilerServiceNameFromFlags(flags []string) string {
// Regex matches --cloud-profiler-service-name=value or --cloud-profiler-service-name value
// [=\s] permits both equal sign and space breakers.
// [^,\s]+ terminates the match safely at a comma, space, or string boundary.
re := regexp.MustCompile(`--cloud-profiler-service-name[=\s]([^,\s]+)`)
for _, flagSet := range flags {
matches := re.FindStringSubmatch(flagSet)
if len(matches) > 1 {
return matches[1]
}
}
return "gcsfuse" // Fallback default value
}Designing integration test cases requires a disciplined, robust approach to assert structures, async wait methods, unique naming keys, and central helpers reuse.
While the Arrange-Act-Assert (AAA) pattern is traditionally a strict best practice for unit testing, it is highly recommended to follow this style in integration tests as well wherever possible:
setup.SetupTestDirectory(...) here.testify/assert framework (e.g., assert.NoError, assert.Contains, assert.ErrorContains).RetryUntil Polling)Using raw sleep calls (e.g., time.Sleep(30 * time.Second)) assuming an asynchronous operation, metadata flush, file write, or size check "should have finished by now" is a major source of flaky tests and execution slowdowns.
// Correct pattern: Poll the file state actively with RetryUntil instead of using time.Sleep()
targetFile := path.Join(testEnv.testDirPath, "file.txt")
expectedSize := int64(1024)
sizeVal := operations.RetryUntil(testEnv.ctx, s.T(), 500*time.Millisecond, 10*time.Second, func() (int64, error) {
fi, err := os.Stat(targetFile)
if err != nil {
return 0, err // Retry on stat errors
}
if fi.Size() != expectedSize {
return 0, fmt.Errorf("expected size %d, got %d", expectedSize, fi.Size()) // Retry if size is not correct yet
}
return fi.Size(), nil // Success! Returns target value and exits loop
})GCSFuse integration packages are scheduled in parallel streams and share physical testing buckets:
targetFile := "data.txt") will cause immediate collision issues, resource state contamination, and test failures.setup.GenerateRandomString(5).// Generate distinct directory names per suite
s.testDir = testDirName + setup.GenerateRandomString(5)
testEnv.testDirPath = setup.SetupTestDirectory(s.testDir)
// Generate distinct file paths inside the folder
uniqueFile := path.Join(testEnv.testDirPath, "item_" + setup.GenerateRandomString(5) + ".txt")To guarantee test suite integrity and prevent silent failures (false negatives), all test scenarios MUST enforce strict, robust error handling:
_ (e.g., writing _ = file.Close() or _ = os.Remove(path) is strictly forbidden). If an operation returns an error, you MUST verify/assert it.require.NoError, require.FailNow): Use for fatal preconditions, suite arrangements, setups, and mount commands. If GCSFuse fails to mount or target directories cannot be created, the scenario should fail immediately to avoid downstream clutter and false test statuses.assert.NoError, assert.True): Use for target validation steps and assertions where standard validation tracking is sufficient.os.Stat to confirm the file actually exists and verify that its contents, sizes, and permissions match the expectations).Do not duplicate filesystem operations, mounting boilerplate, or client construction functions. Before implementing a new test utility, inspect the central helper modules:
SetupTestDirectory, SetUpTestDirForTestBucket, BuildFlagSets, CleanupDirectoryOnGCS, ReplaceOrAppendFlag).os methods to get automatic failure hooks (operations.CreateDirectory, operations.CreateFileWithContent, operations.WriteToFile, operations.ReadFile).[!WARNING] Avoid Deprecated Methods: Avoid utilizing obsolete legacy functions still left over from the flag-to-config migration process (e.g.,
SetUpTestDirForTestBucketFlag,RunTestsForMountedDirectoryFlag). Proactively identify and skip outdated methods.
Once you have completed the test package coding steps, you MUST follow these specific quality control and validation workflows before completing your turn.
Execute standard Go mod/formatting checkers from the root of the workspace. Ensure all files are cleanly formatted and the imports tree resolves perfectly without raising formatting differences:
goimports -w .
go fmt ./...
go mod tidy
git diff --exit-code --name-onlyWhen introducing a new integration test suite, you MUST register the package in the central test orchestrator shell script:
TEST_PACKAGES_COMMON array. This step is critical to guarantee that the new suite is automatically picked up by Kokoro presubmits and scheduled across parallel splits.flat, hns, zonal):BUCKET_NAME=<compatible_bucket_name> GODEBUG=asyncpreemptoff=1 go test ./tools/integration_tests/<package_name> -p 1 --integrationTest -v --config-file="<workspace_root>/tools/integration_tests/test_config.yaml"<compatible_bucket_name> with their GCS-configured test bucket matching the specific compatible type they are testing).[!WARNING] Cloudtop/Jetski Local Environment Limits: Executing full integration tests directly inside your local Cloudtop terminal or a Jetski virtual session environment might fail or hang. This is caused by Cloudtop-specific network proxy intercept blocks, system FUSE mounting constraints, or credential scope restrictions. If failures occur locally on your Cloudtop environment, please transfer your branch/run the tests inside your designated GCP Linux VM/sandbox instead.
After formatting verification passes successfully:
test(operations): add directory operations test).To keep this runbook compact and highly readable, the standard boilerplate code templates have been split into standalone, syntax-highlighted reference Go files. Refer to these targets when designing your new testing components:
© GoogleCloudPlatform, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 2 other files in .agents/skills/integration-tests of GoogleCloudPlatform/gcsfuse.
Open the folder on GitHubat commit fac0483
Gcsfuse Integration Testing next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Gcsfuse Integration Testing this skillGoogleCloudPlatform/gcsfuse | 2.3k | — | ~5.6k | Automated safety check: Pass | Apache-2.0 | |
| Add Source E2E Integ Test SmtGoogleCloudPlatform/spanner-migration-tool | 155 | — | ~1.3k | Automated safety check: Pass | Apache-2.0 | |
| Add Integ Tests Gcs Spanner DvGoogleCloudPlatform/DataflowTemplates | 1.3k | — | ~517 | Automated safety check: Pass | Apache-2.0 | |
| Io ConnectorsKilo-Org/kilo-marketplace | 189 | — | ~1.3k | Automated safety check: Pass | Apache-2.0 | |
| Devopsnicepkg/auto-company | 192 | 2 repos | ~814 | Automated safety check: Pass | MIT | |
| Kcli Cluster Deploymentkarmab/kcli | 653 | — | ~1.5k | Automated safety check: Pass | Apache-2.0 |
GoogleCloudPlatform/spanner-migration-tool
Skill for independently generating Integration Tests and performing End-to-End QA validation for newly added Spanner Migration Tool database sources.
GoogleCloudPlatform/DataflowTemplates
Specific runner skill that creates integration tests for the gcs-spanner-dv (Data Validation) template.
Kilo-Org/kilo-marketplace
Guides development and usage of I/O connectors in Apache Beam.
nicepkg/auto-company
Deploy to Cloudflare (Workers, R2, D1), Docker, GCP (Cloud Run, GKE), Kubernetes (kubectl, Helm).
karmab/kcli
Guides deployment and management of Kubernetes clusters with kcli.
sparklabx/drawio-ai-kit
A skill your agent uses when the user asks for a GCP or Google Cloud architecture diagram — VPC/networking, GKE, Cloud Run, landing zone, multi-region, or any diagram built with GCP service icons.
GoogleCloudPlatform/gcsfuse
Guides on establishing persistent master SSH multiplexing sockets at ~/.ssh/sockets/<TARGETNAME.sock using ssh -f -N -M -S, testing connection liveness, gracefully terminating via -O exit, removing…
Works with
Categories
Step-by-step runbook for creating, extending, and verifying integration tests in the GCSFuse repository. Gcsfuse Integration Testing is an agent skill from GoogleCloudPlatform/gcsfuse. Step-by-step runbook for creating, extending, and verifying integration tests in the GCSFuse repository.
Gcsfuse Integration Testing fits situations like: tasks that involve Integration testing.
Run `npx skills add GoogleCloudPlatform/gcsfuse --skill gcsfuse-integration-testing -a claude-code`. Or copy the skill folder (.agents/skills/integration-tests in GoogleCloudPlatform/gcsfuse) into .claude/skills/gcsfuse-integration-testing in your project. Claude Code loads it when a task matches its description.
Run `npx skills add GoogleCloudPlatform/gcsfuse --skill gcsfuse-integration-testing -a codex`. Or copy the skill folder (.agents/skills/integration-tests in GoogleCloudPlatform/gcsfuse) into .agents/skills/gcsfuse-integration-testing in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add GoogleCloudPlatform/gcsfuse --skill gcsfuse-integration-testing -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/gcsfuse-integration-testing, .gemini/skills/gcsfuse-integration-testing, .github/skills/gcsfuse-integration-testing and .opencode/skills/gcsfuse-integration-testing in your project.
Going by SKILL.md and its folder, Gcsfuse Integration Testing needs Go for the scripts in its folder and the command-line tools its instructions call (go and git).
SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Gcsfuse Integration Testing is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 5.6k tokens (SKILL.md is roughly 22k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Gcsfuse Integration Testing: Add Source E2E Integ Test Smt (GoogleCloudPlatform/spanner-migration-tool, 155 stars), Add Integ Tests Gcs Spanner Dv (GoogleCloudPlatform/DataflowTemplates, 1.3k stars), Io Connectors (Kilo-Org/kilo-marketplace, 189 stars) and Devops (nicepkg/auto-company, 192 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
GoogleCloudPlatform (a GitHub organization) maintains it in GoogleCloudPlatform/gcsfuse, which has 2,312 GitHub stars. The repository holds 2 skills in this directory. The repository was last updated on October 7, 2026.
Source: GoogleCloudPlatform/gcsfuse on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.