code wiki / (root) / nx_transponder_quiescence_test.nx

nx_transponder_quiescence_test.nx source

↩ module page · 67 lines · 3004 B

1// nx_transponder_quiescence_test.nx -- smoke for nx_transponder_quiescence. 2 3import "nx_syscalls.nx" 4import "nx_intent.nx" 5import "nx_transponder_quiescence.nx" 6 7func main() -> i64 { 8 if NX_TX_TR_N_KINDS != 7 { return 1 } 9 if NX_QM_N_MODES != 4 { return 2 } 10 if nx_tx_kind_is_valid(NX_TX_TR_CELLULAR) != 1 { return 3 } 11 if nx_qm_mode_is_valid(NX_QM_SANCTUARY) != 1 { return 4 } 12 13 // FULL_RF_ON: any activation allowed 14 let d_on: *NxTransponderDeclaration = nx_transponder_decl_new(100, 15 NX_QM_FULL_RF_ON, 1000) 16 if nx_transponder_check_activation(d_on, NX_INTENT_CREATIVE, 17 NX_TX_TR_WIFI) != NX_TX_ALLOWED { return 5 } 18 19 // AIRPLANE_MODE: refused for everything 20 let d_air: *NxTransponderDeclaration = nx_transponder_decl_new(200, 21 NX_QM_AIRPLANE_MODE, 1000) 22 if nx_transponder_check_activation(d_air, NX_INTENT_DEFENSIVE, 23 NX_TX_TR_CELLULAR) != NX_TX_REFUSED_QUIESCENCE { return 6 } 24 if nx_transponder_check_activation(d_air, NX_INTENT_CREATIVE, 25 NX_TX_TR_WIFI) != NX_TX_REFUSED_QUIESCENCE { return 7 } 26 27 // QUIET_HOURS: only Defensive + CELLULAR allowed (emergency calls) 28 let d_quiet: *NxTransponderDeclaration = nx_transponder_decl_new(300, 29 NX_QM_QUIET_HOURS, 1000) 30 if nx_transponder_check_activation(d_quiet, NX_INTENT_DEFENSIVE, 31 NX_TX_TR_CELLULAR) != NX_TX_ALLOWED { return 8 } 32 if nx_transponder_check_activation(d_quiet, NX_INTENT_DEFENSIVE, 33 NX_TX_TR_WIFI) != NX_TX_REFUSED_QUIESCENCE { return 9 } 34 if nx_transponder_check_activation(d_quiet, NX_INTENT_CREATIVE, 35 NX_TX_TR_CELLULAR) != NX_TX_REFUSED_QUIESCENCE { return 10 } 36 37 // SANCTUARY without override: nothing allowed 38 let d_sanc: *NxTransponderDeclaration = nx_transponder_decl_new(400, 39 NX_QM_SANCTUARY, 1000) 40 if nx_transponder_check_activation(d_sanc, NX_INTENT_DEFENSIVE, 41 NX_TX_TR_CELLULAR) != NX_TX_REFUSED_QUIESCENCE { return 11 } 42 43 // SANCTUARY with emergency_override + Defensive: allowed 44 nx_transponder_authorize_emergency(d_sanc) 45 if nx_transponder_check_activation(d_sanc, NX_INTENT_DEFENSIVE, 46 NX_TX_TR_CELLULAR) != NX_TX_ALLOWED { return 12 } 47 // Non-Defensive intent still refused even with override 48 if nx_transponder_check_activation(d_sanc, NX_INTENT_CREATIVE, 49 NX_TX_TR_CELLULAR) != NX_TX_REFUSED_QUIESCENCE { return 13 } 50 51 // Clear emergency -> refused again 52 nx_transponder_clear_emergency(d_sanc) 53 if nx_transponder_check_activation(d_sanc, NX_INTENT_DEFENSIVE, 54 NX_TX_TR_CELLULAR) != NX_TX_REFUSED_QUIESCENCE { return 14 } 55 56 // authorize_emergency only works on SANCTUARY 57 if nx_transponder_authorize_emergency(d_quiet) != NX_TX_REFUSED_BAD_MODE { return 15 } 58 59 // Mode getter 60 if nx_transponder_mode(d_quiet) != NX_QM_QUIET_HOURS { return 16 } 61 62 // Bad mode at construction 63 let null_d: *NxTransponderDeclaration = nx_transponder_decl_new(999, 99, 1000) 64 if (null_d as i64) != 0 { return 17 } 65 66 return 0 67}