" /> Status for Andrew DeFaria: January 20, 2008 - January 26, 2008 Archives

« December 2, 2007 - December 8, 2007 | Main | January 27, 2008 - February 2, 2008 »

January 23, 2008

East.pm

  • Initial coding of East.pm
  • Added parameters to testeast script
  • Changed Rexec to handle timeouts better
  • Opened WOR for Rexec work

East.pm Library

Started coding the East.pm library. The idea was that this library would allow testers to invoke tests using a few simple Perl statements. Work on this was initially laid out by Gantry York for other simulators like TM500, etc. This East.pm merely falls in line with those.

I'm trying to code a Perl library for running test cases/suites on East. I'm new to this environment so I don't understand it well. It seems like there are test cases and test suites. There may be "load runner" things and "regression runner" things. All of these objects and how this works is all Greek to me at this moment.

What I'm told is that in order to run these things the following steps must take place:

  1. From the RAN, ssh to raneast
  2. Once there a TCL/Tk script will pop up a window that shows various RBS/RNC/East things numbered from 1-7. Some boxes will be red indicating that they are in use and some will be green indicating that they are available.
  3. I assume I'm supposed to pick a green one. Whether I'm looking for an RBS or an RNC or even an East is unknown to me at this time. This is chosen based on the Device Under Test, if you want to test rbs6 that is what you would choose. East logins are used only for scripting purposes, and will not work for actual execution.
  4. So far I've only played with RBSs so I pick a green RBS box and type in "rbs <n>" where <n> is the number of the green box I chose. This apparently goes through a mapping of sorts and ssh's to a ceast machine of appropriate number.
  5. Once there I do a start_east_auto <view name> <rbs<n>> where this time "rbs" and "<n>" are squished together. Step 4 above has a space between the "rbs" and the "<n>". This, in some manner, starts the East server(s) and another GUI appears. There are various buttons - mostly initially yellow. I am supposed to wait 10-15 seconds for them (well some of them) to turn green.
  6. Next I run java [type of test] -run -name <name of test>.

At this point I'd like to ask some questions:

  1. Does the "rbs <n>" command and the "rbs<n>" parameter have to be the same with respect to <n>? Yes, the choice should be the same with regards to the rbs/rnc and The first is used to ssh to the correct ceast blade, the second is used to execute the east application with the correct settings for testing that particular node. The second command is also what creates the lock file indicating you are currently using that resource (the box changes from green to red in the TCL script).
  2. How can I programmatically determine if the desired "rbs <n>" unit is indeed green?There is a command line tool called elock that prints the status of each device. The DUT name will only be present if it is currently locked.
  3. What is [type of test]? From the Command Line in EAST document I have ascertained the following "types" of tests:
    • LoadTCRunner The type of test which is run is called a Test Case or “TC”, it is run in Load which means it can be run with multiple contexts.
    • RegressionRunner Same as above, except the test is run as a single context
    • RegressionLoadRunner Not used in our current implementation
    • RegressionTSRunner This command runs Test Suites or “TS”

From what I can tell, and from an IM with Ross, there appears to be the following relationship:

Java Command
-name
Path
Comments
LoadTCRunner
<test>.profile
/simdev/tc_data/tc/profiles/load

RegressionRunner
<test>.profile
/simdev/tc_data/tc/profiles/tc

RegressionLoadRunner
???
???
Not used?
RegressionTSRunner
<test>.profile
/simdev/tc_data/ts/profiles/ts

Note: Path is important as you cannot specify -path to the java command.

Finally, according to the Command Line in EAST document there is a -flag parameter which states:

-flag
If this argument is used the runner will quit when the load engine exits

Can this be used to block while the test is being run and is the exit status properly set to indicate success or failure?

Yes, it will block when the test is run and exit when it is finished, however in tests yesterday it doesn’t seem to matter whether the test passed or failed, it always returns 0. Also, there will be cases in which scripts that we run are designed to never exit, so the process would have to be killed after meeting a set of criteria.