axbuild 0.4.19

An OS build lib toolkit used by arceos
Documentation
use super::{
    config::{
        checked_in_build_config_roots, checked_in_toml_files, declares_removed_plat_dyn_field,
        declares_removed_platform_feature,
    },
    *,
};

#[test]
fn checked_in_build_configs_do_not_declare_removed_platform_features() {
    let workspace = crate::context::workspace_root_path().unwrap();
    let mut offenders = Vec::new();

    for path in checked_in_toml_files(checked_in_build_config_roots(&workspace)) {
        let content = fs::read_to_string(&path).unwrap();
        if declares_removed_platform_feature(&content) {
            offenders.push(
                path.strip_prefix(&workspace)
                    .unwrap_or(&path)
                    .display()
                    .to_string(),
            );
        }
    }

    assert!(
        offenders.is_empty(),
        "removed platform features are no longer supported: {offenders:#?}"
    );
}

#[test]
fn checked_in_build_configs_do_not_declare_removed_plat_dyn_field() {
    let workspace = crate::context::workspace_root_path().unwrap();
    let mut offenders = Vec::new();

    for path in checked_in_toml_files(checked_in_build_config_roots(&workspace)) {
        let content = fs::read_to_string(&path).unwrap();
        if declares_removed_plat_dyn_field(&content) {
            offenders.push(
                path.strip_prefix(&workspace)
                    .unwrap_or(&path)
                    .display()
                    .to_string(),
            );
        }
    }

    assert!(
        offenders.is_empty(),
        "build configs must remove the `plat_dyn` field: {offenders:#?}"
    );
}