neo_solidity/
testing.rs

1//! Testing Utilities Module
2//!
3//! Helpers for testing the compiler.
4
5/// Test case result
6#[derive(Debug)]
7pub struct TestResult {
8    pub name: String,
9    pub passed: bool,
10    pub duration_ms: u64,
11    pub message: Option<String>,
12}
13
14impl TestResult {
15    pub fn pass(name: impl Into<String>) -> Self {
16        Self {
17            name: name.into(),
18            passed: true,
19            duration_ms: 0,
20            message: None,
21        }
22    }
23
24    pub fn fail(name: impl Into<String>, msg: impl Into<String>) -> Self {
25        Self {
26            name: name.into(),
27            passed: false,
28            duration_ms: 0,
29            message: Some(msg.into()),
30        }
31    }
32}
33
34/// Test suite
35#[derive(Default)]
36pub struct TestSuite {
37    results: Vec<TestResult>,
38}
39
40impl TestSuite {
41    pub fn new() -> Self {
42        Self::default()
43    }
44
45    pub fn add(&mut self, result: TestResult) {
46        self.results.push(result);
47    }
48
49    pub fn passed(&self) -> usize {
50        self.results.iter().filter(|r| r.passed).count()
51    }
52
53    pub fn failed(&self) -> usize {
54        self.results.iter().filter(|r| !r.passed).count()
55    }
56
57    pub fn total(&self) -> usize {
58        self.results.len()
59    }
60}