summaryrefslogtreecommitdiff
path: root/tests/stage_graph.rs
blob: cd6fc93ccc22c519de2b97cc4ab83f34a8330258 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
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]);
}