const DEPLOYMENT_TRUTH_AUTHORITY_DRY_RUN_SOURCES: &[(&str, &str)] = &[
(
"authority/mod.rs",
include_str!("../../../authority/mod.rs"),
),
(
"authority/plan.rs",
include_str!("../../../authority/plan.rs"),
),
(
"authority/profile.rs",
include_str!("../../../authority/profile.rs"),
),
(
"authority/reconciliation.rs",
include_str!("../../../authority/reconciliation.rs"),
),
(
"authority/report.rs",
include_str!("../../../authority/report.rs"),
),
(
"authority/shared.rs",
include_str!("../../../authority/shared.rs"),
),
("lifecycle.rs", include_str!("../../../lifecycle/mod.rs")),
(
"lifecycle/authority_plan/mod.rs",
include_str!("../../../lifecycle/authority_plan/mod.rs"),
),
(
"lifecycle/authority_plan/authority/mod.rs",
include_str!("../../../lifecycle/authority_plan/authority/mod.rs"),
),
(
"lifecycle/authority_plan/plan/mod.rs",
include_str!("../../../lifecycle/authority_plan/plan/mod.rs"),
),
(
"lifecycle/authority_plan/policy/mod.rs",
include_str!("../../../lifecycle/authority_plan/policy/mod.rs"),
),
(
"lifecycle/authority_plan/validation/mod.rs",
include_str!("../../../lifecycle/authority_plan/validation/mod.rs"),
),
(
"lifecycle/external_lifecycle/mod.rs",
include_str!("../../../lifecycle/external_lifecycle/mod.rs"),
),
(
"lifecycle/external_lifecycle/check/mod.rs",
include_str!("../../../lifecycle/external_lifecycle/check/mod.rs"),
),
(
"lifecycle/external_lifecycle/critical_fix/mod.rs",
include_str!("../../../lifecycle/external_lifecycle/critical_fix/mod.rs"),
),
(
"lifecycle/external_lifecycle/handoff/mod.rs",
include_str!("../../../lifecycle/external_lifecycle/handoff/mod.rs"),
),
(
"lifecycle/external_lifecycle/pending/mod.rs",
include_str!("../../../lifecycle/external_lifecycle/pending/mod.rs"),
),
(
"lifecycle/external_lifecycle/validation/mod.rs",
include_str!("../../../lifecycle/external_lifecycle/validation/mod.rs"),
),
(
"lifecycle/external_upgrade/mod.rs",
include_str!("../../../lifecycle/external_upgrade/mod.rs"),
),
(
"lifecycle/external_upgrade/completion/mod.rs",
include_str!("../../../lifecycle/external_upgrade/completion/mod.rs"),
),
(
"lifecycle/external_upgrade/consent/mod.rs",
include_str!("../../../lifecycle/external_upgrade/consent/mod.rs"),
),
(
"lifecycle/external_upgrade/proposal/mod.rs",
include_str!("../../../lifecycle/external_upgrade/proposal/mod.rs"),
),
(
"lifecycle/external_upgrade/receipt/mod.rs",
include_str!("../../../lifecycle/external_upgrade/receipt/mod.rs"),
),
(
"lifecycle/external_upgrade/validation/mod.rs",
include_str!("../../../lifecycle/external_upgrade/validation/mod.rs"),
),
(
"lifecycle/external_upgrade/verification/mod.rs",
include_str!("../../../lifecycle/external_upgrade/verification/mod.rs"),
),
(
"lifecycle/external_upgrade/verification/check/mod.rs",
include_str!("../../../lifecycle/external_upgrade/verification/check/mod.rs"),
),
(
"lifecycle/external_upgrade/verification/policy/mod.rs",
include_str!("../../../lifecycle/external_upgrade/verification/policy/mod.rs"),
),
(
"lifecycle/external_upgrade/verification/report/mod.rs",
include_str!("../../../lifecycle/external_upgrade/verification/report/mod.rs"),
),
(
"lifecycle/external_upgrade/verification/shared/mod.rs",
include_str!("../../../lifecycle/external_upgrade/verification/shared/mod.rs"),
),
("receipt/mod.rs", include_str!("../../../receipt/mod.rs")),
(
"receipt/artifacts.rs",
include_str!("../../../receipt/artifacts.rs"),
),
(
"receipt/authority/mod.rs",
include_str!("../../../receipt/authority/mod.rs"),
),
(
"receipt/authority/dry_run_receipt.rs",
include_str!("../../../receipt/authority/dry_run_receipt.rs"),
),
(
"receipt/authority/error.rs",
include_str!("../../../receipt/authority/error.rs"),
),
(
"receipt/authority/evidence.rs",
include_str!("../../../receipt/authority/evidence.rs"),
),
(
"receipt/authority/observations.rs",
include_str!("../../../receipt/authority/observations.rs"),
),
(
"receipt/authority/shared.rs",
include_str!("../../../receipt/authority/shared.rs"),
),
(
"receipt/deployment.rs",
include_str!("../../../receipt/deployment.rs"),
),
("text/mod.rs", include_str!("../../../text/mod.rs")),
(
"text/authority/mod.rs",
include_str!("../../../text/authority/mod.rs"),
),
(
"text/authority/evidence/mod.rs",
include_str!("../../../text/authority/evidence/mod.rs"),
),
(
"text/authority/plan/mod.rs",
include_str!("../../../text/authority/plan/mod.rs"),
),
(
"text/authority/receipt/mod.rs",
include_str!("../../../text/authority/receipt/mod.rs"),
),
(
"text/authority/report/mod.rs",
include_str!("../../../text/authority/report/mod.rs"),
),
(
"text/authority/shared/mod.rs",
include_str!("../../../text/authority/shared/mod.rs"),
),
(
"text/comparison.rs",
include_str!("../../../text/comparison.rs"),
),
(
"text/execution_preflight.rs",
include_str!("../../../text/execution_preflight.rs"),
),
(
"text/lifecycle/mod.rs",
include_str!("../../../text/lifecycle/mod.rs"),
),
(
"text/lifecycle/authority/mod.rs",
include_str!("../../../text/lifecycle/authority/mod.rs"),
),
(
"text/lifecycle/completion/mod.rs",
include_str!("../../../text/lifecycle/completion/mod.rs"),
),
(
"text/lifecycle/consent/mod.rs",
include_str!("../../../text/lifecycle/consent/mod.rs"),
),
(
"text/lifecycle/external_lifecycle/mod.rs",
include_str!("../../../text/lifecycle/external_lifecycle/mod.rs"),
),
(
"text/lifecycle/plan/mod.rs",
include_str!("../../../text/lifecycle/plan/mod.rs"),
),
(
"text/lifecycle/proposal/mod.rs",
include_str!("../../../text/lifecycle/proposal/mod.rs"),
),
(
"text/lifecycle/receipt/mod.rs",
include_str!("../../../text/lifecycle/receipt/mod.rs"),
),
(
"text/lifecycle/shared/mod.rs",
include_str!("../../../text/lifecycle/shared/mod.rs"),
),
(
"text/lifecycle/verification/mod.rs",
include_str!("../../../text/lifecycle/verification/mod.rs"),
),
(
"text/promotion/mod.rs",
include_str!("../../../text/promotion/mod.rs"),
),
(
"text/promotion/execution_receipt/mod.rs",
include_str!("../../../text/promotion/execution_receipt/mod.rs"),
),
(
"text/promotion/identity/mod.rs",
include_str!("../../../text/promotion/identity/mod.rs"),
),
(
"text/promotion/materialization/mod.rs",
include_str!("../../../text/promotion/materialization/mod.rs"),
),
(
"text/promotion/plan/mod.rs",
include_str!("../../../text/promotion/plan/mod.rs"),
),
(
"text/promotion/policy/mod.rs",
include_str!("../../../text/promotion/policy/mod.rs"),
),
(
"text/promotion/provenance/mod.rs",
include_str!("../../../text/promotion/provenance/mod.rs"),
),
(
"text/promotion/readiness/mod.rs",
include_str!("../../../text/promotion/readiness/mod.rs"),
),
(
"text/promotion/shared/mod.rs",
include_str!("../../../text/promotion/shared/mod.rs"),
),
(
"text/promotion/wasm_store/mod.rs",
include_str!("../../../text/promotion/wasm_store/mod.rs"),
),
(
"text/root_verification/mod.rs",
include_str!("../../../text/root_verification/mod.rs"),
),
(
"text/root_verification/receipt/mod.rs",
include_str!("../../../text/root_verification/receipt/mod.rs"),
),
(
"text/root_verification/report/mod.rs",
include_str!("../../../text/root_verification/report/mod.rs"),
),
(
"text/root_verification/shared/mod.rs",
include_str!("../../../text/root_verification/shared/mod.rs"),
),
];
const CONTROLLER_MUTATION_PRIMITIVES: &[&str] = &[
"update_settings",
"install_code",
"create_canister",
"delete_canister",
"stop_canister",
"uninstall_code",
"provisional_create_canister",
"dfx",
];
#[test]
fn deployment_truth_authority_paths_have_no_controller_mutation_primitives() {
for (path, source) in DEPLOYMENT_TRUTH_AUTHORITY_DRY_RUN_SOURCES {
for forbidden in CONTROLLER_MUTATION_PRIMITIVES {
assert!(
!source.contains(forbidden),
"deployment truth authority path {path} must stay dry-run; found forbidden token {forbidden}"
);
}
}
}