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}