Intro to dejagnu: Help!

View: New views
3 Messages — Rating Filter:   Alert me  

Intro to dejagnu: Help!

by Paulo J. Matos :: Rate this Message:

| View Threaded | Show Only this Message

Hi all,

I'm searching for a way to test a software I'm developing for some
time ago. Since I'm using autotools, seems dejagnu seems the way to
go. But I don't know expect and don't have the slightest idea what do
to. I've briefly read through the manual but it doesn't really 'teach
you'. I don't want to know expect besides scripts to work with
dejagnu. I would like someone to tell me where to start or a quick
tutorial in it. From what I understand it seems it is easy to test my
program.
My program is called with some command line arguments and then it
output 3 values "yes", "no", "unknown". In fact, this could be done
with a bash script but using dejagnu seems more integrated. Given the
command line argument (a file), I know the correct output. I just want
to check if the program is giving the correct output.

Another more technical issue is that my program may or may not use
GMP, this is set from within configure by using the --enable-gmp. This
changes the program output, what might be before "unknown", can be now
"yes" or "no". So I need different testsuites for the program compiled
with or without --enable-gmp. Any ideas on how to do this?

Thanks in advance,

--
Paulo Jorge Matos - pocm at sat inesc-id pt
Web: http://sat.inesc-id.pt/~pocm
Computer and Software Engineering
INESC-ID - SAT Group


_______________________________________________
DejaGnu mailing list
DejaGnu@...
http://lists.gnu.org/mailman/listinfo/dejagnu

RE: Intro to dejagnu: Help!

by Yan Jiang :: Rate this Message:

| View Threaded | Show Only this Message

Hi, Paulo.

first of all, expect and dejagnu is good at testing interactive project.
If the result of yout test cases can be decided by the input and output
pair.
then it's the right thing for you.
other wise you really should look for another tool.

secondly.
I know it's pretty hard to find expect tutorial on internet.
But i think it's easier for you to find some tcl tutorial.
expect is based on Tcl.

thirdly:)
there is a tool in the expect release project, called "autoexpect".
try>>
$ autoexpect -f testcase1.exp
$ run_your_project
>>input something
>>you got the output here.
$ pkill autoexpect

after this , you will find a expect script "testcase1.exp" in the directory.
use an editor to open it.

autoexpect will record the input and output of the current running process.
then all you have to do is to do a little modification to use it as one of
your case.

Finally, a brief into to expect.
common used expect way is like this

set timeout n; # this is optional, be default n=10 seconds.
expect{
    -re "pattern1" { send "pass" }
    -re "pattern2" { send "fail"   }
    timeout          { send "time out" }
}

expect will read the output of the process,
if output starts to match pattern1, then pass will be print-out.
match pattern2, fail will be print-out.
otherwise timeout will be print-out.

set timeout -1. then expect will encounter timetout.

Hope it could help.:)

some expect scripts in dejagnu release packet might also be helpful.

Best wishes.



>From: "Paulo J. Matos" <pocmatos@...>
>Reply-To: pocm@...
>To: dejagnu@...
>Subject: Intro to dejagnu: Help!
>Date: Thu, 8 Jun 2006 14:35:33 +0100
>
>Hi all,
>
>I'm searching for a way to test a software I'm developing for some
>time ago. Since I'm using autotools, seems dejagnu seems the way to
>go. But I don't know expect and don't have the slightest idea what do
>to. I've briefly read through the manual but it doesn't really 'teach
>you'. I don't want to know expect besides scripts to work with
>dejagnu. I would like someone to tell me where to start or a quick
>tutorial in it. From what I understand it seems it is easy to test my
>program.
>My program is called with some command line arguments and then it
>output 3 values "yes", "no", "unknown". In fact, this could be done
>with a bash script but using dejagnu seems more integrated. Given the
>command line argument (a file), I know the correct output. I just want
>to check if the program is giving the correct output.
>
>Another more technical issue is that my program may or may not use
>GMP, this is set from within configure by using the --enable-gmp. This
>changes the program output, what might be before "unknown", can be now
>"yes" or "no". So I need different testsuites for the program compiled
>with or without --enable-gmp. Any ideas on how to do this?
>
>Thanks in advance,
>
>--
>Paulo Jorge Matos - pocm at sat inesc-id pt
>Web: http://sat.inesc-id.pt/~pocm
>Computer and Software Engineering
>INESC-ID - SAT Group
>
>
>_______________________________________________
>DejaGnu mailing list
>DejaGnu@...
>http://lists.gnu.org/mailman/listinfo/dejagnu




_______________________________________________
DejaGnu mailing list
DejaGnu@...
http://lists.gnu.org/mailman/listinfo/dejagnu

Re: Intro to dejagnu: Help!

by Ben Elliston-37 :: Rate this Message:

| View Threaded | Show Only this Message

Hi Paulo

On Thu, Jun 08, 2006 at 02:35:33PM +0100, Paulo J. Matos wrote:

> Another more technical issue is that my program may or may not use
> GMP, this is set from within configure by using the
> --enable-gmp. This changes the program output, what might be before
> "unknown", can be now "yes" or "no". So I need different testsuites
> for the program compiled with or without --enable-gmp. Any ideas on
> how to do this?

I would just write some dejagnu glue that checks if the package was
compiled with --enable-gmp and skips the tests that does/does not need
GMP.  Then use two build trees, one with and one without --enable-gmp
and run make check in both.

That's one way, at least.

Ben

_______________________________________________
DejaGnu mailing list
DejaGnu@...
http://lists.gnu.org/mailman/listinfo/dejagnu