RANTEST 1.1 ChangeLog

This is the ChangeLog for RANTEST for versions 1.1 and up.

See also:

Version 1.1.7


East.pm:

Version 1.1.6


East.pm:

Version 1.1.5


East.pm:

Version 1.1.4


Rantest:

East:

Version 1.1.3


Web:

Version 1.1.2


Rantest:

Version 1.1.1


Rantest:

Version 1.1.0


Rantest:

New Validation API

It was decided to get rantest out of the business of interpreting validation command lines and instead simply offer variables which would be available for test writers to use. This is viewed as a good thing because future validations and validators can be written and rantest need not be modified to become aware of them. Validations or val lines become not much different than exec shell lines.

Rantest therefore supports the following pseudo (and non-pseudo) variables which can be used in val lines (or any other lines for that matter):

This, of course, means that val lines have to be changed to use the above variables to specify their missing parts. Thus a previous val line of simply:

val:  valMsgs.pl -p MyConfig.txt

would need to be changed to:

val:  valMsgs.pl -p $msgdefs/MyConfig.txt -l $logpath/Rantvl/RNCLog.txt

Note that now the test writer needs to have the valMsgs.pl line specify RNCLog.txt or RBSLog.txt depending on what type of test they are doing. IOW rantest no longer is charged with figuring this out.

Note: Rantest validations are currently not in wide use so now is a good time to implement this change in the API.

Similarly, an aal2val line may change from:

val:  aal2val -config My.conf

to:

val:  aal2val -config $validations/My.conf -f $logpath/EASTLogs/Server_Logs/rnc_aal2.log

Dynamic filesets:

Some validations run on a fileset which is not known to the test writer at the time s/he is writing the test. In such cases you can designate a fileset that rantest will expand and replace with a comma separated list full pathnames $[dynamic fileset]. So, for example, $[/tmp/*] would return a comma separated list of all files under /tmp. If only a portion of the dynamic file is required you can include an array reference or a slice. For example:

val: <validation script> -f $[$logpath/foo*.log][0]
val: <validation script> -f $[$logpath/foo*.log][1..2]

This would tell rantest to expand $logpath first, then expand the fileset, then take the first (0th) entry file list for the first validation, or create a comma separated list of the second and third pathnames from the file list second validation. So, assuming there were logfiles with the names foo[1-3].log, rantest would expand the above giving us:

val: <validation script> -f /east/seast1/testlogs/testcase1/rnc5/20080917@14;38:03/foo1.log
val: <validation script> -f /east/seast1/testlogs/testcase1/rnc5/20080917@14;38:03/foo2.log,/east/seast1/testlogs/testcase1/rnc5/20080917@14;38:03/foo3.log

Notes

  1. Validations may need to be recorded to expect multiple parameters. For example, -f above for <validation script> needs to accept multple values for -f (Getopt::Long handles this fairly nicely however <validation script>'s logic may need to change somewhat).
  2. When using filesets it's possible that empty lists will be returned. For example, if $[$logpath/foo*.log] evaluates to no files you'll get back nothing. Additionally $[$logpath/foo*.log][10..12] will return nothing assuming there are no files in the 10..12 slice.

Our final example is tmiVal, which is using multiple config files against a dynamic fileset:

val:  tmiVal -config config1,config2,config3 -configbase $validations \
  -logbase $logpath/TM500Logs -logfiles ${$logbase/TM500Logs/TMI.dl.*}

Notes:

  1. tmiVal needs to be re-written to handle these new options
  2. -configbase is applied to each leaf node under -config making $configbase/config1, $configbase/config2 and $configbase/config3. It is tmiVal - not rantest - which applies this rule.
  3. Similarly $logbase applies to @logfiles like $configbase
  4. There is no guarantee that there will only be 3 TMI.dl.* logfiles nor is the ordering of the fileset guaranteed, save for the natural ordering of ls(1).
  5. The syntax of \ to indicate continue this line is not supported by rantest and is used above only to enhance readability.