Back to all reviewers

ensure test cleanup

cloudflare/workerd
Based on 2 comments
Other

Tests must properly clean up resources and handle conditional execution regardless of test outcome. This includes removing temporary files, resetting global state, and gracefully handling feature flag conditions.

Testing Other

Reviewer Prompt

Tests must properly clean up resources and handle conditional execution regardless of test outcome. This includes removing temporary files, resetting global state, and gracefully handling feature flag conditions.

For file-based tests, use RAII patterns or explicit cleanup in finally blocks to ensure resources are released even when tests fail:

KJ_TEST("PerfettoSession basic functionality") {
  auto traceFile = getTempFileName("perfetto-test");
  
  // Use RAII or try-finally pattern
  KJ_DEFER(removeFile(traceFile.cStr()));
  
  {
    PerfettoSession session(traceFile, "workerd");
    // ... test operations
  }
  
  KJ_ASSERT(fileExists(traceFile.cStr()));
  // File automatically cleaned up by KJ_DEFER
}

For tests that depend on feature flags or autogates, check conditions early and skip gracefully rather than creating complex conditional logic:

KJ_TEST("feature dependent test") {
  if (util::Autogate::isEnabled("feature-flag")) {
    KJ_LOG(INFO, "Skipping test due to autogate being enabled");
    return;
  }
  
  // ... rest of test
}

This prevents resource leaks, reduces flaky tests, and makes test behavior predictable across different environments and configurations.

2
Comments Analyzed
Other
Primary Language
Testing
Category

Source Discussions