ftest/src/runner/results.rs

64 lines
1.7 KiB
Rust

// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
//
// SPDX-License-Identifier: AGPL-3.0-or-later
use std::collections::HashMap;
use semver::Version;
use serde::{Deserialize, Serialize};
use url::Url;
use crate::complaince::suite::Suite;
use crate::docker::Log;
#[derive(Clone, Debug, Eq, PartialEq, Deserialize, Serialize)]
pub struct ArchivableInitResult {
pub success: bool,
pub exit_code: isize,
pub container: ArchivableContainer,
}
#[derive(Clone, Debug, Eq, PartialEq, Deserialize, Serialize)]
pub struct ArchivableTestResult {
pub success: bool,
// sent by the app
pub logs: String,
pub container: ArchivableContainer,
}
#[derive(Clone, Debug, Eq, PartialEq, Deserialize, Serialize)]
pub struct ArchivableContainer {
pub logs: Log,
pub name: String,
}
#[derive(Clone, Debug, Eq, PartialEq, Deserialize, Serialize)]
pub struct ArchivableTest {
pub name: String,
pub url: Url,
pub version: Version,
// URL to the container image, the version should be the tag
pub container: String,
pub env_vars: Option<HashMap<String, String>>,
pub result: ArchivableTestResult,
}
#[derive(Clone, Debug, Eq, PartialEq, Deserialize, Serialize)]
pub struct ArchivableSuiteResult {
pub suite: Suite,
pub tests: Vec<ArchivableTest>,
}
#[derive(Clone, Debug, Eq, PartialEq, Deserialize, Serialize)]
pub struct ArchivableResult {
pub commit: String,
pub suites: Vec<ArchivableSuiteResult>,
pub init_containers: Option<Vec<ArchivableInitResult>>,
pub specimen_logs: Vec<ArchivableContainer>,
}
#[derive(Clone, Debug, Eq, PartialEq, Deserialize, Serialize)]
pub struct LatestFile {
pub latest: String,
}