aboutsummaryrefslogtreecommitdiff
path: root/mingling_ci/src/cmd/cmd_test_examples.rs
diff options
context:
space:
mode:
Diffstat (limited to 'mingling_ci/src/cmd/cmd_test_examples.rs')
-rw-r--r--mingling_ci/src/cmd/cmd_test_examples.rs69
1 files changed, 0 insertions, 69 deletions
diff --git a/mingling_ci/src/cmd/cmd_test_examples.rs b/mingling_ci/src/cmd/cmd_test_examples.rs
deleted file mode 100644
index 602ada3..0000000
--- a/mingling_ci/src/cmd/cmd_test_examples.rs
+++ /dev/null
@@ -1,69 +0,0 @@
-use colored::Colorize;
-use mingling::{
- Grouped, Routable,
- macros::{buffer, command, renderer},
- res::ResExitCode,
-};
-
-use crate::Next;
-use crate::examples::{check_example, load_test_configs};
-use crate::progress::task_progress_bar;
-use crate::reporter::{self, ReportResult};
-
-#[command(node = "test-examples")]
-pub async fn test_examples() -> Next {
- reporter::set_task("Test-Examples");
-
- let configs = load_test_configs();
- let total = configs.len();
- let pb = task_progress_bar(total, "Testing");
- pb.set_message("examples");
-
- // One blocking task per example: build + run its test cases.
- let mut handles = Vec::new();
- for example in configs {
- handles.push(tokio::task::spawn_blocking(move || check_example(example)));
- }
-
- let mut fail_count = 0;
- for handle in handles {
- let Ok(outcome) = handle.await else {
- continue;
- };
- pb.set_message(outcome.name.clone());
- pb.inc(1);
-
- if outcome.ok {
- reporter::export(&outcome.name, &outcome.location, ReportResult::Ok);
- } else {
- fail_count += 1;
- // Plain stderr: `pb.println` is swallowed on non-TTY (CI).
- eprintln!(" {} {}", "failed".bright_red(), outcome.name);
- eprintln!(" {}", outcome.output);
- reporter::export(
- &outcome.name,
- &outcome.location,
- ReportResult::Error(outcome.output),
- );
- }
- }
-
- pb.finish_and_clear();
- reporter::flush();
-
- ResultTestExamples { fail_count }.to_chain()
-}
-
-/// Number of examples that failed to build or pass their tests.
-#[derive(Grouped)]
-pub struct ResultTestExamples {
- pub fail_count: usize,
-}
-
-/// Silently sets a non-zero exit code when any example failed.
-#[renderer(buffer)]
-pub fn render_test_examples(r: ResultTestExamples, exit_code: &mut ResExitCode) {
- if r.fail_count > 0 {
- exit_code.exit_code = 1;
- }
-}