Agent skill

E2E Test

by crc-org in crc-org/crc

Run CRC end-to-end tests for specific features and operating systems

Apache-2.0Auto-check: notesTesting & QA

Install E2E Test

skills CLI
$ npx skills add crc-org/crc --skill e2e-test -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install crc-org/crc e2e-test --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/crc-org/crc.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/e2e-test .claude/skills/e2e-test && rm -rf skills-src

Use ~/.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/

Facts

Skill name
e2e-test
GitHub stars
1.4k
Token cost
~3.3k tokens
SKILL.md length
1,409 words
Files
3
Skills in repo
2
Repo updated
First seen
Licence
Apache-2.0

At a glance

Run CRC end-to-end tests for specific features and operating systems

  • Works in 9 steps: Parse arguments (if provided) → Interactive selection (if no arguments… → Handle custom paths (if user selected… → …
  • Tasks that involve End-to-end testing
  • SKILL.md covers Arguments, Available Features, Available OS Platforms and Instructions, plus 3 more sections
  • Calls make and go

What it does

E2E Test is an agent skill from crc-org/crc. Run CRC end-to-end tests for specific features and operating systems

Its SKILL.md is about 3.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `EXAMPLES.md` and `REFERENCE.md`).

It sits in Testing & QA, covering End-to-end testing. It works with Linux. The repository describes itself as: CRC is a tool to help you run containers. It manages local VMs to run a OpenShift 4.x cluster, Microshift or Podman optimized for testing and development purposes. The licence is Apache-2.0.

When your agent uses it

  • Tasks that involve End-to-end testing

Example prompts

  • “/e2e-test”

Requirements

  • Pre-approved tools (allowed-tools): [AskUserQuestion, Bash, Read, Grep]

Workflow steps

9 steps, taken from the first numbered list in SKILL.md.

  1. Parse arguments (if provided)
  2. Interactive selection (if no arguments or partial arguments)
  3. Handle custom paths (if user selected "custom" for any location)
  4. Build CRC from source
  5. Determine CRC binary directory
  6. Prepare test environment
  7. Clean CRC state (IMPORTANT - Required for most tests)
  8. Build test command
  9. Execute tests

What it can do on your machine

Read from SKILL.md and the folder at commit 854b65c. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • [AskUserQuestion
    • Bash
    • Read
    • Grep]

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • make
    • go

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

E2E Test loads about 3.3k tokens when it runs. Until then it costs about 19 tokens; SKILL.md has 1,409 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~19
When it runs · the whole SKILL.md, loaded when a task matches
~3.3k

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.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteRuns commands with sudoSKILL.md:129
    - Note: Cleanup may require sudo password for removing system files:
  • NoteRuns commands with sudoSKILL.md:132
    - If cleanup fails due to missing sudo access at the end of test run, it's acceptable (cleanup failure in tests is co
  • NoteRuns commands with sudoSKILL.md:180
    the final test cleanup step fails due to sudo password requirement, this is acceptable
  • NoteRuns commands with sudoSKILL.md:236
    udo Access**: Cleanup operations require sudo to remove system files (udev rules, vsock config); have password ready
  • NoteRuns commands with sudoSKILL.md:244
    up`** to ensure clean state (may require sudo password)
  • NoteRuns commands with sudoSKILL.md:247
    udo access available** (cleanup requires sudo to remove system files like udev rules)
  • NoteRuns commands with sudoSKILL.md:254
    moves existing CRC state (may prompt for sudo password)
  • NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
    allowed-tools: [AskUserQuestion, Bash, Read, Grep]

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.

SKILL.md

The full file from crc-org/crc at commit 854b65c, republished under its Apache-2.0 licence (© crc-org). 1,409 words, ~3,257 tokens.

Download SKILL.mdSave it as .claude/skills/e2e-test/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
e2e-test
description
Run CRC end-to-end tests for specific features and operating systems
allowed-tools
[AskUserQuestion, Bash, Read, Grep]
argument-hint
[feature] [os]

CRC E2E Test Runner

This skill runs CRC end-to-end tests with interactive feature and OS selection.

Arguments

User provided arguments: $ARGUMENTS

Available Features

The CRC e2e test suite includes these features:

  • basic: Core CRC lifecycle tests (version, help, setup, start, stop, delete)
  • config: Configuration management tests
  • minimal: Minimal feature set tests (requires MicroShift bundle)
  • story_openshift: OpenShift-specific story tests
  • story_microshift: MicroShift-specific story tests
  • story_application_deployment: Application deployment scenarios
  • running_cluster_tests: Tests for running cluster operations
  • cert_rotation: Certificate rotation tests (Linux only)
  • story_manpages: Man page generation tests

Available OS Platforms

  • linux: Linux platform tests
  • darwin: macOS platform tests
  • windows: Windows platform tests

Instructions

When this skill is invoked:

  1. Parse arguments (if provided):

    • If arguments include a feature name and/or OS, use those
    • Otherwise, proceed to interactive selection
  2. Interactive selection (if no arguments or partial arguments):

    Use AskUserQuestion tool with these specific questions:

    Question 1: Feature Selection

    • Header: "Feature"
    • Question: "Which e2e test feature(s) do you want to run?"
    • multiSelect: true (allow multiple features)
    • Options:
      • basic: "Core CRC lifecycle tests - setup, start, stop, delete, version, status (~30 min)"
      • config: "Configuration management and property validation tests (~15 min)"
      • minimal: "Quick minimal test suite for fast validation (~10 min, requires MicroShift bundle)"
      • story_openshift: "OpenShift-specific features and scenarios (~45 min)"
      • story_microshift: "MicroShift-specific features and scenarios (~45 min)"
      • story_application_deployment: "Application deployment workflows (~30 min)"
      • running_cluster_tests: "Tests for running cluster operations (~20 min, requires running cluster)"
      • cert_rotation: "Certificate rotation scenarios (~25 min, Linux only)"
      • story_manpages: "Man page generation and validation (~10 min)"

    Question 2: OS Platform Selection

    • Header: "Platform"
    • Question: "Which OS platform do you want to test?"
    • multiSelect: false (single selection)
    • Options:
      • current: "Use current platform ($(GOOS)) - Recommended"
      • linux: "Linux platform (most features supported)"
      • darwin: "macOS platform (arm64 and amd64)"
      • windows: "Windows platform (amd64 only)"

    Question 3: Bundle Location

    • Header: "Bundle"
    • Question: "Where is the CRC bundle located?"
    • multiSelect: false (single selection)
    • Options:
      • cache: "~/.crc/cache/crc_*.crcbundle (CRC cache directory) - Recommended"
      • downloads: "~/Downloads/crc_*.crcbundle"
      • custom: "Specify custom path"

    Question 4: Pull Secret Location

    • Header: "Pull Secret"
    • Question: "Where is the pull secret file located?"
    • multiSelect: false (single selection)
    • Options:
      • downloads: "~/Downloads/crc-pull-secret (default) - Recommended"
      • custom: "Specify custom path"
  3. Handle custom paths (if user selected "custom" for any location):

    • For each "custom" selection, the user will provide the path via "Other" option
    • Extract the custom path from the user's response
    • Validate that custom paths exist before proceeding
    • Store paths for use in environment variables
  4. Build CRC from source:

    • Run make cross to build CRC binaries for all platforms
    • This will create platform-specific binaries in the out/ directory:
      • Linux AMD64: out/linux-amd64/crc
      • Linux ARM64: out/linux-arm64/crc
      • macOS AMD64: out/macos-amd64/crc
      • macOS ARM64: out/macos-arm64/crc
      • Windows AMD64: out/windows-amd64/crc.exe
    • Display build progress to user
    • Verify the binary was built successfully for the target platform
  5. Determine CRC binary directory:

    • Based on the selected platform, set the binary directory:
      • If platform is "current": detect using go env GOOS and go env GOARCH
      • If platform is "linux": use --crc-binary=out/linux-amd64/
      • If platform is "darwin": detect arch with uname -m (returns arm64 or x86_64); normalize x86_64 to amd64 and use --crc-binary=out/macos-<arch>/
      • If platform is "windows": use --crc-binary=out/windows-amd64/
    • Note: CRC_BINARY should be the directory path, not including the binary name itself
    • Verify the binary exists in the determined directory (e.g., out/linux-amd64/crc or out/windows-amd64/crc.exe)
  6. Prepare test environment:

    • Based on bundle location selection:
      • If "cache": list available bundles in ~/.crc/cache and let user select or provide path
      • If "downloads": list available bundles in ~/Downloads and let user select or provide path
      • If "custom": ask user for the path
    • Verify the bundle file exists at the specified location
    • Verify the pull secret file exists at the specified location
    • Inform user about any missing prerequisites
  7. Clean CRC state (IMPORTANT - Required for most tests):

    • If selected features include running_cluster_tests, skip crc cleanup and verify the cluster is running (crc status) instead.
    • Otherwise, run crc cleanup using the built binary (e.g., out/linux-amd64/crc cleanup)
    • This ensures tests start with a clean state (no existing VM, no stale configuration)
    • Critical for @basic tests which expect an unconfigured system
    • Note: Cleanup may require sudo password for removing system files:
      • /etc/udev/rules.d/99-crc-vsock.rules (udev rules)
      • /etc/modules-load.d/vhost_vsock.conf (vsock module config)
    • If cleanup fails due to missing sudo access at the end of test run, it's acceptable (cleanup failure in tests is cosmetic)
    • Use absolute paths (not tilde) for bundle and pull secret locations to avoid path expansion issues
  8. Build test command:

    Construct the make command as follows:

    a. Start with base: make e2e

    b. Build tag filter:

    • If platform is "current": use $(GOOS) or detect with go env GOOS
    • If single feature: --godog.tags="<os> && @<feature>"
    • If multiple features: --godog.tags="<os> && (@feature1 || @feature2 || @feature3)"
    • Always include OS tag AND feature tag(s)

    c. Build environment variables based on user selections:

    • Always set CRC_BINARY to the platform-specific binary directory from step 5 (format: --crc-binary=/absolute/path/to/out/<platform>-<arch>/)
    • For bundle location:
      • IMPORTANT: Use absolute paths (not tilde ~) to avoid path expansion issues
      • If "cache": prompt user to select specific bundle from ~/.crc/cache or set BUNDLE_LOCATION=--bundle-location=/absolute/path/to/.crc/cache/<bundle_file>
      • If "downloads": prompt user to select specific bundle from ~/Downloads or set BUNDLE_LOCATION=--bundle-location=/absolute/path/to/Downloads/<bundle_file>
      • If "custom": set BUNDLE_LOCATION=--bundle-location=<absolute_custom_path>
    • For pull secret location:
      • IMPORTANT: Use absolute paths (not tilde ~)
      • If "downloads": set PULL_SECRET_FILE=--pull-secret-file=/absolute/path/to/Downloads/crc-pull-secret
      • If "custom": set PULL_SECRET_FILE=--pull-secret-file=<absolute_custom_path>
    • Note: All environment variables must include their flag prefix and use absolute paths

    d. Combine into final command:

    bash
    CRC_BINARY=--crc-binary=<binary_dir> [OTHER_ENV_VARS] make e2e GODOG_OPTS="--godog.tags=\"<constructed_tags>\""

    Note: <binary_dir> is the absolute directory path (e.g., /home/user/crc/out/linux-amd64/), not the full binary path

    e. Example commands:

    bash
    # Single feature on Linux with built binary and bundle from cache (using absolute paths)
    CRC_BINARY=--crc-binary=/home/user/crc/out/linux-amd64/ BUNDLE_LOCATION=--bundle-location=/home/user/.crc/cache/crc_libvirt_4.21.8_amd64.crcbundle PULL_SECRET_FILE=--pull-secret-file=/home/user/pull-secret make e2e GODOG_OPTS="--godog.tags=\"linux && @basic\""
    
    # Multiple features on macOS with built binary
    CRC_BINARY=--crc-binary=/Users/user/crc/out/macos-arm64/ BUNDLE_LOCATION=--bundle-location=/Users/user/.crc/cache/crc_vfkit_4.21.8_arm64.crcbundle make e2e GODOG_OPTS="--godog.tags=\"darwin && (@basic || @config || @minimal)\""
  9. Execute tests:

    • Run the test command
    • Display progress and results to user
    • Provide clear feedback on pass/fail status
    • Note: If the final test cleanup step fails due to sudo password requirement, this is acceptable
      • The test suite runs its own cleanup at the end which may fail in non-interactive environments
      • Focus on the actual test results (scenarios/steps passed), not cleanup failure
      • A test is considered successful if all scenarios passed, even if final cleanup failed
Show full SKILL.md (449 more words)Show less

Environment Variables

These are set automatically by the skill:

  • CRC_BINARY: Directory path to platform-specific CRC binary built from source (e.g., --crc-binary=/home/user/crc/out/linux-amd64/)
  • PULL_SECRET_FILE: Required path to pull secret (e.g., --pull-secret-file=/home/user/pull-secret)
  • BUNDLE_LOCATION: Path to CRC bundle (e.g., --bundle-location=/home/user/.crc/cache/crc_*.crcbundle)
  • CLEANUP_HOME: Whether to cleanup home directory (default: not set)

Note: All environment variables include the flag prefix (e.g., --crc-binary=, --bundle-location=, --pull-secret-file=)

Example Usage

bash
# Interactive mode
/e2e-test

# With feature argument
/e2e-test basic

# With feature and OS
/e2e-test config linux

# Multiple features
/e2e-test basic,config darwin

Important Notes

Test Duration
  • Tests can take 10-180 minutes depending on feature selection
  • Full test suite (@basic) typically takes ~30 minutes
  • Multiple features will run sequentially
Prerequisites
  • Build environment: Go toolchain and build dependencies for make cross
  • Pull secret: Required at ~/Downloads/crc-pull-secret (or custom path)
  • CRC bundle: Required at ~/.crc/cache/crc_*.crcbundle, ~/Downloads/crc_*.crcbundle, or custom path
  • Clean state: Most tests expect no existing CRC cluster
  • System resources: Ensure adequate RAM (16GB+ recommended for monitoring tests)
  • Build time: make cross takes ~5-10 minutes to compile binaries for all platforms
Platform-Specific Considerations
  • @cert_rotation only runs on Linux
  • @running_cluster_tests requires a cluster to already be running
  • Windows tests require .exe extension handling
  • macOS supports both arm64 and amd64 architectures
  • @minimal test requires MicroShift bundle (crc_microshift_*.crcbundle), not OpenShift bundle
Key Technical Notes
  • Path Expansion: Always use absolute paths (e.g., /home/user/.crc/cache/...) instead of tilde paths (~/.crc/cache/...) to avoid shell expansion issues in the test framework
  • Cleanup Requirements: Running crc cleanup before tests ensures clean state, especially critical for @basic tests that check for unconfigured system
  • Sudo Access: Cleanup operations require sudo to remove system files (udev rules, vsock config); have password ready
  • Test Cleanup Failures: If the test suite's final cleanup step fails due to sudo, it's cosmetic - focus on scenario/step pass rates
Before Running

The skill will automatically:

  1. Build CRC from source using make cross
  2. Verify the binary exists for the target platform
  3. Check that bundle and pull secret files exist
  4. Run crc cleanup to ensure clean state (may require sudo password)

The user should ensure:

  1. Sudo access available (cleanup requires sudo to remove system files like udev rules)
  2. Pull secret and bundle files are available (check ~/.crc/cache or ~/Downloads)
  3. Adequate disk space for build artifacts (~500MB in out/ directory)
  4. No active CRC cluster is running (will be cleaned up automatically)
Execution Behavior
  • Build phase: make cross compiles binaries for all platforms (~5-10 minutes)
  • Cleanup phase: crc cleanup removes existing CRC state (may prompt for sudo password)
  • Test phase: Tests run with --timeout=180m (3 hours max)
  • Output is verbose (-v flag enabled)
  • Tests may modify CRC configuration
  • Some tests require internet connectivity
  • Failed tests will show detailed error output
  • The skill always uses the freshly built binary from the out/ directory
  • IMPORTANT: Always use absolute paths (not ~) for bundle and pull secret locations to avoid path expansion issues

© crc-org, 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

Files

SKILL.md and 2 other files in .claude/skills/e2e-test of crc-org/crc.

  • SKILL.md
  • EXAMPLES.md
  • REFERENCE.md

Open the folder on GitHubat commit 854b65c

Compare with similar skills

E2E Test 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.

E2E Test compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
E2E Test this skillcrc-org/crc1.4k—~3.3kAutomated safety check: NotesApache-2.0
Openclaw Parallels SmokeSafeAI-Lab-X/ClawKeeper1k—~1.1kAutomated safety check: PassNone
CLI E2E Testingmicrosoft/aspire6.3k—~8.6kAutomated safety check: PassMIT
Cross Platform Gui E2E TestStudentWeis/ropy193—~1.9kAutomated safety check: PassMIT
Build Imageskubernetes-sigs/cloud-provider-azure294—~1.7kAutomated safety check: PassApache-2.0
Testing Livepeerdaydreamlive/scope452—~2.5kAutomated safety check: PassCustom licence

Similar skills

  • Openclaw Parallels Smoke

    SafeAI-Lab-X/ClawKeeper

    End-to-end Parallels smoke, upgrade, and rerun workflow for OpenClaw across macOS, Windows, and Linux guests.

    1k GitHub stars~1.1k tokensUpdated 1 mo ago
    Testing & QAAuto-check passed
  • CLI E2E Testing

    microsoft/aspire

    Official

    A skill your agent uses when creating, modifying, debugging, or reviewing Aspire CLI end-to-end tests that use Hex1b terminal automation under tests/Aspire.Cli.EndToEnd.Tests/.

    6.3k GitHub stars~8.6k tokensUpdated today
    Testing & QAAuto-check passed
  • Run packaged Ropy desktop GUI end-to-end, smoke, and compatibility tests across macOS, Windows, and Linux.

    193 GitHub stars~1.9k tokensUpdated 28 days ago
    Testing & QAAuto-check passed
  • Build Images

    kubernetes-sigs/cloud-provider-azure

    Official

    Build cloud-provider-azure container images through the repo Makefile with explicit IMAGETAG and IMAGEREGISTRY inputs, optional make flag overrides, and opt-in bounded Docker or Podman retries.

    294 GitHub stars~1.7k tokensUpdated today
    DevOps & CloudAuto-check passed
  • Testing Livepeer

    daydreamlive/scope

    Test Scope locally in Livepeer mode end to end using a prebuilt go-livepeer artifact from the ja/serverless PR, uv run --extra livepeer livepeer-runner, and Scope.

    452 GitHub stars~2.5k tokensUpdated 2 mo ago
    Backend & APIsAuto-check passed
  • Web Application Testing

    anthropics/skills

    Official

    Tests local web applications with Python Playwright scripts, checking frontend behavior, capturing screenshots and reading browser console logs.

    180k GitHub starsUsed in 51 repos~966 tokens
    Testing & QAAuto-check passed

More from crc-org/crc

  • Release Notes

    crc-org/crc

    Generate release notes for an OpenShift Local release in a text file following a pre-defined format

    1.4k GitHub stars~1.1k tokensUpdated today
    Auto-check passed

Works with

Categories

Questions about E2E Test

What does E2E Test do?

Run CRC end-to-end tests for specific features and operating systems. E2E Test is an agent skill from crc-org/crc.

When should I use E2E Test?

E2E Test fits situations like: tasks that involve End-to-end testing.

How do I install E2E Test in Claude Code?

Run `npx skills add crc-org/crc --skill e2e-test -a claude-code`. Or copy the skill folder (.claude/skills/e2e-test in crc-org/crc) into .claude/skills/e2e-test in your project. Claude Code loads it when a task matches its description.

How do I install E2E Test in Codex?

Run `npx skills add crc-org/crc --skill e2e-test -a codex`. Or copy the skill folder (.claude/skills/e2e-test in crc-org/crc) into .agents/skills/e2e-test in your project. Codex loads it when a task matches its description.

Can I use E2E Test in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add crc-org/crc --skill e2e-test -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/e2e-test, .gemini/skills/e2e-test, .github/skills/e2e-test and .opencode/skills/e2e-test in your project.

What does E2E Test need to run?

Going by SKILL.md and its folder, E2E Test needs the command-line tools its instructions call (make and go). Its frontmatter pre-approves these tools: [AskUserQuestion, Bash, Read, Grep].

Does E2E Test access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is E2E Test safe to install?

Our automated static check of SKILL.md found notes only (runs commands with sudo; pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does E2E Test use?

E2E Test 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.

How many tokens does E2E Test use?

About 3.3k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to E2E Test?

Skills that share tags, products or a category with E2E Test: Openclaw Parallels Smoke (SafeAI-Lab-X/ClawKeeper, 1k stars), CLI E2E Testing (microsoft/aspire, 6.3k stars), Cross Platform Gui E2E Test (StudentWeis/ropy, 193 stars) and Build Images (kubernetes-sigs/cloud-provider-azure, 294 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains E2E Test?

crc-org (a GitHub organization) maintains it in crc-org/crc, which has 1,389 GitHub stars. The repository holds 2 skills in this directory. The repository was last updated on October 7, 2026.

Source: crc-org/crc on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.