flowey_lib_hvlite/
test_nextest_unit_tests_archive.rs1use crate::build_nextest_unit_tests::NextestUnitTestArchive;
11use crate::run_cargo_nextest_run::NextestProfile;
12use flowey::node::prelude::*;
13use flowey_lib_common::run_cargo_nextest_run::TestResults;
14
15flowey_request! {
16 pub struct Request {
17 pub nextest_archive_file: ReadVar<NextestUnitTestArchive>,
19 pub nextest_profile: NextestProfile,
21 pub nextest_bin: Option<ReadVar<PathBuf>>,
23 pub target: Option<ReadVar<target_lexicon::Triple>>,
25 pub results: WriteVar<TestResults>,
27 }
28}
29
30new_flow_node!(struct Node);
31
32impl FlowNode for Node {
33 type Request = Request;
34
35 fn imports(ctx: &mut ImportCtx<'_>) {
36 ctx.import::<crate::run_cargo_nextest_run::Node>();
37 }
38
39 fn emit(requests: Vec<Self::Request>, ctx: &mut NodeCtx<'_>) -> anyhow::Result<()> {
40 for Request {
41 nextest_archive_file,
42 nextest_profile,
43 nextest_bin,
44 target,
45 results,
46 } in requests
47 {
48 let nextest_archive = nextest_archive_file.map(ctx, |x| x.archive_file);
49
50 ctx.req(crate::run_cargo_nextest_run::Request {
51 friendly_name: "unit-tests".into(),
52 run_kind:
53 flowey_lib_common::run_cargo_nextest_run::NextestRunKind::RunFromArchive {
54 archive_file: nextest_archive,
55 target,
56 nextest_bin,
57 },
58 nextest_profile,
59 nextest_filter_expr: None,
60 nextest_working_dir: None,
61 nextest_config_file: None,
62 run_ignored: false,
63 extra_env: None,
64 pre_run_deps: Vec::new(), results,
66 })
67 }
68
69 Ok(())
70 }
71}