diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/stage_graph.rs | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/tests/stage_graph.rs b/tests/stage_graph.rs new file mode 100644 index 0000000..cd6fc93 --- /dev/null +++ b/tests/stage_graph.rs @@ -0,0 +1,40 @@ +use alt_controller_image::{BuildPlan, ImageSpec, Stage}; + +const SPEC: &str = r#" +[target] +name = "alt-controller" +architecture = "x86_64" +format = "tar" + +[kernel] +flavour = "rt" + +[boot] +initrd_features = ["rootfs"] +initrd_modules = ["ext4"] + +[packages] +base = ["basesystem"] +selectors = ["^kernel-image-rt$"] +"#; + +#[test] +fn stage_graph_orders_artifact_producers_before_consumers() { + let spec: ImageSpec = toml::from_str(SPEC).expect("spec parses"); + let plan = BuildPlan::compile(spec).expect("plan compiles"); + + assert_eq!( + plan.stages(), + [ + Stage::Resolve, + Stage::Install, + Stage::FinalizeRootfs, + Stage::BuildInitramfs, + Stage::Package, + Stage::Manifest, + ] + ); + assert_eq!(plan.dependencies(Stage::Package), &[Stage::FinalizeRootfs, Stage::BuildInitramfs]); + assert_eq!(plan.dependencies(Stage::BuildInitramfs), &[Stage::Install]); + assert_eq!(plan.dependencies(Stage::Manifest), &[Stage::Package]); +} |