1 & testing user control
  2 &
  3 & this ec contains sequences of commands for setting up tests of
  4 & user control and for a standard test.
  5 &
  6 & thvv 1/71
  7 &
  8 & ------------------------------------
  9 &
 10 &goto &ec_name
 11 & - - - - - - - - - - - - - - - - - - - - - -
 12 &label test_uc
 13 &print Instructions^/
 14 &print first, addname test_uc.ec regenerate_test_environment.ec warm.ec standard_test.ec end_uctest.ec
 15 &print then do "ec func"^/
 16 &print regenerate_test_environment - makes new test bed.
 17 &print warm - used to reset test bed before running a test.
 18 &rpint standard_test - runs standard test of user control
 19 &print end_uctest - destroys test bed
 20 &quit
 21 &
 22 & - - - - - - - - - - - - - - - - - - - - - -
 23 &label regenerate_test_environment
 24 &attach
 25 &input_line off
 26 &
 27 createdir pdt update
 28 createdir Proj(1 2 3 4 5 6)
 29 createdir SysAdmin
 30 createdir Multics
 31 qedx
 32 a
 33 /* System Master File (SMF) for User/System control test environment */
 34 
 35 Maxunits:           60;       /* six users */
 36 Maxusers:           9;        /* nine slots in table */
 37 Maxprim:            10000;
 38 Uwt:                special_listener, 5;
 39 Uwt:                process_overseer_, 10;
 40 
 41 Administrator:      VanVleck.SysAdmin;
 42 Administrator:      *.SysAdmin;
 43 Administrator:      *.Multics;
 44 
 45 Group:              Other;
 46 Grace:              2880;
 47 Ring:               4, 7;
 48 Attributes:         brief, vinitproc, vhomedir, anonymous, bumping, nostartup;
 49 
 50 
 51 projectid:          SysAdmin; group:    System;
 52 projectdir:         >user_dir_dir>SysAdmin>tudd>SysAdmin;
 53 maxprim:            2;
 54 attributes:         nobump, guaranteed_login;
 55 
 56 projectid:          Proj1;    group:    Group1;
 57 projectdir:         >user_dir_dir>SysAdmin>tudd>Proj1;
 58 maxprim:            2;
 59 
 60 projectid:          Proj2;    group:    Group1;
 61 projectdir:         >user_dir_dir>SysAdmin>tudd>Proj2;
 62 maxprim:            1;
 63 
 64 projectid:          Proj3;    group:    Group1;
 65 projectdir:         >user_dir_dir>SysAdmin>tudd>Proj3;
 66 maxprim:            3;
 67 
 68 projectid:          Proj4;    group:    Group2;
 69 projectdir:         >user_dir_dir>SysAdmin>tudd>Proj4;
 70 maxprim:            3;
 71 
 72 projectid:          Proj5;    group:    Other;
 73 projectdir:         >user_dir_dir>SysAdmin>tudd>Proj5;
 74 maxprim:            3;
 75 
 76 projectid:          Proj6;    group:    Other;
 77 projectdir:         >user_dir_dir>SysAdmin>tudd>Proj6;
 78 maxprim:  3;
 79 
 80 end;
 81 ^\
 82 wSMF
 83 q
 84 cv_smf SMF; rn SMF.sat sat
 85 &
 86 & generate initial person master file and person name table
 87 &
 88 qedx
 89 a
 90 /* Person Master File (PERSMF) for User/System control test environment */
 91 
 92 personid: Repair; password: repair; projectid: SysAdmin;
 93 personid: VanVleck; password: tvv; projectid: SysAdmin; alias: vv;
 94 
 95 personid: User1; password: 1; projectid: Proj1; alias: u1;
 96 personid: User2; password: 2; projectid: Proj2; alias: u2;
 97 personid: User3; password: 3; projectid: Proj3; alias: u3;
 98 personid: User4; password: 4; projectid: Proj4; alias: u4;
 99 personid: User5; password: 5; projectid: Proj5; alias: u5;
100 personid: User6; password: 6; projectid: Proj6; alias: u6;
101 personid: User7; password: 7; projectid: Proj7; alias: u7;
102 personid: User8; password: 8; projectid: Proj8; alias: u8;
103 personid: User9; password: 9;                   alias: u9;
104 personid: User11; password: 11; projectid: Proj1; alias: u11;
105 personid: User12; password: 12; projectid: Proj1; alias: u12;
106 personid: User13; password: 13; projectid: Proj1; alias: u13;
107 personid: User21; password: 21; projectid: Proj2; alias: u21;
108 personid: User22; password: 22; projectid: Proj2; alias: u22;
109 personid: User23; password: 23; projectid: Proj2; alias: u23;
110 personid: User31; password: 31; projectid: Proj3; alias: u31;
111 personid: User32; password: 32; projectid: Proj3; alias: u32;
112 personid: User33; password: 33; projectid: Proj3; alias: u33;
113 personid: User41; password: 41; projectid: Proj4; alias: u41;
114 personid: User42; password: 42; projectid: Proj4; alias: u42;
115 personid: User43; password: 43; projectid: Proj4; alias: u43;
116 personid: User51; password: 51; projectid: Proj5; alias: u51;
117 personid: User52; password: 52; projectid: Proj5; alias: u52;
118 personid: User53; password: 53; projectid: Proj5; alias: u53;
119 personid: User61; password: 61; projectid: Proj6; alias: u61;
120 personid: User62; password: 62; projectid: Proj6; alias: u62;
121 personid: User63; password: 63; projectid: Proj6; alias: u63;
122 
123 end;
124 ^\
125 wPERSMF
126 q
127 cv_persmf PERSMF; rn PERSMF.pnt pnt
128 &
129 & now generate pmf's and pdt's for all projects. note proj3 has no pmf or pdt
130 &
131 qedx
132 a
133 /* Project Master file (PMF) for testing user control. */
134 
135 Projectid:          Proj1;
136 Attributes:         dialok, bumping;
137 Grace:              1;
138 Homedir:            >udd>sa>tudd>Proj1;
139 Accountid:          Proj1$account;
140 Initproc:           process_overseer_;
141 
142 personid:           User1;
143 personid:           User11;
144 personid:           User12;
145 personid:           User13;
146 
147 end;
148 ^\
149 wProj1.pmf
150 q
151 qedx
152 a
153 /* Project Master file (PMF) for testing user control. */
154 
155 Projectid:          Proj2;
156 Homedir:            >udd>sa>tudd>Proj2;
157 Accountid:          Proj2$account;
158 Initproc:           process_overseer_;
159 Attributes:         vhomedir, bumping;
160 Grace:              1;
161 
162 personid:           User2;
163 personid:           User21;
164 personid:           User22;
165 personid:           User23;
166 
167 end;
168 ^\
169 wProj2.pmf
170 q
171 qedx
172 a
173 /* Project Master file (PMF) for testing user control. */
174 
175 Projectid:          Proj4;
176 Homedir:            >udd>sa>tudd>Proj4;
177 Accountid:          Proj4$account;
178 Initproc:           process_overseer_;
179 Attributes:         vinitproc, vhomedir;
180 Grace:              1;
181 
182 personid:           User4;
183 personid:           User41;   attributes: bumping;          grace: 2880;
184 personid:           User42;   attributes: bumping;
185 personid:           User43;
186 
187 personid:           *;
188 initproc:           special_listener;
189 homedir:            >udd>sa>tudd>Proj4;
190 password:           anon;
191 
192 end;
193 ^\
194 wProj4.pmf
195 q
196 qedx
197 a
198 /* Project Master file (PMF) for testing user control. */
199 
200 Projectid:          Proj5;
201 Homedir:            >udd>sa>tudd>Proj5;
202 Accountid:          Proj5$account;
203 Initproc:           process_overseer_;
204 Attributes:         vinitproc;
205 Grace:              1;
206 
207 personid:           User5;
208 personid:           User51;
209 personid:           User52;
210 personid:           User53;
211 personid:           *;
212 homedir:            >udd>sa>tudd>Proj5;
213 initproc:           special_listener;
214 
215 end;
216 ^\
217 wProj5.pmf
218 q
219 qedx
220 a
221 /* Project Master file (PMF) for testing user control. */
222 
223 Projectid:          Proj6;
224 Homedir:            >udd>sa>tudd>Proj6;
225 Accountid:          Proj6$account;
226 Initproc:           process_overseer_;
227 Attributes:         vinitproc, vhomedir;
228 Grace:              1;
229 
230 personid:           User6;    attributes:         brief;
231 personid:           User61;
232 personid:           User62;
233 personid:           User63;
234 
235 end;
236 ^\
237 wProj6.pmf
238 q
239 qedx
240 a
241 /* Project Master file (PMF) for testing user control. */
242 
243 Projectid:          SysAdmin;
244 Accountid:          SysAdmin$account;
245 Initproc:           process_overseer_;
246 Attributes:         guaranteed_login, nobump, vinitproc, vhomedir, nostartup;
247 Grace:              2880;
248 
249 personid:           Repair;
250 personid:           VanVleck;
251 
252 end;
253 ^\
254 wSysAdmin.pmf
255 q
256 cv_pmf Proj(1 2 4 5 6).pmf; move Proj(1 2 4 5 6).pmf.pdt pdt>Proj(1 2 4 5 6).pdt
257 cv_pmf SysAdmin.pmf; move SysAdmin.pmf.pdt pdt>SysAdmin.pdt
258 &
259 create master_group_table; addname master_group_table mgt
260 ed_mgt mgt
261 System 1
262 a Group1 2 c abs 3 *
263 a Group2 1 c abs 3 *
264 a Other -1
265 w
266 q
267 &
268 qedx
269 a
270 Examples of correct login:
271    login Person_name Projectid
272    enterp Special_name Projectid
273    enter Special_name Projectid
274 Upper and lower case letters are different.
275 ^\
276 wlogin_help
277 q
278 &
279 create communications
280 db
281 /communications/0="secr"
282 1="et  "
283 2=1000
284 3=1000
285 4=1000
286 5=1000
287 .q
288 &
289 qedx
290 a
291 * test "lines" file for User/System Control test environment
292 
293 tty111
294 tty222
295 tty333
296 tty444
297 tty555
298 tty666
299 tty777
300 tty888
301 tty999
302 ^\
303 wlines
304 q
305 &
306 create installation_parms
307 ed_installation_parms installation_parms
308 r all
309 User Control Test Environment
310 Multics Development
311 MIT
312 M u l t i c s   D e v e l o p m e n t
313 M I T
314 3600
315 1
316 1800
317 900
318 2
319 0 0 0 0
320 480 1 0 0
321 360 1 0 0
322 150 1 0 0
323 240 1 0 0
324 0 0 0 0
325 0 0 0 0
326 0 0 0 0
327 .00000038580241
328 10
329 360 1 2
330 240 1 1.8
331 150 1 1.5
332 150 1 1.5
333 16000000
334 16000000
335 16000000
336 16000000
337 0 0 0 0 0 0 0 0
338 0 0 0 0 0 0 0 0
339 0 0 0 0 0 0 0 0
340 0 0 0 0 0 0 0 0
341 x
342 y
343 X n Your account is out of funds.
344 T n Your account is past its termination date.
345 W y Your account is nearly out of funds.
346 R y Your account is near its termination date.
347 Y y Your account is out of funds
348 S y Your account is past its termination date.
349 .
350 4 16 7 10 30 6 3 3
351 0
352 w
353 q
354 &
355 & get fresh copy of bound components archive
356 &
357 cp >ldd>tools>bc>bound_user_control_.archive buc.archive
358 &print $$$ done
359 &quit
360 &
361 & - - - - - - - - - - - - - - - - - - - - - -
362 &
363 &label end_uctest
364 &
365 & clean out after a test
366 &
367 answer yes deletedir pdt
368 answer yes deletedir update
369 delete pnt pnt.ht sat
370 answer yes deletedir Proj(1 2 3 4 5 6)
371 answer yes deletedir SysAdmin
372 delete PERSMF SMF *.pmf lines login_help mgt answer_table log accounting installation_parms
373 delete communications whotab
374 &print $$$ done
375 &quit
376 &
377 & - - - - - - - - - - - - - - - - - - - - - -
378 &
379 &label warm
380 &
381 & warmstart after having a bound version
382 &
383 delete log accounting answer_table whotab
384 create log accounting
385 &attach
386 debug
387 /accounting/0=2000;.q
388 &detach
389 &print $$$now do a "new_proc" and a "test_dialup"
390 &quit
391 &
392 & - - - - - - - - - - - - - - - - - - - - - -
393 &
394 &label standard_test
395 &
396 &print $$$ standard test of user control
397 &
398 &attach
399 test_dialup &1
400 dialup tty111
401 login User1 Proj1; plain-vanilla login (1)
402 1
403 .lcs$test [wd]
404 dialup tty222
405 l User2; default proj and bad password and "l"
406 zzz
407 l User2; default proj, good password (2)
408 2
409 dialup tty333
410 l User3; pdt missing for proj 3 on purpose
411 3
412 enterp Foo Proj4; anonymous user (2.5)
413 anon
414 dialup tty444
415 l u4; alias (3.5)
416 4
417 dialup tty555
418 l u2; already logged in
419 2
420 dialup tty555
421 enterp Foo Proj1; no anon user
422 zzz
423 l User1 Proj4; wrong proj
424 1
425 new_proc tty111
426 terminate tty222
427 dialup tty555
428 login Garbage; unknown name
429 zzz
430 enterp Foo Proj5; give pass when none required (4)
431 zzz
432 dialup tty666
433 junk User1; incorrect login word
434 login User9; no default proj
435 9
436 wait (allow grace to expire)
437 dialup tty666
438 login; no user name
439 xxx
440 l u11 -bf; Group1 full, shd bump u1 (4)
441 11
442 .lcs
443 dialup tty777
444 l User4 Garbage; bad project id
445 4
446 l u12 -np; could bump user2 but no-preempt option
447 12
448 dialup tty777
449 l u6; user locked in brief mode in pdt (5)
450 6
451 dialup tty111
452 l u61; fills system (6)
453 61
454 dialup tty888
455 l u62; should be system full because ^bumping
456 62
457 dialup tty888
458 l u22; should bump user2
459 22
460 dialup tty999
461 l Repair; overload system
462 repair
463 .lcs
464 logout tty111
465 dialup tty111
466 l User1; check last login - bumps user11 (7)
467 1
468 who
469 logout tty999
470 lh tty111
471 login u13 -po special_listener; try special initproc
472 13
473 who
474 &print $$$ now a test of installations
475 .qedx
476 rProj5.pmf
477 $i
478 personid:           New_fellow;
479 ^\
480 wtemp
481 q
482 .cv_pmf temp
483 .install temp.pdt
484 .qedx
485 rPERSMF
486 $i
487 personid: New_fellow; alias: nf; password: new; projectid: Proj5;
488 ^\
489 wtemp
490 q
491 .cv_persmf temp
492 .install temp.pnt
493 .admin$word login "Test dialup message buffer."
494 logout tty888
495 logout tty111
496 dialup tty111
497 wuggawuggawugga; bad login word
498 l New_fellow
499 new
500 .admin$word login
501 .cv_pmf Proj5.pmf
502 &print $$$ this should bump the guy...
503 .install Proj5.pmf.pdt
504 who
505 .cv_persmf PERSMF
506 .install PERSMF.pnt
507 .dl temp.pnt temp.pdt
508 .qx
509 rSMF
510 /Proj4/;/^$/d
511 wtemp
512 q
513 .cv_smf temp
514 &print $$$ should bump Foo.Proj4
515 .install temp.sat
516 .cv_smf SMF
517 .install SMF.sat
518 .dl temp.sat
519 &print $$$ test of limits
520 logout tty111
521 dialup tty111
522 l u1
523 1
524 .qx
525 rProj1.pmf
526 /User1/a
527  limit:   0;
528 ^\
529 wtemp
530 q
531 .cv_pmf temp
532 .install temp.pdt
533 .act_ctl_$update
534 &print $$$ user1 should be bumped
535 wait
536 d
537 l u1; shd not be able to get in either
538 1
539 .cv_pmf Proj1.pmf; install Proj1.pmf.pdt
540 &print $$$ now test password changing
541 dialup tty888
542 l u11 -cpw
543 11
544 xxx
545 logout tty888
546 dialup tty888
547 l u11
548 xxx
549 logout tty888
550 dialup tty888
551 l u11 -cpw -bf -pf
552 xxx
553 11
554 &print $$$ test of help, etc, then shutown
555 d
556 hoohah
557 help
558 e
559 logout tty444
560 logout tty555
561 .admin$stop
562 &print $$$ now will check accounting
563 .ap * * accounting
564 .print_log log -a
565 &print $$$ now wait for all bumps
566 wait
567 .admin$stop
568 .act_ctl_$act_ctl_close
569 quit
570 &print &quit
571 &quit
572 &