vello/tests/src/main.rs
Raph Levien bd39d26bce Improve collection and reporting of test results
Have a structured way of gathering test results, rather than the
existing ad hoc approach of just printing stuff.

The details are still pretty primitive, but there's room to grow.
2021-11-09 14:40:53 -08:00

78 lines
2.2 KiB
Rust

// Copyright 2021 The piet-gpu authors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// https://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
// Also licensed under MIT license, at your choice.
//! Tests for piet-gpu shaders and GPU capabilities.
mod config;
mod prefix;
mod prefix_tree;
mod runner;
mod test_result;
use clap::{App, Arg};
use crate::config::Config;
use crate::runner::Runner;
use crate::test_result::{ReportStyle, TestResult};
fn main() {
let matches = App::new("piet-gpu-tests")
.arg(
Arg::with_name("verbose")
.short("v")
.long("verbose")
.help("Verbose reporting of results"),
)
.arg(
Arg::with_name("groups")
.short("g")
.long("groups")
.help("Groups to run")
.takes_value(true)
)
.arg(
Arg::with_name("size")
.short("s")
.long("size")
.help("Size of tests")
.takes_value(true)
)
.arg(
Arg::with_name("n_iter")
.short("n")
.long("n_iter")
.help("Number of iterations")
.takes_value(true)
)
.get_matches();
let style = if matches.is_present("verbose") {
ReportStyle::Verbose
} else {
ReportStyle::Short
};
let config = Config::from_matches(&matches);
unsafe {
let report = |test_result: &TestResult| {
test_result.report(style);
};
let mut runner = Runner::new();
if config.groups.matches("prefix") {
report(&prefix::run_prefix_test(&mut runner, &config));
report(&prefix_tree::run_prefix_test(&mut runner, &config));
}
}
}