Manish Sapariya wrote:
> Hi all,
> I am testing a networking device and need to write a regression framework
> for the device. I have evaluated STAF/STAX framework, but I think its
> not addressing
> some of our needs, that is resource scheduling.
>

I am not familar with STAF/STAX so can't speak to them. POE is
definitely a great way to handle resource scheduling.

> So we have a set of DUT (device under test) machines, and we have 1/2
> builds everyday.
> We are looking for ( or a develop one) a regression framework, which has
> scheduling
> system which basically can,
> 
> - Keep a database of DUT machines, a dut is classified as High end or
> low end machine

Is this a static DB, or one that is generated based on the DUT
contacting the main system to let it know that it is alive? Either
should work, but it might change the dynamics a bit.

> - we should be able to queue up the regression task and the system
> should take the
>    available machine when free and start the regression on it

Assuming there is some way to notify the controlling system that the DUT
is ready for work this should be pretty easy to do with a queue of
sorts. I know there is at least one pre-existing component queue and I
have described here at least once how I implemented a different sort
(check the archives). One question I have is whether the controller is
running the regression, or whether the DUT runs it when the controller
tells it to.

> - which can pause the regression on failure, or instructed by the test
> operator

Pausing a regression should be fairly trivial, just sending an event
indicating a pause should work. The more difficult part to this is that
you have to write two interfaces that generate that event, specifically
the one caused by the failure *and* the human interactive one (which is
the harder).

> 
> Besides these we are looking for features like:
> 
> - Centralized logging/reporting service, i.e. all the information about
> the execution
>  of the regression to be routed to a central logging machine and
> creating reports out
>  of those log/summary files about the health of a particular build
>

For this I would suggest Log::Log4perl. It sounds similar to what I have
done in the past, only I had the logs on the local machine instead of
using syslog or something on a separate machine.


> - Health checking service for dut, being a big system, even if the part
> of the system
>    is not functioning regression framework may carry on executing. So I
> want to watch
>    for some parameters on the dut machine and declare the machine as
> unusable and pause
>    the regression for analysis.
> 

All of this is doable, just a matter of time.

> So my question to the list is, can i develop such kind of services using
> POE.

Yes.

> Any advantages/disadvantages?

There are tons of advantages over doing this with other Perl systems,
which are really just inherent to POE. The disadvantage is that POE does
have a learning curve (though it is very useful once you are through it)
and you will have a fair amount to write. Whether you could find another
framework that is already closer to your goal I don't know, you might
drop a line to the perl-qa mailing list to ask there about such frameworks.

> Or is it overkill to use poe technology for this kind of purpose?

If you are set on Perl it is definitely not overkill.

> or are there any areas in my specs which cannot be addressed by perl/poe?

Your spec seems fairly high level (as it would on a mailing list), I
didn't see anything that couldn't be addressed. I would suggest you look
into the Test:: suite to see if they can be used for writing your test
cases if you haven't alreay done so.

> Do you suggest any alternate existing framework?
> 
> Thanks and Regards,
> Manish
> 

As an aside and my standard rant, I would start out with object based
sessions rather than inline, I think it will serve you and save you time
in the end.

Good luck, sounds like an interesting project,

http://danconia.org

Reply via email to