axbuild 0.4.15

An OS build lib toolkit used by arceos
Documentation
use super::*;
use crate::build::platform::resolve_platform_config_path;

#[test]
fn resolve_platform_package_prefers_custom_aarch64_myplat_dependency() {
    let workspace = temp_workspace(
        "custom-app",
        "ax-plat-aarch64-custom = { path = \"../platforms\" }\n",
    )
    .unwrap();
    add_platform_package(
        &workspace,
        "ax-plat-aarch64-custom",
        "ax-plat-aarch64-custom",
    )
    .unwrap();

    let metadata = metadata_for_manifest_with_deps(&workspace.join("Cargo.toml"));
    let platform = resolve_platform_package(
        "custom-app",
        "aarch64-unknown-none-softfloat",
        &["myplat".to_string()],
        &metadata,
    )
    .unwrap();

    assert_eq!(platform, "ax-plat-aarch64-custom");
}

#[test]
fn resolve_platform_config_path_uses_dependency_config() {
    let workspace = temp_workspace(
        "custom-app",
        "ax-plat-aarch64-custom = { path = \"../platforms\" }\n",
    )
    .unwrap();
    add_platform_package(
        &workspace,
        "ax-plat-aarch64-custom",
        "ax-plat-aarch64-custom",
    )
    .unwrap();

    let manifest_path = workspace.join("Cargo.toml");
    let metadata = metadata_for_manifest(&manifest_path);
    let deps_metadata = metadata_for_manifest_with_deps(&manifest_path);
    let path =
        resolve_platform_config_path("ax-plat-aarch64-custom", &metadata, &deps_metadata).unwrap();

    assert!(path.ends_with("platforms/axconfig.toml"));
}