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

Side by Side Diff: tools/gardening/lib/src/util.dart

Issue 2998993002: Use timeout to read most recent build from http (Closed)
Patch Set: Updated cf. comments Created 3 years, 4 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 unified diff | Download patch
« no previous file with comments | « tools/gardening/lib/src/compare_failures_impl.dart ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 import 'dart:async'; 5 import 'dart:async';
6 import 'dart:convert'; 6 import 'dart:convert';
7 import 'dart:io'; 7 import 'dart:io';
8 8
9 import 'package:args/args.dart'; 9 import 'package:args/args.dart';
10 10
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
58 class HttpException implements Exception { 58 class HttpException implements Exception {
59 final Uri uri; 59 final Uri uri;
60 final int statusCode; 60 final int statusCode;
61 61
62 HttpException(this.uri, this.statusCode); 62 HttpException(this.uri, this.statusCode);
63 63
64 String toString() => '$uri: $statusCode'; 64 String toString() => '$uri: $statusCode';
65 } 65 }
66 66
67 /// Reads the content of [uri] as text. 67 /// Reads the content of [uri] as text.
68 Future<String> readUriAsText(HttpClient client, Uri uri) async { 68 Future<String> readUriAsText(
69 HttpClient client, Uri uri, Duration timeout) async {
69 HttpClientRequest request = await client.getUrl(uri); 70 HttpClientRequest request = await client.getUrl(uri);
70 HttpClientResponse response = await request.close(); 71 HttpClientResponse response = await request.close();
71 if (response.statusCode != 200) { 72 if (response.statusCode != 200) {
72 response.drain(); 73 response.drain();
73 throw new HttpException(uri, response.statusCode); 74 throw new HttpException(uri, response.statusCode);
74 } 75 }
75 return response.transform(UTF8.decoder).join(); 76 if (timeout != null) {
77 return response.timeout(timeout).transform(UTF8.decoder).join();
78 } else {
79 return response.transform(UTF8.decoder).join();
80 }
76 } 81 }
77 82
78 ArgParser createArgParser() { 83 ArgParser createArgParser() {
79 ArgParser argParser = new ArgParser(allowTrailingOptions: true); 84 ArgParser argParser = new ArgParser(allowTrailingOptions: true);
80 argParser.addFlag('help', help: "Help"); 85 argParser.addFlag('help', help: "Help");
81 argParser.addFlag('verbose', 86 argParser.addFlag('verbose',
82 abbr: 'v', negatable: false, help: "Turn on logging output."); 87 abbr: 'v', negatable: false, help: "Turn on logging output.");
83 argParser.addFlag('no-cache', help: "Disable caching."); 88 argParser.addFlag('no-cache', help: "Disable caching.");
84 argParser.addOption('cache', 89 argParser.addOption('cache',
85 help: "Use <dir> for caching test output.\n" 90 help: "Use <dir> for caching test output.\n"
86 "Defaults to 'temp/gardening-cache/'."); 91 "Defaults to 'temp/gardening-cache/'.");
87 argParser.addFlag('logdog', 92 argParser.addFlag('logdog',
88 negatable: false, help: "Pull test results from logdog."); 93 negatable: false, help: "Pull test results from logdog.");
89 return argParser; 94 return argParser;
90 } 95 }
91 96
92 void processArgResults(ArgResults argResults) { 97 void processArgResults(ArgResults argResults) {
93 if (argResults['verbose']) { 98 if (argResults['verbose']) {
94 LOG = true; 99 LOG = true;
95 } 100 }
96 if (argResults['cache'] != null) { 101 if (argResults['cache'] != null) {
97 cache.base = Uri.base.resolve('${argResults['cache']}/'); 102 cache.base = Uri.base.resolve('${argResults['cache']}/');
98 } 103 }
99 if (argResults['no-cache']) { 104 if (argResults['no-cache']) {
100 cache.base = null; 105 cache.base = null;
101 } 106 }
102 } 107 }
OLDNEW
« no previous file with comments | « tools/gardening/lib/src/compare_failures_impl.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698