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

Side by Side Diff: pkg/analysis_server/test/performance/local_runner.dart

Issue 1219023006: move performance measurement to benchmark/integration (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: merge Created 5 years, 5 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
OLDNEW
(Empty)
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
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.
4
5 import 'dart:io';
6 import 'package:path/path.dart';
7 import 'main.dart' as performance;
8
9 // Local driver for performance measurement
10
11 main(List<String> args) {
12 /*
13 * Parse arguments
14 */
15 if (args.length != 3) printHelp('Expected 3 arguments');
16 var gitDir = new Directory(args[0]);
17 if (!gitDir.existsSync()) printHelp('${gitDir.path} does not exist');
18 if (!new Directory(join(gitDir.path, '.git')).existsSync()) printHelp(
19 '${gitDir.path} does not appear to be a local git repository');
20 var branch = args[1];
21 var inputFile = new File(args[2]);
22 if (!inputFile.existsSync()) printHelp('${inputFile.path} does not exist');
23 /*
24 * Create a new temp directory
25 */
26 var tmpDir = new Directory(
27 join(Directory.systemTemp.path, 'analysis_server_perf_target'));
28 if (!tmpDir.path.contains('tmp')) throw 'invalid tmp directory\n $tmpDir';
29 print('Extracting target analysis environment into\n ${tmpDir.path}');
30 if (tmpDir.existsSync()) tmpDir.deleteSync(recursive: true);
31 tmpDir.createSync(recursive: true);
32 /*
33 * Setup the initial target source in the temp directory
34 */
35 var tarFilePath = join(tmpDir.path, 'targetSrc.tar');
36 var result = Process.runSync('git', ['archive', branch, '-o', tarFilePath],
37 workingDirectory: gitDir.path);
38 if (result.exitCode != 0) throw 'failed to obtain target source: $result';
39 var tmpSrcDirPath = join(tmpDir.path, 'targetSrc');
40 new Directory(tmpSrcDirPath).createSync();
41 result = Process.runSync('tar', ['-xf', tarFilePath],
42 workingDirectory: tmpSrcDirPath);
43 if (result.exitCode != 0) throw 'failed to extract target source: $result';
44 /*
45 * Symlink the out or xcodebuild directory
46 */
47 var outDirName = 'out';
48 if (!new Directory(join(gitDir.path, outDirName)).existsSync()) {
49 outDirName = 'xcodebuild';
50 }
51 if (!new Directory(join(gitDir.path, outDirName)).existsSync()) {
52 throw 'failed to find out or xcodebuild directory';
53 }
54 result = Process.runSync('ln', [
55 '-s',
56 join(gitDir.path, outDirName),
57 join(tmpSrcDirPath, outDirName)
58 ]);
59 if (result.exitCode != 0) throw 'failed to link out or xcodebuild: $result';
60 /*
61 * Launch the performance analysis tool
62 */
63 performance.main([
64 //'-vv', // very verbose
65 //'-d8081', // analysis server localhost diagnostic port
66 '-i${inputFile.path}',
67 '-t$tmpSrcDirPath',
68 '-m${gitDir.path},$tmpSrcDirPath',
69 ]);
70 }
71
72 /// Print help and exit
73 void printHelp([String errMsg]) {
74 if (errMsg != null) {
75 print('');
76 print('Error: $errMsg');
77 print('');
78 }
79 print('Arguments: <gitDir> <branch> <inputFile>');
80 print('gitDir = git repository containing the initial target source');
81 print('branch = the branch containing the initial target source');
82 print('inputFile = the instrumentation or log file');
83 exit(1);
84 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698