code wiki / _hdl_build / nx_raci_context_probe_t50.nx
nx_raci_context_probe_t50.nx source
↩ module page · 28 lines · 1343 B
1import "../nx_orchestrate_raci.nx"
2import "nx_gate_verdict.nx"
3func main(argc:i64,argv:*i64)->i64{
4 if argc!=2{return 2}
5 let c:*i64=gv_ctr()
6 let cwd:*u8=sys_mmap(SYS_PATH_MAX)
7 let role:*u8=sys_mmap(SYS_PATH_MAX)
8 let got:i64=sys_getcwd(cwd,SYS_PATH_MAX)
9 if got<0{return 3}
10 or_w("initial_cwd=");or_w(cwd);or_w("\n")
11 let initial:i64=orch_accountable("organize",role)
12 or_w("initial_organize_owner=");or_w(role);or_w("\n")
13 let changed:i64=sys_chdir(argv[1] as *u8)
14 gv_check("explicit context entered",changed==0,c)
15 if changed!=0{return 3}
16 let newcwd:i64=sys_getcwd(cwd,SYS_PATH_MAX)
17 gv_check("context observable",newcwd>0,c)
18 or_w("selected_cwd=");or_w(cwd);or_w("\n")
19 let organize:i64=orch_accountable("organize",role)
20 or_w("selected_organize_owner=");or_w(role);or_w("\n")
21 gv_check("real organize resolves librarian",organize==1&&or_eq(role,"librarian")==1,c)
22 let research:i64=orch_accountable("research",role)
23 or_w("selected_research_owner=");or_w(role);or_w("\n")
24 gv_check("real research resolves researcher",research==1&&or_eq(role,"researcher")==1,c)
25 gv_check("unknown still denied",orch_accountable("florblegork",role)==0,c)
26 gv_check("context changes initial missing result",initial==0&&organize==1,c)
27 return gv_verdict("RACI-CONTEXT",c,"read-only owner resolution; no migration, record, dispatch or store mutation")
28}