blob: b7d26ba9e147969a3d093706d2c59b0761234a09 [file] [log] [blame]
// Copyright (c) 2020, 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.md file.
/// This scripts is a very simple test runner that produces a results.json
/// from a hard-coded list and can be used to create test data for the test
/// result infrastructure on a builder.
import 'dart:io';
import 'dart:convert';
import 'package:args/args.dart';
const suite = "ci-test-data";
const results = [
Result("test_a", "Pass"),
Result("test_b", "Pass"),
];
class Result {
final String name;
final String result;
const Result(this.name, this.result);
Map<String, Object> toJson(String configuration) => {
"test_name": name,
"result": result,
"configuration": configuration,
"suite": suite,
"time_ms": 0,
"expected": "Pass",
"matches": result == "Pass",
"name": "$suite/$name",
};
}
main(args) {
var parser = new ArgParser()
..addOption("named-configuration",
abbr: "n", help: "configuration name emitted json results")
..addOption("output-directory",
help: "directory to which results.json is written");
var parsedArguments = parser.parse(args);
var configuration = parsedArguments["named-configuration"];
var outputDirectory = parsedArguments["output-directory"];
if (configuration == null || outputDirectory == null) {
print("usage: create_ci_test_data -n<CONFIGURATION> "
"--output-directory <PATH>");
exit(1);
}
var extendedResults =
results.map((result) => jsonEncode(result.toJson(configuration)));
StringBuffer sb = StringBuffer();
for (var result in extendedResults) {
sb.writeln(result);
}
var outputFile =
File.fromUri(Uri.directory(outputDirectory).resolve("results.json"));
outputFile.writeAsStringSync(sb.toString());
}