mirror of
https://github.com/flutter/flutter.git
synced 2025-06-03 00:51:18 +00:00

We now have 100% coverage of animation.dart and animation_controller.dart. Also, add some basic tools for working with lcov files. These tools need much more polish.
65 lines
2.0 KiB
Dart
65 lines
2.0 KiB
Dart
// Copyright 2016 The Chromium Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
// Downloads and merges line coverage data files for package:flutter.
|
|
|
|
import 'dart:async';
|
|
import 'dart:io';
|
|
|
|
import 'package:args/args.dart';
|
|
import 'package:path/path.dart' as path;
|
|
|
|
const String kBaseLcov = 'packages/flutter/coverage/lcov.base.info';
|
|
const String kTargetLcov = 'packages/flutter/coverage/lcov.info';
|
|
const String kSourceLcov = 'packages/flutter/coverage/lcov.source.info';
|
|
|
|
Future<int> main(List<String> args) async {
|
|
if (path.basename(Directory.current.path) == 'tools')
|
|
Directory.current = Directory.current.parent.parent;
|
|
|
|
ProcessResult result = Process.runSync('which', <String>['lcov']);
|
|
if (result.exitCode != 0) {
|
|
print('Cannot find lcov. Consider running "apt-get install lcov".\n');
|
|
return 1;
|
|
}
|
|
|
|
if (!FileSystemEntity.isFileSync(kBaseLcov)) {
|
|
print(
|
|
'Cannot find "$kBaseLcov". Consider downloading it from from cloud storage.\n'
|
|
'https://storage.googleapis.com/flutter_infra/flutter/coverage/lcov.info\n'
|
|
);
|
|
return 1;
|
|
}
|
|
|
|
ArgParser argParser = new ArgParser();
|
|
argParser.addFlag('merge', negatable: false);
|
|
ArgResults results = argParser.parse(args);
|
|
|
|
if (FileSystemEntity.isFileSync(kTargetLcov)) {
|
|
if (results['merge']) {
|
|
new File(kTargetLcov).renameSync(kSourceLcov);
|
|
} else {
|
|
print('"$kTargetLcov" already exists. Did you want to --merge?\n');
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
if (results['merge']) {
|
|
if (!FileSystemEntity.isFileSync(kSourceLcov)) {
|
|
print('Cannot merge because "$kSourceLcov" does not exist.\n');
|
|
return 1;
|
|
}
|
|
|
|
ProcessResult result = Process.runSync('lcov', <String>[
|
|
'--add-tracefile', kBaseLcov,
|
|
'--add-tracefile', kSourceLcov,
|
|
'--output-file', kTargetLcov,
|
|
]);
|
|
return result.exitCode;
|
|
}
|
|
|
|
print('No operation requested. Did you want to --merge?\n');
|
|
return 0;
|
|
}
|