name: dart-log-failure-parser description: Parse failures from Dart and Flutter test logs.
Dart Log Failure Parser
Workflow
1. Analyze Raw Log Output
Analyze the raw log output for failure details. Do not skim the output; check the entire log. The description of findings should include specific details for the failures (e.g., unformatted files, specific test names), not just the top-level command that failed.
2. Look for Failure Patterns
Pattern A: Error Blocks (e.g., Linux Analyze)
Search for blocks starting with ╡ERROR #.
Example:
╔═╡ERROR #1╞════════════════════════════════════════════════════════════════════
║ Command: bin/cache/dart-sdk/bin/dart --enable-asserts /b/s/w/ir/x/w/flutter/dev/bots/analyze_snippet_code.dart --verbose
║ Command exited with exit code 255 but expected zero exit code.
║ Working directory: /b/s/w/ir/x/w/flutter
╚═══════════════════════════════════════════════════════════════════════════════
Pattern B: Task Result JSON
Search for "Task result:" followed by a JSON object. Example:
Task result:
{
"success": false,
"reason": "Task failed: PathNotFoundException: Cannot open file..."
}
Pattern C: Failing Tests List
For general Dart tests, look for a list at the end of the log starting with "Failing tests:". Example:
Failing tests:
test/general.shard/cache_test.dart: FontSubset artifacts for all platforms on arm64 hosts
test/general.shard/cache_test.dart: FontSubset artifacts on arm64 linux
Pattern D: Build Failures
For build failures (e.g., engine tests failing at compile time), look for the following indicators in the logs or API summaries:
- Lines starting with
FAILED:(indicates a Ninja target failed). - Compiler error messages (e.g.,
error:,fatal error:). - Linker error messages (e.g.,
undefined reference to). - Summary messages in the check-runs API output like
1 build failed: [<build_name>].