Skip to content
cccskills
FreePublished on GitHub

testing-standards

Testing standards for LoongCollector: unit tests, e2e tests, benchmarks. Reference when writing or reviewing tests.

The English summary is being prepared. Showing the original description.

Works withKubernetes
See how to install

Files included (1)

  • SKILL.md3.1 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

LoongCollector Testing Standards

Test Categories

1. Unit Tests (C++)

  • Use Google Test (GTest) / Google Mock
  • Place in core/unittest/
  • Cover success and failure paths
  • Core logic must have 100% coverage
  • Test boundary conditions explicitly
  • Test naming: accurately describe behavior being tested
  • Each core/unittest/*/ directory produces one executable
  • Build and run tests from inside build/ to ensure relative paths and temp files work correctly
  • See skills/compile/SKILL.md for build & run instructions

2. Unit Tests (Go)

  • Use standard testing package
  • Table-driven tests for function coverage
  • Integration tests via E2E framework

3. E2E Tests

  • BDD Godog framework
  • Configuration-driven via .feature files
  • See skills/e2e/SKILL.md for complete guide (design → write → run → debug)

4. Benchmarks

  • Required for performance-sensitive code paths
  • Compare against baseline versions
  • Measure throughput, latency, CPU/Memory usage

E2E Test Quick Reference

Feature File Structure

@input
Feature: input file
  Test input file

  @e2e @host
  Scenario: TestInputFileWithRegexSingle
    Given {host} environment
    Given subcribe data from {sls} with config
    """
    enable: true
    inputs:
      - Type: input_file
    """
    When generate {100} regex logs to file {/tmp/loongcollector/regex_single.log}, with interval {100}ms
    Then there is {100} logs

Behavior Types

TypePurpose
GivenSetup/prepare test conditions
WhenTrigger test actions (e.g., log generation)
ThenVerify test results

Environment Tags

  • @host - Host environment
  • @k8s - Kubernetes environment
  • @docker-compose - Docker Compose environment
  • @e2e - E2E test marker
  • @regression - Regression test marker

Adding New Test Behaviors

  1. Write the Go function in the appropriate directory:
    • cleanup/ - Post-test cleanup (auto-executed)
    • control/ - Control operations (init, config)
    • setup/ - Environment setup
    • trigger/ - Data generation
    • verify/ - Result verification
  2. Function signature: func Name(ctx context.Context, params...) (context.Context, error)
  3. Register in test/e2e_enterprise/main_test.go via scenarioInitializer
  4. Use in feature files with {param} syntax

Strict Rules

  • Do NOT change behavior of the method being tested
  • Do NOT modify existing test behaviors in engine
  • Always start trigger When begin trigger BEFORE generating logs
  • Only use registered behaviors from test/engine/steps.go
  • Verify behavior type matches (Given/When/Then)

Test Naming

  • Format: Test${FunctionName}${CaseBriefDescription}
  • Examples: TestInputFileWithBlackListDir, TestInputFileWithRegexSingle
  • Must include @e2e and environment tags

Benchmark Testing

For performance-sensitive code:

  1. Provide baseline comparison
  2. Measure: throughput, latency, CPU profile, memory profile
  3. Run under realistic load conditions
  4. Document methodology and results

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

在进行 Code Review 时,使用这个技能对 LoongCollector 变更进行安全导向、架构一致性优先的深度代码评审。

The English summary is being prepared. Showing the original description.

alibaba/loongcollector2.2KUpdated Oct 21, 2026

commit

Free

按 Conventional Commits 规范编写提交信息。在创建 git commit 时使用。

The English summary is being prepared. Showing the original description.

alibaba/loongcollector2.2KUpdated Oct 21, 2026

编译 LoongCollector C++ 与 Go 组件。涉及构建、单元测试或镜像时使用。

The English summary is being prepared. Showing the original description.

alibaba/loongcollector2.2KUpdated Oct 21, 2026

Design document writing conventions. Use when writing or reviewing technical design documents.

The English summary is being prepared. Showing the original description.

alibaba/loongcollector2.2KUpdated Oct 21, 2026

e2e

Free

LoongCollector E2E 测试全流程指南:设计、编写、运行和调试。当需要编写新 E2E 测试、运行现有测试、或排查 E2E 测试失败时使用此 skill。

The English summary is being prepared. Showing the original description.

alibaba/loongcollector2.2KUpdated Oct 21, 2026

LoongCollector E2E Testing Framework Development Guide. Use this rule when you need to understand E2E testing framework architecture, develop new test behavior functions, or extend testing capabilities. Contains detailed BDD testing framework usage, test behavior function development and registration workflows, and comprehensive reference of existing testing capabilities. Example: When adding custom test behaviors for new plugins, use this rule to understand how to write and register new test functions. Example: When developing E2E tests, use this rule to understand the e2e framework.

The English summary is being prepared. Showing the original description.

alibaba/loongcollector2.2KUpdated Oct 21, 2026

See all skills by alibaba

Report a problem with this skill