code wiki / (root) / nx_substrate_layers_test.nx

nx_substrate_layers_test.nx source

↩ module page · 71 lines · 2851 B

1// nx_substrate_layers_test.nx -- smoke for layer + handoff enums. 2// 3// expect_exit: 0 4// 5// license_tier: ORIGINAL 6 7import "nx_substrate_layers.nx" 8 9func bytes_eq(a: *u8, b: *u8, n: i64) -> i64 { 10 var i: i64 = 0 11 while i < n { 12 if a[i] != b[i] { return 0 } 13 i = i + 1 14 } 15 return 1 16} 17 18func main() -> i64 { 19 // ---- Layer validity gate ---- 20 if nx_layer_is_valid(NX_LAYER_BITS) != 1 { return 1 } 21 if nx_layer_is_valid(NX_LAYER_SURFACES) != 1 { return 2 } 22 if nx_layer_is_valid(NX_LAYER_N) != 0 { return 3 } 23 if nx_layer_is_valid(-1) != 0 { return 4 } 24 25 // ---- Layer names + tags ---- 26 if bytes_eq(nx_layer_name(NX_LAYER_BITS), "BITS" as *u8, 4) != 1 { return 10 } 27 if bytes_eq(nx_layer_name(NX_LAYER_COMPOSITES), "COMPOSITES" as *u8, 10) != 1 { return 11 } 28 if bytes_eq(nx_layer_tag(NX_LAYER_BITS), "L0" as *u8, 2) != 1 { return 12 } 29 if bytes_eq(nx_layer_tag(NX_LAYER_SURFACES), "L5" as *u8, 2) != 1 { return 13 } 30 31 // ---- Layer tag parse round-trip ---- 32 var i: i64 = 0 33 while i < NX_LAYER_N { 34 let parsed: i64 = nx_layer_parse_tag(nx_layer_tag(i), 2) 35 if parsed != i { return 20 + i } 36 i = i + 1 37 } 38 39 // ---- Layer parse failure paths ---- 40 if nx_layer_parse_tag("L9" as *u8, 2) != NX_LAYER_N { return 30 } 41 if nx_layer_parse_tag("XX" as *u8, 2) != NX_LAYER_N { return 31 } 42 if nx_layer_parse_tag(0 as *u8, 2) != NX_LAYER_N { return 32 } 43 if nx_layer_parse_tag("L0" as *u8, 1) != NX_LAYER_N { return 33 } 44 if nx_layer_parse_tag("L0" as *u8, 3) != NX_LAYER_N { return 34 } 45 46 // ---- Handoff validity gate ---- 47 if nx_handoff_is_valid(NX_HANDOFF_CLEAN) != 1 { return 40 } 48 if nx_handoff_is_valid(NX_HANDOFF_BROKEN) != 1 { return 41 } 49 if nx_handoff_is_valid(NX_HANDOFF_N) != 0 { return 42 } 50 if nx_handoff_is_valid(-1) != 0 { return 43 } 51 52 // ---- Handoff names ---- 53 if bytes_eq(nx_handoff_name(NX_HANDOFF_CLEAN), "CLEAN" as *u8, 5) != 1 { return 50 } 54 if bytes_eq(nx_handoff_name(NX_HANDOFF_LEAKY), "LEAKY" as *u8, 5) != 1 { return 51 } 55 if bytes_eq(nx_handoff_name(NX_HANDOFF_DERIVED), "DERIVED" as *u8, 7) != 1 { return 52 } 56 57 // ---- Severity ordering ---- 58 if nx_handoff_severity(NX_HANDOFF_CLEAN) != 0 { return 60 } 59 if nx_handoff_severity(NX_HANDOFF_DERIVED) != 1 { return 61 } 60 if nx_handoff_severity(NX_HANDOFF_LEAKY) != 2 { return 62 } 61 if nx_handoff_severity(NX_HANDOFF_BROKEN) != 3 { return 63 } 62 if nx_handoff_severity(-1) != 99 { return 64 } 63 64 // ---- SSS-class graduation gate ---- 65 if nx_handoff_is_sss_gating(NX_HANDOFF_CLEAN) != 0 { return 70 } 66 if nx_handoff_is_sss_gating(NX_HANDOFF_DERIVED) != 0 { return 71 } 67 if nx_handoff_is_sss_gating(NX_HANDOFF_LEAKY) != 1 { return 72 } 68 if nx_handoff_is_sss_gating(NX_HANDOFF_BROKEN) != 1 { return 73 } 69 70 return 0 71}