1N/A unlink("/tmp/project.$$.1");
1N/A unlink("/tmp/project.$$.2");
1N/A unlink("/tmp/project.$$.3");
1N/A unlink("/tmp/project.$$.4");
1N/A unlink("/tmp/project.$$.5");
1N/A unlink("/tmp/projent.$$");
1N/Aopen($fh, "</usr/include/project.h") || fatal($!);
1N/Aopen($fh, "</usr/include/sys/param.h") || fatal($!);
1N/A# file/flags # {} validate validate,res validate,dup
1N/A# file1, parse error (extra ":") on group.staff project.
1N/Aopen($file1, "+>/tmp/project.$$.1") || fatal($!);
1N/Auser.test2:456:project two:adm,uucp:staff:attr1=p;attr2=q
1N/Agroup.test3:678:project three::root,nobody:root,lp:attr1=y;attr2=z
1N/Aopen($file2, "+>/tmp/project.$$.2") || fatal($!);
1N/Auser.test2:456:project two:adm,uucp:staff:attr1=p;attr2=q
1N/Agroup.test3:677:project three:root,nobody:root,lp:attr1=y;attr2=z
1N/Aopen($file3, "+>/tmp/project.$$.3") || fatal($!);
1N/Auser.test2:456:project two:adm,uucp:staff:attr1=p;attr2=q
1N/Agroup.test3:677:project three:root,nobody:root,lp:attr1=y;attr2=z
1N/Aopen($file4, "+>/tmp/project.$$.4") || fatal($!);
1N/Agroup.staff:10::::
1N/Auser.test2:456:project two:adm,uucp:staff:attr1=p;attr2=q
1N/Agroup.test3:677:project three:root,nobody:root,lp:attr1=y;attr2=z
1N/Aopen($file5, "+>/tmp/project.$$.5") || fatal($!);
1N/Auser.test2:456:project two:adm,uucp:staff:attr1=p;attr2=q
1N/Agroup.test3:677:project three:root,nobody:root,lp:attr1=y;attr2=z
1N/A [ "parse error", $file1, "/tmp/project.$$.1", $flags1, 1 ],
1N/A [ "parse error", $file1, "/tmp/project.$$.1", $flags2, 1 ],
1N/A [ "parse error", $file1, "/tmp/project.$$.1", $flags3, 1 ],
1N/A [ "parse error", $file1, "/tmp/project.$$.1", $flags4, 1 ],
1N/A [ "dup names", $file2, "/tmp/project.$$.2", $flags1, 0 ],
1N/A [ "dup names", $file2, "/tmp/project.$$.2", $flags2, 1 ],
1N/A [ "dup names", $file2, "/tmp/project.$$.2", $flags3, 1 ],
1N/A [ "dup names", $file2, "/tmp/project.$$.2", $flags4, 1 ],
1N/A [ "dup ids", $file3, "/tmp/project.$$.3", $flags1, 0 ],
1N/A [ "dup ids", $file3, "/tmp/project.$$.3", $flags2, 1 ],
1N/A [ "dup ids", $file3, "/tmp/project.$$.3", $flags3, 1 ],
1N/A [ "dup ids", $file3, "/tmp/project.$$.3", $flags4, 0 ],
1N/A [ "sys ids", $file4, "/tmp/project.$$.4", $flags1, 0 ],
1N/A [ "sys ids", $file4, "/tmp/project.$$.4", $flags2, 1 ],
1N/A [ "sys ids", $file4, "/tmp/project.$$.4", $flags3, 0 ],
1N/A [ "sys ids", $file4, "/tmp/project.$$.4", $flags4, 1 ],
1N/A [ "unique users", $file5, "/tmp/project.$$.5", $flags1, 0 ],
1N/A [ "unique users", $file5, "/tmp/project.$$.5", $flags2, 0 ],
1N/A [ "unique users", $file5, "/tmp/project.$$.5", $flags3, 0 ],
1N/A [ "unique users", $file5, "/tmp/project.$$.5", $flags4, 0 ]
1N/A open($fh, ">$filename.w") || fatal($!);
1N/A system("cmp -s $filename $filename.w") == 0 ? pass() :
1N/A fail("Written file $filename.w does not match file $filename");
1N/A [ 0, 0, { "res" => 1 }, "group.staff:10::::" ],
1N/A [ 0, 0, {}, "valid.name:107::::" ],
1N/A [ 0, 0, {}, "valid8.NAME:108::::" ],
1N/A [ 0, 0, {}, "V_alid.name10:110::::" ],
1N/A [ 0, 0, {}, "comment:111: this is ! & my crazy !@#$%^&*()_+|~`\=-][ 0, 0, {},}{';\"/.,?>< comment:::" ],
1N/A [ 0, 0, {}, "attrib5:133::::attrib.attrib=" ],
1N/A [ 0, 0, { "allowunits" => 1 }, "value9:150::::task.max-lwps=(priv,1000M,deny,signal=SIGHUP),(priv,1000k,deny,signal=SIGKILL)" ],
1N/A [ 0, 0, { "allowunits" => 1 }, "rctl1:163::::task.max-lwps=(priv,1000,deny,signal=HUP),(priv,1000k,deny,signal=15)" ],
1N/A [ 0, 0, {}, "rctl1:163::::task.max-lwps=(priv,1000,deny,signal=HUP),(priv,10001,deny,signal=15)" ],
1N/A [ 0, 0, {}, "rctl2:164::::process.max-port-events=(basic,1000,deny)" ],
1N/A [ 0, 0, { "allowunits" => 1 }, "rctl3:165::::project.max-crypto-memory=(priv,2.2gb,deny)" ],
1N/A [ 0, 0, {}, "rctl3:165::::project.max-crypto-memory=(priv,10,deny)" ],
1N/A [ 0, 0, { "allowunits" => 1 }, "rctl4:166::::project.max-crypto-memory=(privileged,100m,deny)" ],
1N/A [ 0, 0, {}, "rctl4:166::::project.max-crypto-memory=(privileged,100,deny)" ],
1N/A [ 0, 0, { "allowunits" => 1 }, "rctl5:167::::project.max-crypto-memory=(priv,1000m,deny)" ],
1N/A [ 0, 0, {}, "rctl5:167::::project.max-crypto-memory=(priv,1000,deny)" ],
1N/A [ 0, 0, { "allowunits" => 1 }, "rctl6:168::::project.max-crypto-memory=(priv,1000k,deny)" ],
1N/A [ 0, 0, { "allowunits" => 1 }, "rctl6:168::::project.max-crypto-memory=(priv,1000m,deny)" ],
1N/A [ 0, 0, {}, "rctl7:169::::process.max-msg-messages=(priv,10,deny)" ],
1N/A [ 0, 0, { "allowunits" => 1 }, "rctl8:170::::process.max-msg-qbytes=(priv,10000kb,deny)" ],
1N/A [ 0, 0, {}, "rctl8:170::::process.max-msg-qbytes=(priv,10000,deny)" ],
1N/A [ 0, 0, {}, "rctl9:171::::process.max-sem-ops=(priv,10000000,deny)" ],
1N/A [ 0, 0, {}, "rctl10:172::::process.max-sem-nsems=(basic,1,deny)" ],
1N/A [ 0, 0, { "allowunits" => 1 }, "rctl11:173::::process.max-address-space=(priv,2GB,deny)" ],
1N/A [ 0, 0, { "allowunits" => 1 }, "rctl12:174::::process.max-file-descriptor=(basic,1K,deny),(basic,2K,deny)" ],
1N/A [ 0, 0, { "allowunits" => 1 }, "rctl13:175::::process.max-core-size=(priv,10Mb,deny),(priv,2GB,deny)" ],
1N/A [ 0, 0, { "allowunits" => 1 }, "rctl14:176::::process.max-stack-size=(priv,1.8Gb,deny),(priv,100MB,deny)" ],
1N/A [ 0, 0, {}, "rctl15:177::::process.max-data-size=(priv,1010100101,deny)" ],
1N/A [ 0, 0, { "allowunits" => 1 }, "rctl16:178::::process.max-file-size=(priv,100mb,deny,signal=SIGXFSZ),(priv,1000mb,deny,signal=31)" ],
1N/A [ 0, 0, { "allowunits" => 1 }, "rctl17:179::::process.max-cpu-time=(priv,1t,signal=XCPU),(priv,100ms,sig=30)" ],
1N/A [ 0, 0, { "allowunits" => 1 }, "rctl18:180::::task.max-cpu-time=(priv,1M,sig=SIGKILL)" ],
1N/A [ 0, 0, { "allowunits" => 1 }, "rctl19:181::::task.max-lwps=(basic,10,signal=1),(priv,100,deny,signal=KILL)" ],
1N/A [ 0, 0, {}, "rctl20:182::::project.max-device-locked-memory=(priv,1000,deny,sig=TERM)" ],
1N/A [ 0, 0, {}, "rctl21:183::::project.max-port-ids=(priv,100,deny)" ],
1N/A [ 0, 0, { "allowunits" => 1 }, "rctl22:184::::project.max-shm-memory=(priv,1000mb,deny)" ],
1N/A [ 0, 0, { "allowunits" => 1 }, "rctl23:185::::project.max-shm-ids=(priv,1k,deny,signal=SIGSTOP)" ],
1N/A [ 0, 0, { "allowunits" => 1 }, "rctl24:186::::project.max-msg-ids=(priv,1m,deny,signal=XRES)" ],
1N/A [ 0, 0, {}, "rctl25:187::::project.max-sem-ids=(priv,10,deny,signal=ABRT)" ],
1N/A [ 0, 0, { "allowunits" => 1 }, "rctl26:188::::project.cpu-shares=(priv,63k,none)" ],
1N/A [ 0, 0, { "allowunits" => 1 }, "rctl27:189::::zone.cpu-shares=(priv,20k,none)" ],
1N/A [ 0, 0, {}, "rctl28:190::::zone.cpu-shares=(priv,100,none)" ],
1N/A [ 0, 0, { "allowunits" => 1 }, "rctl29:191::::project.max-shm-memory=(priv,200G,deny)" ],
1N/A [ 0, 0, { "allowunits" => 1 }, "rctl30:192::::project.max-shm-memory=(priv,200Gb,deny)" ],
1N/A [ 0, 0, { "allowunits" => 1 }, "rctl31:193::::project.max-shm-memory=(priv,2000B,deny)" ],
1N/A [ 0, 0, {}, "rctl32:194::::project.max-shm-memory=(priv,2000,deny)" ],
1N/A [ 0, 0, {}, "rctl33:195::::task.max-cpu-time=(priv,2000,none)" ],
1N/A [ 0, 0, { "allowunits" => 1 }, "rctl34:196::::task.max-cpu-time=(priv,2000s,none)" ],
1N/A [ 0, 0, { "allowunits" => 1 }, "rctl35:197::::task.max-cpu-time=(priv,20.1ps,none)" ],
1N/A [ 0, 0, { "allowunits" => 1 }, "rctl36:198::::task.max-cpu-time=(priv,20T,none)" ],
1N/A [ 0, 1, {}, "group.staff:10::::" ],
1N/A [ 1, 0, {}, "invalid/name:106::::" ],
1N/A [ 1, 0, {}, "invalid/name:110::::" ],
1N/A [ 1, 0, {}, "attrib9:142::::attrib/attrib" ],
1N/A [ 0, 1, {}, "rctl1:199::::task.max-lwps=," ],
1N/A [ 0, 1, {}, "rctl2:200::::task.max-lwps=" ],
1N/A [ 0, 1, {}, "rctl3:201::::task.max-lwps=priv" ],
1N/A [ 0, 1, {}, "rctl4:202::::task.max-lwps=priv,1000" ],
1N/A [ 0, 1, {}, "rctl5:203::::task.max-lwps=priv,1000,deny" ],
1N/A [ 0, 1, {}, "rctl6:204::::task.max-lwps=(priv)" ],
1N/A [ 0, 1, {}, "rctl7:205::::task.max-lwps=(priv,1000)" ],
1N/A [ 0, 1, {}, "rctl8:206::::task.max-lwps=(foo,100,deny)" ],
1N/A [ 0, 1, {}, "rctl9:207::::task.max-lwps=(priv,foo,none)" ],
1N/A [ 1, 0, { "allowunits" => 1 }, "rctl9:207::::task.max-lwps=(priv,foo,none)" ],
1N/A [ 1, 0, { "allowunits" => 1 }, "rctl10:208::::task.max-lwps=(priv,100foo,none)" ],
1N/A [ 0, 1, {}, "rctl11:209::::task.max-lwps=(priv,1000,foo)" ],
1N/A [ 0, 1, { "allowunits" => 1 }, "rctl12:210::::task.max-lwps=(priv,1000k,deny,signal)" ],
1N/A [ 0, 1, {}, "rctl13:211::::task.max-lwps=(priv,1000,deny,signal=)" ],
1N/A [ 0, 1, {}, "rctl14:212::::task.max-lwps=(priv,1000,deny,signal=foo)" ],
1N/A [ 0, 1, {}, "rctl15:213::::task.max-lwps=(priv,1000,deny,signal=1fo)" ],
1N/A [ 0, 1, {}, "rctl16:214::::task.max-lwps=(priv,1000,deny,signal=100)" ],
1N/A [ 0, 1, {}, "rctl17:215::::task.max-lwps=(priv,1000,deny,signal=SIG)" ],
1N/A [ 0, 1, {}, "rctl18:216::::task.max-lwps=(priv,1000,deny,signal=SIG1)" ],
1N/A [ 0, 1, {}, "rctl19:217::::task.max-lwps=(priv,1000,deny,signal=SIGhup)" ],
1N/A [ 0, 1, {}, "rctl20:218::::task.max-lwps=(priv,1000,deny,signal=SIGHU)" ],
1N/A [ 0, 1, {}, "rctl21:219::::task.max-lwps=(priv,1000,deny,signal=SIGHUPP)" ],
1N/A [ 0, 1, {}, "rctl22:220::::task.max-lwps=(priv,1000,deny,signal=SIGURG)" ],
1N/A [ 0, 1, {}, "rctl23:221::::task.max-lwps=(priv,1000,deny,signal=SIGXCPU)" ],
1N/A [ 0, 1, {}, "rctl24:222::::task.max-lwps=(priv,1000,deny,signal=SIGKILL,10)" ],
1N/A [ 0, 1, {}, "rctl25:223::::task.max-lwps=(priv,1000,deny,signal=SIGKILL,foo)" ],
1N/A [ 0, 1, {}, "rctl26:224::::process.max-port-events=(priv,1000,none)" ],
1N/A [ 0, 1, { "allowunits" => 1 }, "rctl27:225::::process.max-address-space=(basic,1024mb,deny,signal=TERM)" ],
1N/A [ 0, 1, {}, "rctl28:226::::process.max-cpu-time=(basic,3600,deny)" ],
1N/A [ 0, 1, {}, "rctl29:227::::task.max-lwps=()" ],
1N/A [ 0, 1, {}, "rctl30:228::::task.max-lwps=((priv),deny)" ],
1N/A [ 0, 1, {}, "rctl31:229::::task.max-lwps=((priv,1000,deny))" ],
1N/A [ 0, 1, {}, "rctl32:230::::task.max-lwps=(priv,((1000,2000,1000)),deny)" ],
1N/A [ 0, 1, {}, "rctl33:231::::task.max-lwps=(,,,)" ],
1N/A [ 0, 1, {}, "rctl34:232::::task.max-lwps=(priv,1000,(deny))" ],
1N/A [ 0, 1, {}, "rctl35:233::::task.max-lwps=(priv,1000,deny),foo" ],
1N/A [ 0, 1, {}, "rctl36:234::::task.max-lwps=(priv,1000,deny),(priv,1000)" ],
1N/A [ 1, 0, { "allowunits" => 1 }, "rctl37:235::::project.max-msg-ids=(priv,15EB,deny)" ],
1N/A [ 1, 0, { "allowunits" => 1 }, "rctl38:236::::process.max-address-space=(priv,16.1EB,deny)" ],
1N/A [ 1, 0, { "allowunits" => 1 }, "rctl39:237::::process.max-address-space=(priv,18000000000gb,deny)" ],
1N/A [ 1, 0, { "allowunits" => 1 }, "rctl40:238::::zone.cpu-shares=(priv,10kb,none)" ],
1N/A [ 1, 0, { "allowunits" => 1 }, "rctl41:239::::zone.cpu-shares=(priv,10Ks,none)" ],
1N/A [ 1, 0, { "allowunits" => 1 }, "rctl42:240::::zone.cpu-shares=(priv,10s,none)" ],
1N/A [ 1, 0, { "allowunits" => 1 }, "rctl43:241::::zone.cpu-shares=(priv,100000b,none)" ],
1N/A [ 1, 0, { "allowunits" => 1 }, "rctl44:242::::project.max-shm-memory=(priv,200Ts,deny)" ],
1N/A [ 1, 0, { "allowunits" => 1 }, "rctl45:243::::project.max-shm-memory=(priv,200s,deny)" ],
1N/A [ 1, 0, { "allowunits" => 1 }, "rctl46:244::::task.max-cpu-time=(priv,20B,none)" ],
1N/A [ 1, 0, { "allowunits" => 1 }, "rctl47:245::::task.max-cpu-time=(priv,20Kb,none)" ],
1N/A [ 0, 1, { "allowunits" => 1 }, "rctl48:246::::project.cpu-shares=(priv,100k,none)" ],
1N/A [ 0, 1, {}, "rctl147:150::::task.max-lwps=(priv,1000M,deny,signal=SIGHUP),(priv,1000k,deny,signal=SIGKILL)" ],
1N/A [ 0, 1, {}, "rctl148:163::::task.max-lwps=(priv,1000,deny,signal=HUP),(priv,1000k,deny,signal=15)" ],
1N/A [ 0, 1, {}, "rctl3:165::::project.max-crypto-memory=(priv,10eb,deny)" ],
1N/A [ 0, 1, {}, "rctl4:166::::project.max-crypto-memory=(privileged,100p,deny)" ],
1N/A [ 0, 1, {}, "rctl5:167::::project.max-crypto-memory=(priv,1000t,deny)" ],
1N/A [ 0, 1, {}, "rctl6:168::::project.max-crypto-memory=(priv,1000g,deny)" ],
1N/A [ 0, 1, {}, "rctl7:169::::process.max-msg-messages=(priv,10m,deny)" ],
1N/A [ 0, 1, {}, "rctl8:170::::process.max-msg-qbytes=(priv,10000kb,deny)" ],
1N/A [ 0, 1, {}, "rctl11:173::::process.max-address-space=(priv,10EB,deny)" ],
1N/A [ 0, 1, {}, "rctl12:174::::process.max-file-descriptor=(basic,1K,deny),(basic,2K,deny)" ],
1N/A [ 0, 1, {}, "rctl13:175::::process.max-core-size=(priv,1Eb,deny),(priv,10PB,deny)" ],
1N/A [ 0, 1, {}, "rctl14:176::::process.max-stack-size=(priv,10Tb,deny),(priv,10TB,deny)" ],
1N/A [ 0, 1, {}, "rctl16:178::::process.max-file-size=(priv,100mb,deny,signal=SIGXFSZ),(priv,1000mb,deny,signal=31)" ],
1N/A [ 0, 1, {}, "rctl17:179::::process.max-cpu-time=(priv,1t,signal=XCPU),(priv,100ms,sig=30)" ],
1N/A [ 0, 1, {}, "rctl18:180::::task.max-cpu-time=(priv,1M,sig=SIGKILL)" ],
1N/A [ 0, 1, {}, "rctl22:184::::project.max-shm-memory=(priv,1000mb,deny)" ],
1N/A [ 0, 1, {}, "rctl23:185::::project.max-shm-ids=(priv,1k,deny,signal=SIGSTOP)" ],
1N/A [ 0, 1, {}, "rctl24:186::::project.max-msg-ids=(priv,1m,deny,signal=XRES)" ],
1N/A [ 0, 1, {}, "rctl26:188::::project.cpu-shares=(priv,63k,none)" ],
1N/A [ 0, 1, {}, "rctl27:189::::zone.cpu-shares=(priv,20k,none)" ],
1N/A [ 0, 1, {}, "rctl29:191::::project.max-shm-memory=(priv,200G,deny)" ],
1N/A [ 0, 1, {}, "rctl30:192::::project.max-shm-memory=(priv,200Gb,deny)" ],
1N/A [ 0, 1, {}, "rctl31:193::::project.max-shm-memory=(priv,2000B,deny)" ],
1N/A [ 0, 1, {}, "rctl34:196::::task.max-cpu-time=(priv,2000s,none)" ],
1N/A [ 0, 1, {}, "rctl35:197::::task.max-cpu-time=(priv,20.1ps,none)" ],
1N/A [ 0, 1, {}, "rctl36:198::::task.max-cpu-time=(priv,20T,none)" ],
1N/Aopen($fh1, "/usr/bin/getent project |") || fatal($!);
1N/Aopen($fh2, ">/tmp/projent.$$") || fatal($!);
1N/Aopen($fh1, "</tmp/projent.$$") || fatal($!);
1N/A($s) = `/usr/xpg4/bin/id -p` =~ /projid=(\d+)/;
1N/Aopen($fh, "</tmp/projent.$$") || fatal($!);
1N/Astart("Test endprojent/getprojent");
1N/Astart("Test setprojent/getprojent");
1N/A$s = `/usr/bin/id -p` ;
1N/A$s = `/usr/bin/projects`;