!"#$%&'()*+,-'./'-'012+,34(3.(0*!56*7%$*8968*.(3.40%".0'%(*%7*:;!6<*=1=0,"0,=0=!""#$#%&'(%)*#$+&,+$+'-).(%/01(23445!%'#6)7&8&/(9:)7;7<=>7;?@!A

B(C)'()+62%(9#)*#$+&,+$+'-)(D)&E(F'%($)=-0'#6G• @#0+HF)C+'1)1+H1)&9&+$&,+$+'-)+F)6+FI• J0#),#''#%)=(D'C&%#• A62$#6#F')%#IKFI&F"-)D(%)"%+'+"&$)2&%'0• ;'"LLL

3PL4QR!*.3445*A>E)(F)!ME!)N);OAE=)M#0')!K'(6&'+(F3>K'$+F#G*#IKFI&F');OAE=)A>E)D(%)!ME!
• S%+#D)+F'%(IK"'+(F)(D);OAE=:)A>E:)*A>E• .1&')+0)!ME!)&FI)C1-)I()C#)C&F')+'T• *A>E)U)!ME!)D#&'K%#0)&FI),#F#D+'0• E(F"$K0+(F3PL4QR!*.3445*A>E)(F)!ME!)N);OAE=)M#0')!K'(6&'+(FV

;OAE=G);W2#%+6#F'&$)O1-0+"0)&FI
AFIK0'%+&$)E(F'%($)=-0'#6• ;OAE=)+0)&)0#')(D)0(D'C&%#)'(($0)&FI&22$+"&'+(F0)C1+"1)2%(9+I#)&)0(D'C&%#+FD%&0'%K"'K%#)D(%)K0#)+F),K+$I+FH)I+0'%+,K'#I"(F'%($)0-0'#60• A')+0)K0#I)'()(2#%&'#)O&%'+"$#)!""#$#%&'(%0:X&%H#);W2#%+6#F'0)&FI)M#$#0"(2#0

3PL4QR!*.3445*A>E)(F)!ME!)N);OAE=)M#0')!K'(6&'+(FY;OAE=• E$+#F'<=#%9#%)6(I#$• E(66KF+"&'+(F2%('("($G)E1&FF#$!""#00)ZE![– E!EG)"$+#F'– A>E<E!=G)0#%9#%• O\G)O%("#00)\&%+&,$#– )?&6#I)O+#"#)(D)@&'&

3PL4QR!*.3445*A>E)(F)!ME!)N);OAE=)M#0')!K'(6&'+(F]*#IKFI&F')A>E• O%(9+I#0)%#IKFI&F"-)0K22(%')D(%);OAE=)A>E0• @#9#$(2#I)&')@;=^:)_#%6&F• =K22(%'#I)+F)`(DD+"+&$a);OAE=)I+0'%+,K'+(F)0+F"#
9VLQYLQ4)%#$#&0#– ?()F##I)'()2&'"1<%#"(FD+HK%#<%#"(62+$#)S!=;– bK0')I(CF$(&I)*A>E)$+,0)&FI)$+F/)'1#6)'()-(K%)A>E'()6&/#)+')%#IKFI&F'

3PL4QR!*.3445*A>E)(F)!ME!)N);OAE=)M#0')!K'(6&'+(Fc.1&')+0)%#IKFI&F')A>ETE!)"$+#F'0=1&%#I)?#'C(%/OK,$+"

OK,$+"O\Q
O\3O\V

A>EdQ

O%+9&'#;'1#%F#')A>Ed3O\Q
O\3O\V

B&%IC&%#
3PL4QR!*.3445*A>E)(F)!ME!)N);OAE=)M#0')!K'(6&'+(Fe*#IKFI&F"-)f(F+'(%+FH)M&0/Z*fM[)g)7#"(62(F#F')(D)*A>E• E(F'%($0)I%+9#%0• f(F+'(%0)`1#&$'1a)(D'1#)I%+9#%0• E1#"/0)'1#)2&%'F#%0'&'K0• @#"+I#0)C1#F)'(D&+$(9#%)Z(%)F(')'([

3PL4QR!*.3445*A>E)(F)!ME!)N);OAE=)M#0')!K'(6&'+(FP*fM)h)7#-)"(62(F#F')(D)*A>E• AFI#2#FI#F')D%(6);OAE=)"(%#)D&"+$+'+#0– A')K0#0)$+,E(6)'1(KH1• @#D+F#0)*fM)I%+9#%)+F'#%D&"#)!OA– .1+"1)+0)9#%-)0+62$#)&FI)#&0-)'()K0#• E&F),#)K0#I)'()6&/#)('1#%)0(D'C&%#)%#IKFI&F'– +L#L)"&_&'#C&-

3PL4QR!*.3445*A>E)(F)!ME!)N);OAE=)M#0')!K'(6&'+(F5!I9&F"#I)M#$#"(6)E(62K'+FH!%"1+'#"'K%#)Z!I9&F"#IME![• @#D+F#I),-)OEA)AFIK0'%+&$)E(62K'#%
f&FKD&"'K%#%0)_%(K2)C+'1)Q44U)"(62&F+#02&%'+"+2&'+FH• M&%H#'#I)'()%#iK+%#6#F'0)D(%)'1#)F#W'
H#F#%&'+(F)(D)"&%%+#%)H%&I#)"(66KF+"&'+(F0#iK+26#F'• AF"(%2(%&'#0)'1#)$&'#0')'%#FI0)+F)1+H1)02##I+F'#%"(FF#"')'#"1F($(H+#0:)F#W')H#F#%&'+(F2%("#00(%0)&FI)+62%(9#I)%#$+&,+$+'-:
6&F&H#&,+$+'-)&FI)0#%9+"#&,+$+'3PL4QR!*.3445*A>E)(F)!ME!)N);OAE=)M#0')!K'(6&'+(FQ4!I9&F"#IME!)"1&00+0)&FI),$&I#0

3PL4QR!*.3445*A>E)(F)!ME!)N);OAE=)M#0')!K'(6&'+(FQQ.1-)%KF)*A>E)(F)!ME!T• !ME!)+0)&)6(I#%F)+FIK0'%-)0'&FI&%I)D(%)B!
&22$+"&'+(F0– =K22(0#I)'(),#)9#%-)%#$+&,$#)Z55L555j)I#0+HF&9&+$&,+$+'-[• !ME!)+0)0KHH#0'#I)&0)&)2$&'D(%6)D(%)'1#)AXE"(F'%($)0-0'#6• !ME!)+0)&)1&%IC&%#)I#0+HF#I)D(%)"%+'+"&$&22$+"&'+(F0)&FI)*A>E)+0)&)0(D'C&%#)I#0+HF#I
D(%)"%+'+"&$)&22$+"&'+(F03PL4QR!*.3445*A>E)(F)!ME!)N);OAE=)M#0')!K'(6&'+(FQ3!ME!)k#&'K%#0!ME!)2%(9+I#0)6(F+'(%+FH)&FI)6&F&H#6#F'"(F'%($0)D(%)6&F-)2&%'0)(D)'1#)0-0'#6G)D&F0:
F#'C(%/)"(FF#"'+(F:)2(C#%)0K22$+#0:),+(0+6&H#0:),((')*>f0)#'"lM1#)/#-)%($#)+F)'1+0)2%("#00)+0)2$&-#I),-)=1#$D
f&F&H#%.#)C&F')'()K0#)'1+0)D#&'K%#0)'()6&/#,#''#%)I#"+0+(F0)D(%)D&+$g(9#%3PL4QR!*.3445*A>E)(F)!ME!)N);OAE=)M#0')!K'(6&'+(FQV!ME!)=1#$D)6&F&H#%@&'&)+0)#W"1&FH#I)'1%(KH1)%#IKFI&F')AF'#$$+H#F'
O$&'D(%6)f&F&H#6#F')SK0)AOfS
3PL4QR!*.3445*A>E)(F)!ME!)N);OAE=)M#0')!K'(6&'+(FQY`2$&+Fa)*#IKFI&F')A>E)(F)!ME!
E!)"$+#F'0=1&%#I)?#'C(%/OK,$+"

OK,$+"!ME!)01#$D
O\Q
O%+9&'#
A>EdQ)A>Ed3O\3O\V

A>EdQ;'1#%F#')A>Ed3O\Q
O\3O\V

B&%IC&%#
3PL4QR!*.3445*A>E)(F)!ME!)N);OAE=)M#0')!K'(6&'+(FQ]`2$&+Fa)*#IKFI&F')A>E)(F)!ME!
• *KF0)`&0g+0a• SK')I(#0)F(')/F(C)&F-'1+FH)&,(K')'1#`06&%'a)1&%IC&%#)(D)!ME!
• S&0+"&$$-)+0)0&6#)&0)%KFF+FH)(F)'C()F(%6&$OE0
3PL4QR!*.3445*A>E)(F)!ME!)N);OAE=)M#0')!K'(6&'+(FQc

S#F#D+'0)(D)`!ME!ag&C&%#)*A>E• k&+$K%#0)"&F),#)`2%#I+"'#Ia– +L#L)'#62#%&'K%#)0'&%'0)'()%+0#)&FI)'1#)EOJ)+0)0'+$$C(%/+FH)gm)C#)"&F)+F+'+&'#)D&+$g(9#%)2%("#IK%#),#D(%#&"'K&$)1&%IC&%#)D&+$0)gm)D&+$g(9#%)(""K%0)+F)6(%#)0'&,$#&FI)"(F'%($$#I)#F9+%(F6#F'• E$+#F')"(FF#"'+(F0)"&F),#)H%&"#DK$$-)"$(0#I– !$$(C+FH)'1#)"$+#F')'()%#"(FF#"')'(),&"/gK2)A>E)C+'1+FQ)0#"(FI– AF)"&0#)(D)`%#&$a)1&%IC&%#)D&+$K%#)%#"(FF#"')C(K$I(""K%)(F$-)&D'#%)V4)0#"(FI03PL4QR!*.3445*A>E)(F)!ME!)N);OAE=)M#0')!K'(6&'+(FQe!ME!<BOA)I%+9#%)D(%)*fM)AOBOA)g)B&%IC&%#)O$&'D(%6)AF'#%D&"#)h)_#F#%+")O$&'D(%6AFI#2#FI#F')02#"+D+"&'+(F)'()6(F+'(%)&FI)"(F'%($)B!)0-0'#60
3PL4QR!*.3445*A>E)(F)!ME!)N);OAE=)M#0')!K'(6&'+(FQP`BOAg&C&%#a)*A>E)(F)!ME!

3PL4QR!*.3445*A>E)(F)!ME!)N);OAE=)M#0')!K'(6&'+(FQ5*#0K$'G• *#$+&,$#)B&%IC&%#)Z!ME![)C&0)K0#I)+F"(FnKF"'+(F)C+'1)*#$+&,$#)=(D'C&%#)Z*A>E[• *A>E)C&0)#W'#FI#I)'()K0#)&9&+$&,$#)1&%IC&%#
0#F0(%0)'()6&/#),#''#%)D&+$(9#%)I#"+0+(F0• M1#)0(D'C&%#)"&F),#)K0#I)(F)('1#%)1&%IC&%#
Z+L#L)`"(66(Fa)0#%9#%g'-2#)OE[G)'1#%#iK+%#6#F')+0)BOA)$+,%&%-:)C1+"1)"&F)%KF)(F'(2)(D)AOfA:)=?fO:)=-0D0Z$+FKW[l3PL4QR!*.3445*A>E)(F)!ME!)N);OAE=)M#0')!K'(6&'+(F34?(C)*fM)"&F)6(F+'(%)&F-)&9&+$&,$#)0#F0(%(F)!ME!)01#$D)&FI)6&/#),#''#%)D&+$g(9#%I#"+0+(F"(FD+HK%&'+(F)9+&)+("=1G%6'BOA@%+9#%='&%'
op*!E7:4qp!@\!?E;@ME!rEB!==A=:4qpOB^=AE!Xr=X>M:YqpOAEf_rk*>?MrSX!@;:4qo)Q%6'BOA@%+9#%='&%')`#F'+'-O&'1a)`=#F0(%)A@a

3PL4QR!*.3445*A>E)(F)!ME!)N);OAE=)M#0')!K'(6&'+(F3Q

B(C)'()+62%(9#)*#$+&,+$+'-)(D)&E(F'%($)=-0'#6G• @#0+HF)C+'1)B!)+F)6+FI• J0#),#''#%)=(D'C&%#• A62$#6#F')%#IKFI&F"-)D(%)"%+'+"&$)2&%'0• ;'"LLL

3PL4QR!*.3445*A>E)(F)!ME!)N);OAE=)M#0')!K'(6&'+(F33M1#)O%(,$#6• ;OAE=)"&F)%KF)(F)6&F-)I+DD#%#F')>=)ZX+FKW:.+FI(C0:)f&")>=:)k%##S=@:)=($&%+0:)9W.(%/0:*M;f=:)(0Dg&$21&[• J0K&$$-)#9#F)C+'1+F)(F#)$&,(%&'(%-)6(%#)'1&F(F#)>=)+0)K0#I• >=)9#%0+(F0)&%#)&$0()I+DD#%#F'• .#)F##I)'()'#0')&$$)'1#)"(FD+HK%&'+(F0),#+FHK0#I)+F)%#&$)"(F'%($)0-0'#60
3PL4QR!*.3445*A>E)(F)!ME!)N);OAE=)M#0')!K'(6&'+(F3V

;OAE=)#W+0'+FH)0-0'#6)'#0')2&"/&H#Z6%/=(D'M#0'[• ?(,(I-)%#6#6,#%0)1(C)'()%KF)'1#0#)'#0'0:
0()#9#%-)'+6#)2#(2$#)1&9#)'()%#&I+F0'%K"'+(F0)sm)6(0')2#(2$#)I()F(')%KF)'#0'0• ^(K)1&9#)'()"(FD+HK%#:)#W#"K'#:)"(62&%#%#0K$'0)f!?J!XX^• +'t0)+F"(F9#F+#F')&FI)AM)M!7;=)MAf;

3PL4QR!*.3445*A>E)(F)!ME!)N);OAE=)M#0')!K'(6&'+(F3Y

Typical Test Scenario:
configure & start components
IOC 1

Commands

IOC 2

CA Client

Terminal
3PL4QR!*.3445*A>E)(F)!ME!)N);OAE=)M#0')!K'(6&'+(F3]Typical Test Scenario:
wait for the results
IOC 1IOC 2CAinteraction

CA Client

Terminal

3PL4QR!*.3445*A>E)(F)!ME!)N);OAE=)M#0')!K'(6&'+(F3cTypical Test Scenario:
gather results & analyze
IOC 1

Results

IOC 2

CA Client

Terminal
3PL4QR!*.3445*A>E)(F)!ME!)N);OAE=)M#0')!K'(6&'+(F3eTypical Test Scenario:
commands depend on configuration
IOC 1

Results

Commands

Terminal

CA Client

3PL4QR!*.3445

IOC 2*A>E)(F)!ME!)N);OAE=)M#0')!K'(6&'+(F3PTypical Test Scenario:
commands depend on configuration
IOC 1

Results

Commands

Terminal

CA Client

3PL4QR!*.3445

IOC 2*A>E)(F)!ME!)N);OAE=)M#0')!K'(6&'+(F35M1#)!F0C#%G)!K'(6&'+(F• bK0')0&-)`%KF)&$$)'#0'0)D(%)6#a)G[• !"'K&$$-)-(K)0&-G)L<%KF!$$M#0'0L%,• EK%%#F'$-)&K'(6&'#I)'#0'0)"&F),#)%KF)(F$("&$<%#6('#)6&"1+F#)(9#%)01:)001:)%01:'#$F#':)"K)LLL)&F-)('1#%)`01#$$g$+/#a)2%(H%&63PL4QR!*.3445*A>E)(F)!ME!)N);OAE=)M#0')!K'(6&'+(FV4

B(C)'()"%#&'#)F#C)'#0'G• @#9#$(2)'1#)'#0'G)+(":)"$+#F'0:)%#D#%#F"#%#0K$'0)D+$#:)#'"LL• C%+'#)'1#)"(%%#02(FI+FH)0#"'+(F)+F)'1#)"(FD+H
D+$#G)"(FD+HL-6$• C%+'#)`'#0')0"#F&%+(a)K0+FH)2%(9+I#I)%K,"$&00#0

3PL4QR!*.3445*A>E)(F)!ME!)N);OAE=)M#0')!K'(6&'+(FVQ

E(FD+HL-6$:TestGeneric:<<: *default
IocBootDir: iocBoot/iocput
Cmd: put.main
reference: testcache26MAR2008.darwinx86

3PL4QR!*.3445*A>E)(F)!ME!)N);OAE=)M#0')!K'(6&'+(FV3=+62$#)#W&62$#
class TestGeneric < RubTap::TestCase@ioc = common_setup_local
def test_name@ioc.talk("< p2sec", 5)cache_response = @ioc.talk( "< testcache", 20)
assert_equal(@testcache_reference,cache_response)end

3PL4QR!*.3445*A>E)(F)!ME!)N);OAE=)M#0')!K'(6&'+(FVV*KFF+FH)'#0'0• _%(K2)'#0'0)+F'()&)'#0')0K+'#
ts = RubTap::TestSuite.new
ts<<TestGeneric.new(TestConfig::AllTestsConfig.new("config.yml"))ts.run3PL4QR!*.3445*A>E)(F)!ME!)N);OAE=)M#0')!K'(6&'+(FVY;OAE=)M#0')!K'(6&'+(F)2&"/&H#• .&0)K0#I)'()&K'(6&'#)'1#)#W+0'+FH)'#0'
2&"/&H#:)6&/+FH)+')6K"1)6(%#)K0#%gD%+#FI$&FI)#&0-)'()%KF• E&F),#)K0#I)'()C%+'#)F#C)&K'(6&'#I)'#0'0• (FgH(+FH)C(%/G)'()6&/#)+')6(%#)`1K6&Fa%#&I&,$#• H+'G<<H+'1K,L"(6<&/&8&/(9<#2+"0'#0'LH+'
3PL4QR!*.3445*A>E)(F)!ME!)N);OAE=)M#0')!K'(6&'+(FV]