chore: apply clippy lints
This commit is contained in:
parent
1dcd1e955d
commit
963ce0174b
7 changed files with 38 additions and 41 deletions
|
@ -425,7 +425,7 @@ mod tests {
|
||||||
assert!(job.scheduled_at.is_none());
|
assert!(job.scheduled_at.is_none());
|
||||||
assert!(job.finished_at.is_none());
|
assert!(job.finished_at.is_none());
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
db.get_all_jobs_of_state(&*JOB_STATE_CREATE).await.unwrap(),
|
db.get_all_jobs_of_state(&JOB_STATE_CREATE).await.unwrap(),
|
||||||
vec![job, job2.clone()]
|
vec![job, job2.clone()]
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -433,7 +433,7 @@ mod tests {
|
||||||
let job = db.get_job(COMMIT_HASH).await.unwrap();
|
let job = db.get_job(COMMIT_HASH).await.unwrap();
|
||||||
assert!(job.scheduled_at.is_some());
|
assert!(job.scheduled_at.is_some());
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
db.get_all_jobs_of_state(&*JOB_STATE_RUNNING).await.unwrap(),
|
db.get_all_jobs_of_state(&JOB_STATE_RUNNING).await.unwrap(),
|
||||||
vec![job]
|
vec![job]
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -441,7 +441,7 @@ mod tests {
|
||||||
let job = db.get_job(COMMIT_HASH).await.unwrap();
|
let job = db.get_job(COMMIT_HASH).await.unwrap();
|
||||||
assert!(job.finished_at.is_some());
|
assert!(job.finished_at.is_some());
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
db.get_all_jobs_of_state(&*JOB_STATE_FINISH).await.unwrap(),
|
db.get_all_jobs_of_state(&JOB_STATE_FINISH).await.unwrap(),
|
||||||
vec![job]
|
vec![job]
|
||||||
);
|
);
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
|
|
|
@ -105,7 +105,7 @@ impl DockerLike for Docker {
|
||||||
Command::new("docker")
|
Command::new("docker")
|
||||||
.args(args)
|
.args(args)
|
||||||
.spawn()
|
.spawn()
|
||||||
.expect(&format!("unable to remove docker container {name}"));
|
.unwrap_or_else(|_| panic!("unable to remove docker container {name}"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,6 @@ use std::sync::Arc;
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
use serde_json::Value as JValue;
|
use serde_json::Value as JValue;
|
||||||
|
|
||||||
use crate::docker::Docker;
|
|
||||||
use crate::docker::DockerLike;
|
use crate::docker::DockerLike;
|
||||||
|
|
||||||
#[derive(Debug, Eq, PartialEq, Clone, Serialize, Deserialize)]
|
#[derive(Debug, Eq, PartialEq, Clone, Serialize, Deserialize)]
|
||||||
|
@ -61,7 +60,7 @@ impl DockerCompose {
|
||||||
return containers;
|
return containers;
|
||||||
}
|
}
|
||||||
|
|
||||||
return Vec::default();
|
Vec::default()
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn up(&self) {
|
pub fn up(&self) {
|
||||||
|
@ -90,7 +89,7 @@ impl DockerCompose {
|
||||||
.current_dir(&self.base_dir)
|
.current_dir(&self.base_dir)
|
||||||
.args(opts)
|
.args(opts)
|
||||||
.spawn()
|
.spawn()
|
||||||
.expect(&format!("unable to remove"));
|
.expect("unable to remove");
|
||||||
child.wait().unwrap();
|
child.wait().unwrap();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -99,6 +98,8 @@ impl DockerCompose {
|
||||||
mod tests {
|
mod tests {
|
||||||
use super::*;
|
use super::*;
|
||||||
|
|
||||||
|
use crate::docker::Docker;
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_docker_compose() {
|
fn test_docker_compose() {
|
||||||
DockerCompose::version();
|
DockerCompose::version();
|
||||||
|
|
|
@ -85,7 +85,7 @@ mod tests {
|
||||||
let repo = tmp.join("git_works");
|
let repo = tmp.join("git_works");
|
||||||
let contents = fs::read_to_string(repo.join("2_commit.txt")).unwrap();
|
let contents = fs::read_to_string(repo.join("2_commit.txt")).unwrap();
|
||||||
let commits = fs::read_to_string(commits_file).unwrap();
|
let commits = fs::read_to_string(commits_file).unwrap();
|
||||||
assert_eq!(commits.lines().into_iter().count(), 2);
|
assert_eq!(commits.lines().count(), 2);
|
||||||
assert!(contents.contains("bar"));
|
assert!(contents.contains("bar"));
|
||||||
assert!(!contents.contains("new commit"));
|
assert!(!contents.contains("new commit"));
|
||||||
|
|
||||||
|
@ -101,7 +101,7 @@ mod tests {
|
||||||
Git::pull(&repo, "master");
|
Git::pull(&repo, "master");
|
||||||
|
|
||||||
let new_commits = fs::read_to_string(commits_file).unwrap();
|
let new_commits = fs::read_to_string(commits_file).unwrap();
|
||||||
assert_eq!(new_commits.lines().into_iter().count(), 3);
|
assert_eq!(new_commits.lines().count(), 3);
|
||||||
|
|
||||||
let changes = Git::files_changed_from_previous_commit(&repo);
|
let changes = Git::files_changed_from_previous_commit(&repo);
|
||||||
assert_eq!(changes.len(), 1);
|
assert_eq!(changes.len(), 1);
|
||||||
|
|
|
@ -5,8 +5,6 @@
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
|
|
||||||
use crate::complaince::target::Target;
|
use crate::complaince::target::Target;
|
||||||
use crate::docker::Docker;
|
|
||||||
use crate::docker::DockerLike;
|
|
||||||
use crate::utils::get_random;
|
use crate::utils::get_random;
|
||||||
use crate::AppCtx;
|
use crate::AppCtx;
|
||||||
|
|
||||||
|
|
|
@ -10,6 +10,7 @@ use url::Url;
|
||||||
use super::results::*;
|
use super::results::*;
|
||||||
use crate::complaince::result::Result as CResult;
|
use crate::complaince::result::Result as CResult;
|
||||||
use crate::complaince::suite::Suite;
|
use crate::complaince::suite::Suite;
|
||||||
|
use crate::complaince::suite::Test;
|
||||||
use crate::utils::get_random;
|
use crate::utils::get_random;
|
||||||
|
|
||||||
pub struct SuiteRunnerState {
|
pub struct SuiteRunnerState {
|
||||||
|
@ -21,6 +22,7 @@ pub struct SuiteRunnerState {
|
||||||
pub struct TestRunnerState {
|
pub struct TestRunnerState {
|
||||||
rx: Receiver<CResult>,
|
rx: Receiver<CResult>,
|
||||||
container_name: String,
|
container_name: String,
|
||||||
|
test: Test,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl SuiteRunnerState {
|
impl SuiteRunnerState {
|
||||||
|
@ -29,8 +31,8 @@ impl SuiteRunnerState {
|
||||||
suite: &crate::complaince::suite::Suite,
|
suite: &crate::complaince::suite::Suite,
|
||||||
ctx: &crate::ctx::ArcCtx,
|
ctx: &crate::ctx::ArcCtx,
|
||||||
) -> ArchivableSuiteResult {
|
) -> ArchivableSuiteResult {
|
||||||
let state = Self::launch_suite(container_host, suite, &ctx);
|
let state = Self::launch_suite(container_host, suite, ctx);
|
||||||
state.collect_results(&ctx).await
|
state.collect_results(ctx).await
|
||||||
}
|
}
|
||||||
|
|
||||||
fn launch_suite(
|
fn launch_suite(
|
||||||
|
@ -54,6 +56,7 @@ impl SuiteRunnerState {
|
||||||
env.extend(custom_vars);
|
env.extend(custom_vars);
|
||||||
}
|
}
|
||||||
let name = format!("{}---{}--{}", suite.name, test.name, &auth[0..5]);
|
let name = format!("{}---{}--{}", suite.name, test.name, &auth[0..5]);
|
||||||
|
tracing::info!("Starting {name} with env vars {:?}", &env);
|
||||||
|
|
||||||
ctx.docker.run_container(
|
ctx.docker.run_container(
|
||||||
&name,
|
&name,
|
||||||
|
@ -74,6 +77,7 @@ impl SuiteRunnerState {
|
||||||
TestRunnerState {
|
TestRunnerState {
|
||||||
container_name: name,
|
container_name: name,
|
||||||
rx,
|
rx,
|
||||||
|
test: test.clone(),
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -86,12 +90,8 @@ impl SuiteRunnerState {
|
||||||
|
|
||||||
async fn collect_results(mut self, ctx: &crate::ctx::ArcCtx) -> ArchivableSuiteResult {
|
async fn collect_results(mut self, ctx: &crate::ctx::ArcCtx) -> ArchivableSuiteResult {
|
||||||
let mut tests = Vec::with_capacity(self.tests.len());
|
let mut tests = Vec::with_capacity(self.tests.len());
|
||||||
for (auth, mut r) in self.tests.drain() {
|
for (_auth, mut r) in self.tests.drain() {
|
||||||
let result = r.rx.recv().await.unwrap();
|
let result = r.rx.recv().await.unwrap();
|
||||||
{
|
|
||||||
let mut w = ctx.results.write().unwrap();
|
|
||||||
w.remove(&auth);
|
|
||||||
}
|
|
||||||
let log = ctx.docker.get_logs(&r.container_name);
|
let log = ctx.docker.get_logs(&r.container_name);
|
||||||
ctx.docker.rm_container(&r.container_name, true);
|
ctx.docker.rm_container(&r.container_name, true);
|
||||||
let container = ArchivableContainer {
|
let container = ArchivableContainer {
|
||||||
|
@ -105,22 +105,21 @@ impl SuiteRunnerState {
|
||||||
container,
|
container,
|
||||||
};
|
};
|
||||||
let s = ArchivableTest {
|
let s = ArchivableTest {
|
||||||
name: result.test.name,
|
name: r.test.name,
|
||||||
url: result.test.url,
|
url: r.test.url,
|
||||||
version: result.test.version,
|
version: r.test.version,
|
||||||
container: result.test.container,
|
container: r.test.container,
|
||||||
env_vars: result.test.env_vars,
|
env_vars: r.test.env_vars,
|
||||||
result: res,
|
result: res,
|
||||||
};
|
};
|
||||||
|
|
||||||
tests.push(s);
|
tests.push(s);
|
||||||
}
|
}
|
||||||
|
|
||||||
let res = ArchivableSuiteResult {
|
ArchivableSuiteResult {
|
||||||
suite: self.suite.clone(),
|
suite: self.suite.clone(),
|
||||||
tests,
|
tests,
|
||||||
};
|
}
|
||||||
res
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -236,18 +235,17 @@ mod tests {
|
||||||
|
|
||||||
for (k, v) in state.tests.iter() {
|
for (k, v) in state.tests.iter() {
|
||||||
assert_eq!(ctx.docker.get_exit_status(&v.container_name), 0);
|
assert_eq!(ctx.docker.get_exit_status(&v.container_name), 0);
|
||||||
{
|
let tx = {
|
||||||
let r = ctx.results.read().unwrap();
|
let r = ctx.results.read().unwrap();
|
||||||
let tx = r.get(k).unwrap();
|
r.get(k).unwrap().to_owned()
|
||||||
let tx_result = CResult {
|
};
|
||||||
test: dummy_test.clone(),
|
let tx_result = CResult {
|
||||||
success: true,
|
success: true,
|
||||||
// sent by the app
|
// sent by the app
|
||||||
logs: format!("{}{LOGS}", v.container_name),
|
logs: format!("{}{LOGS}", v.container_name),
|
||||||
};
|
};
|
||||||
|
|
||||||
tx.send(tx_result).await.unwrap();
|
tx.send(tx_result).await.unwrap();
|
||||||
}
|
|
||||||
}
|
}
|
||||||
let results = state.collect_results(&ctx).await;
|
let results = state.collect_results(&ctx).await;
|
||||||
assert_eq!(results.tests.len(), 2);
|
assert_eq!(results.tests.len(), 2);
|
||||||
|
|
|
@ -12,11 +12,11 @@ use crate::AppCtx;
|
||||||
|
|
||||||
use crate::docker_compose::DockerCompose;
|
use crate::docker_compose::DockerCompose;
|
||||||
|
|
||||||
pub const FTEST_TARGET_FILE: &str = "ftest.toml";
|
const FTEST_TARGET_FILE: &str = "ftest.toml";
|
||||||
|
|
||||||
pub async fn run_target(
|
pub async fn run_target(
|
||||||
ctx: &AppCtx,
|
ctx: &AppCtx,
|
||||||
target: &PathBuf,
|
target: PathBuf,
|
||||||
) -> (
|
) -> (
|
||||||
Vec<ArchivableSuiteResult>,
|
Vec<ArchivableSuiteResult>,
|
||||||
Option<Vec<ArchivableInitResult>>,
|
Option<Vec<ArchivableInitResult>>,
|
||||||
|
@ -30,13 +30,13 @@ pub async fn run_target(
|
||||||
let ftest_def = fs::read_to_string(&ftest_path).unwrap();
|
let ftest_def = fs::read_to_string(&ftest_path).unwrap();
|
||||||
let target: Target = toml::from_str(&ftest_def).unwrap();
|
let target: Target = toml::from_str(&ftest_def).unwrap();
|
||||||
|
|
||||||
let init_containers = crate::runner::init_scripts::launch_init_containers(&ctx, &target);
|
let init_containers = crate::runner::init_scripts::launch_init_containers(ctx, &target);
|
||||||
|
|
||||||
let mut suite_results = Vec::with_capacity(target.suites.len());
|
let mut suite_results = Vec::with_capacity(target.suites.len());
|
||||||
|
|
||||||
for suite in target.suites.iter() {
|
for suite in target.suites.iter() {
|
||||||
let results =
|
let results =
|
||||||
crate::runner::suite::SuiteRunnerState::run(&target.container_host, suite, &ctx).await;
|
crate::runner::suite::SuiteRunnerState::run(&target.container_host, suite, ctx).await;
|
||||||
suite_results.push(results)
|
suite_results.push(results)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -53,7 +53,7 @@ pub async fn run_target(
|
||||||
|
|
||||||
pub fn get_targets(control: &Path) -> Vec<PathBuf> {
|
pub fn get_targets(control: &Path) -> Vec<PathBuf> {
|
||||||
let mut res = Vec::default();
|
let mut res = Vec::default();
|
||||||
let files_changed = Git::files_changed_from_previous_commit(&control);
|
let files_changed = Git::files_changed_from_previous_commit(control);
|
||||||
|
|
||||||
let targets = control.clone().join("targets");
|
let targets = control.clone().join("targets");
|
||||||
for entry in fs::read_dir(targets).unwrap() {
|
for entry in fs::read_dir(targets).unwrap() {
|
||||||
|
|
Loading…
Reference in a new issue