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

Unified Diff: pkg/analysis_server/test/performance/input_converter.dart

Issue 1201263002: performance measurement: add explicit temp source directory argument (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: merge Created 5 years, 6 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
« no previous file with comments | « no previous file | pkg/analysis_server/test/performance/instrumentation_input_converter.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/analysis_server/test/performance/input_converter.dart
diff --git a/pkg/analysis_server/test/performance/input_converter.dart b/pkg/analysis_server/test/performance/input_converter.dart
index cc18483d5d9acbab3dd36dfb97108e8e08155a7b..9acf61a71c56560912b7f93a1ee5e902b97032bf 100644
--- a/pkg/analysis_server/test/performance/input_converter.dart
+++ b/pkg/analysis_server/test/performance/input_converter.dart
@@ -11,6 +11,7 @@ import 'package:analysis_server/src/constants.dart';
import 'package:analysis_server/src/protocol.dart';
import 'package:analyzer/src/generated/java_engine.dart';
import 'package:logging/logging.dart';
+import 'package:path/path.dart' as path;
import 'instrumentation_input_converter.dart';
import 'log_file_input_converter.dart';
@@ -30,6 +31,18 @@ abstract class CommonInputConverter extends Converter<String, Operation> {
final Map<String, dynamic> expectedErrors = new Map<String, dynamic>();
/**
+ * A mapping of current overlay content
+ * parallel to what is in the analysis server
+ * so that we can update the file system.
+ */
+ final Map<String, String> overlays = new Map<String, String>();
+
+ /**
+ * The prefix used to determine if a request parameter is a file path.
+ */
+ final String rootPrefix = path.rootPrefix(path.current);
+
+ /**
* A mapping of source path prefixes
* from location where instrumentation or log file was generated
* to the target location of the source using during performance measurement.
@@ -37,13 +50,12 @@ abstract class CommonInputConverter extends Converter<String, Operation> {
final Map<String, String> srcPathMap;
/**
- * A mapping of current overlay content
- * parallel to what is in the analysis server
- * so that we can update the file system.
+ * The root directory for all source being modified
+ * during performance measurement.
*/
- final Map<String, String> overlays = new Map<String, String>();
+ final String tmpSrcDirPath;
- CommonInputConverter(this.srcPathMap);
+ CommonInputConverter(this.tmpSrcDirPath, this.srcPathMap);
/**
* Return an operation for the notification or `null` if none.
@@ -76,25 +88,6 @@ abstract class CommonInputConverter extends Converter<String, Operation> {
Operation convertRequest(Map<String, dynamic> origJson) {
Map<String, dynamic> json = translateSrcPaths(origJson);
String method = json['method'];
- if (method == ANALYSIS_GET_HOVER ||
- method == ANALYSIS_SET_ANALYSIS_ROOTS ||
- method == ANALYSIS_SET_PRIORITY_FILES ||
- method == ANALYSIS_SET_SUBSCRIPTIONS ||
- method == ANALYSIS_UPDATE_OPTIONS ||
- method == COMPLETION_GET_SUGGESTIONS ||
- method == EDIT_GET_ASSISTS ||
- method == EDIT_GET_AVAILABLE_REFACTORINGS ||
- method == EDIT_GET_FIXES ||
- method == EDIT_GET_REFACTORING ||
- method == EDIT_SORT_MEMBERS ||
- method == EXECUTION_CREATE_CONTEXT ||
- method == EXECUTION_DELETE_CONTEXT ||
- method == EXECUTION_MAP_URI ||
- method == EXECUTION_SET_SUBSCRIPTIONS ||
- method == SERVER_GET_VERSION ||
- method == SERVER_SET_SUBSCRIPTIONS) {
- return new RequestOperation(this, json);
- }
// Sanity check operations that modify source
// to ensure that the operation is on source in temp space
if (method == ANALYSIS_UPDATE_CONTENT) {
@@ -134,6 +127,28 @@ abstract class CommonInputConverter extends Converter<String, Operation> {
});
return new RequestOperation(this, json);
}
+ // TODO(danrubel) replace this with code
+ // that just forwards the translated request
+ if (method == ANALYSIS_GET_HOVER ||
+ method == ANALYSIS_SET_ANALYSIS_ROOTS ||
+ method == ANALYSIS_SET_PRIORITY_FILES ||
+ method == ANALYSIS_SET_SUBSCRIPTIONS ||
+ method == ANALYSIS_UPDATE_OPTIONS ||
+ method == COMPLETION_GET_SUGGESTIONS ||
+ method == EDIT_GET_ASSISTS ||
+ method == EDIT_GET_AVAILABLE_REFACTORINGS ||
+ method == EDIT_GET_FIXES ||
+ method == EDIT_GET_REFACTORING ||
+ method == EDIT_SORT_MEMBERS ||
+ method == EXECUTION_CREATE_CONTEXT ||
+ method == EXECUTION_DELETE_CONTEXT ||
+ method == EXECUTION_MAP_URI ||
+ method == EXECUTION_SET_SUBSCRIPTIONS ||
+ method == SEARCH_FIND_ELEMENT_REFERENCES ||
+ method == SERVER_GET_VERSION ||
+ method == SERVER_SET_SUBSCRIPTIONS) {
+ return new RequestOperation(this, json);
+ }
throw 'unknown request: $method\n $json';
}
@@ -223,8 +238,8 @@ abstract class CommonInputConverter extends Converter<String, Operation> {
void validateSrcPaths(json) {
if (json is String) {
if (json != null &&
- json.startsWith('/Users/') &&
- !srcPathMap.values.any((String prefix) => json.startsWith(prefix))) {
+ path.isWithin(rootPrefix, json) &&
+ !path.isWithin(tmpSrcDirPath, json)) {
throw 'found path referencing source outside temp space\n$json';
}
} else if (json is List) {
@@ -256,6 +271,12 @@ class InputConverter extends Converter<String, Operation> {
final Map<String, String> srcPathMap;
/**
+ * The root directory for all source being modified
+ * during performance measurement.
+ */
+ final String tmpSrcDirPath;
+
+ /**
* The number of lines read before the underlying converter was determined
* or the end of file was reached.
*/
@@ -273,7 +294,7 @@ class InputConverter extends Converter<String, Operation> {
*/
bool active = true;
- InputConverter(this.srcPathMap);
+ InputConverter(this.tmpSrcDirPath, this.srcPathMap);
@override
Operation convert(String line) {
@@ -292,9 +313,9 @@ class InputConverter extends Converter<String, Operation> {
throw 'Failed to determine input file format';
}
if (InstrumentationInputConverter.isFormat(line)) {
- converter = new InstrumentationInputConverter(srcPathMap);
+ converter = new InstrumentationInputConverter(tmpSrcDirPath, srcPathMap);
} else if (LogFileInputConverter.isFormat(line)) {
- converter = new LogFileInputConverter(srcPathMap);
+ converter = new LogFileInputConverter(tmpSrcDirPath, srcPathMap);
}
if (converter != null) {
return converter.convert(line);
« no previous file with comments | « no previous file | pkg/analysis_server/test/performance/instrumentation_input_converter.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698