This is the mail archive of the mauve-discuss@sourceware.cygnus.com mailing list for the Mauve project. See the Mauve home page for more information.


[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index] [Subject Index] [Author Index] [Thread Index]

Re: Character test (incomplete)



>>>>> "Artur" == Artur Biesiadowski <abies@pg.gda.pl> writes:

Artur> Why not in mauve framework ?

Artur> 1) I use jbuilder for this particular class (because of very
Artur> fast compile/error/correct/run turnabout). Mauve depends on
Artur> magic shell scripts.

The current implementation depends on the magic scripts, but the
harness itself doesn't.

You could probably write a version of the harness that would work well
in your environment.  We'd welcome it.  The intent is that different
users can write their own version of the harness to suit their needs.
For instance, here at Cygnus I'm writing a harness to work with
DejaGNU, so we can easily compile and run tests on simulators and
embedded systems.

Artur> 2) I prefer fully verbose error messages. Of course I could add
Artur> checkPassed() and checkFailed(message) methods to TestHarness,
Artur> but this would give only
Artur> "test 123456 of 12376317327 failed"
Artur> in addition to my messages, which would just garble output

I don't think this is a completely accurate assessment of the current
test harness.  (BTW checkPassed and checkFailed aren't part of the
current framework at all.  I'm not sure what you mean when you mention
these.)

If your test simply returns a boolean, then it's true you don't get a
whole lot of information on failure.  If this is a problem then you
can use checkPoint() to set the name for the next test.  In many
situations this is not a problem; however for your Character tests it
probably is (because your tests aren't statically layed out, and there
are very many of them).

If your test compares two objects (or primitives) for equality, then
it is better to use the two-argument form of `check'.  That way, in
`-debug' mode, you get a message describing the expected result and
the actual result.

Artur> 3) It is easier to manipulate file in top level package. People
Artur> can run this test anywhere without setting it up inside mauve

Could you elaborate on this?

Artur> Of course, when it will be working, I plan to change it to
Artur> mauve framework. I suppose that it will require changing all
Artur> System.out.println to string operation with call to
Artur> checkFailed(message) and adding
Artur> else
Artur> {
Artur> 	harness.checkPassed();
Artur> }
Artur> after each 
Artur> if (test) {...fail...}

Not really.  Instead you would write something like this:

	harness.check (! test);

(assuming that `test' is true on failure, as in your example.)

Artur> BTW do you want to build something on top of TestHarness in
Artur> future ? I mean if it is important that every atomic test have
Artur> its number.

I still don't agree with this assertion.

Artur> If not, then it will be easier, as each test could just call
Artur> one pass/fail method at end (in addition to possible
Artur> checkpoints for unxpected exceptions).

I think it makes a lot of sense to call check for each test, and not
just once at the end.  This lets you find the failing test without
having to write a name or number for every single test.

Tom