blob: e1a7b71dff9175da5f261f8fd2eaf7b72effcd76 [file] [log] [blame]
// Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
import 'dart:async';
import 'dart:io';
import 'package:analyzer_fe_comparison/comparison.dart';
import 'package:path/path.dart' as path;
/// Compares the analyzer and front_end behavior when compiling a package.
///
/// Currently hardcoded to use the package "analyzer".
main() async {
var scriptPath = Platform.script.toFilePath();
var sdkRepoPath =
path.normalize(path.join(path.dirname(scriptPath), '..', '..', '..'));
var buildPath = await _findBuildDir(sdkRepoPath, 'ReleaseX64');
var dillPath = path.join(buildPath, 'vm_platform_strong.dill');
var analyzerLibPath = path.join(sdkRepoPath, 'pkg', 'analyzer', 'lib');
var packagesFilePath = path.join(sdkRepoPath, '.packages');
comparePackages(dillPath, analyzerLibPath, packagesFilePath);
}
Future<String> _findBuildDir(String sdkRepoPath, String targetName) async {
for (var subdirName in ['out', 'xcodebuild']) {
var candidatePath = path.join(sdkRepoPath, subdirName, targetName);
if (await new Directory(candidatePath).exists()) {
return candidatePath;
}
}
throw new StateError('Cannot find build directory');
}