Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(45)

Unified Diff: tools/gardening/lib/compare_failures.dart

Issue 2753513005: Add status_summary and current_summary to tools/gardening (Closed)
Patch Set: dartfmt Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: tools/gardening/lib/compare_failures.dart
diff --git a/tools/gardening/compare_failures.dart b/tools/gardening/lib/compare_failures.dart
similarity index 77%
rename from tools/gardening/compare_failures.dart
rename to tools/gardening/lib/compare_failures.dart
index 7c4f3cb5f7e7405a787d0eb1cd08247065b61dc2..5f225dd2b5de7617abdf42b656c3148a1c4af199 100644
--- a/tools/gardening/compare_failures.dart
+++ b/tools/gardening/lib/compare_failures.dart
@@ -10,6 +10,9 @@ import 'dart:async';
import 'dart:convert';
import 'dart:io';
+import 'src/buildbot_structures.dart';
+import 'src/util.dart';
+
main(List<String> args) async {
if (args.length != 1) {
print('Usage: compare_failures <log-uri>');
@@ -36,7 +39,7 @@ Future<List<BuildResult>> readBuildResults(
BuildResult firstSummary = await readBuildResult(client, buildUri);
summaries.add(firstSummary);
if (firstSummary.hasFailures) {
- for (int i = 0; i < 5; i++) {
+ for (int i = 0; i < 10; i++) {
buildUri = buildUri.prev();
summaries.add(await readBuildResult(client, buildUri));
}
@@ -218,75 +221,6 @@ class BuildResult {
}
}
-/// The [Uri] of a build step stdio log split into its subparts.
-class BuildUri {
- final String scheme;
- final String host;
- final String prefix;
- final String botName;
- final int buildNumber;
- final String stepName;
- final String suffix;
-
- factory BuildUri(Uri uri) {
- String scheme = uri.scheme;
- String host = uri.host;
- List<String> parts =
- split(uri.path, ['/builders/', '/builds/', '/steps/', '/logs/']);
- String prefix = parts[0];
- String botName = parts[1];
- int buildNumber = int.parse(parts[2]);
- String stepName = parts[3];
- String suffix = parts[4];
- return new BuildUri.internal(
- scheme, host, prefix, botName, buildNumber, stepName, suffix);
- }
-
- BuildUri.internal(this.scheme, this.host, this.prefix, this.botName,
- this.buildNumber, this.stepName, this.suffix);
-
- String get buildName =>
- '/builders/$botName/builds/$buildNumber/steps/$stepName';
-
- String get path => '$prefix$buildName/logs/$suffix';
-
- /// Creates the [Uri] for this build step stdio log.
- Uri toUri() {
- return new Uri(scheme: scheme, host: host, path: path);
- }
-
- /// Returns the [BuildUri] the previous build of this build step.
- BuildUri prev() {
- return new BuildUri.internal(
- scheme, host, prefix, botName, buildNumber - 1, stepName, suffix);
- }
-
- String toString() {
- return buildName;
- }
-}
-
-/// Id for a test on a specific configuration, for instance
-/// `dart2js-chrome release_x64/co19/Language/Metadata/before_function_t07`.
-class TestConfiguration {
- final String configName;
- final String testName;
-
- TestConfiguration(this.configName, this.testName);
-
- String toString() {
- return '$configName $testName';
- }
-
- int get hashCode => configName.hashCode * 17 + testName.hashCode * 19;
-
- bool operator ==(other) {
- if (identical(this, other)) return true;
- if (other is! TestConfiguration) return false;
- return configName == other.configName && testName == other.testName;
- }
-}
-
/// Test failure data derived from the test failure summary in the build step
/// stdio log.
class TestFailure {
@@ -302,7 +236,7 @@ class TestFailure {
String archName = parts[2];
String testName = parts[3];
TestConfiguration id =
- new TestConfiguration(configName, '$archName/$testName');
+ new TestConfiguration(configName, archName, testName);
String expected = split(lines[1], ['Expected: '])[1];
String actual = split(lines[2], ['Actual: '])[1];
return new TestFailure.internal(
@@ -365,37 +299,16 @@ List<Timing> parseTimings(BuildUri uri, String line) {
String configName = parts[2];
String testNames = parts[3];
List<Timing> timings = <Timing>[];
- for (String testName in testNames.split(',')) {
+ for (String name in testNames.split(',')) {
+ name = name.trim();
+ int slashPos = name.indexOf('/');
+ String archName = name.substring(0, slashPos);
+ String testName = name.substring(slashPos + 1);
timings.add(new Timing(
uri,
time,
new TestStep(
- stepName, new TestConfiguration(configName, testName.trim()))));
+ stepName, new TestConfiguration(configName, archName, testName))));
}
return timings;
}
-
-/// Split [text] using [infixes] as infix markers.
-List<String> split(String text, List<String> infixes) {
- List<String> result = <String>[];
- int start = 0;
- for (String infix in infixes) {
- int index = text.indexOf(infix, start);
- if (index == -1)
- throw "'$infix' not found in '$text' from offset ${start}.";
- result.add(text.substring(start, index));
- start = index + infix.length;
- }
- result.add(text.substring(start));
- return result;
-}
-
-/// Pad [text] with spaces to the right to fit [length].
-String padRight(String text, int length) {
- if (text.length < length) return '${text}${' ' * (length - text.length)}';
- return text;
-}
-
-void log(String text) {
- print(text);
-}

Powered by Google App Engine
This is Rietveld 408576698