bug-commoncpp
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Test framework; and what should be in 1.1.0


From: Albert Strasheim
Subject: Re: Test framework; and what should be in 1.1.0
Date: Fri, 3 Jan 2003 21:11:13 +0200
User-agent: Mutt/1.4i

Hello,

On Fri, 03 Jan 2003, Chad Yates wrote:

> > > * new testing framework
> >
> > I'd say we will probably be ready to submit something for inclusion into
> > CVS by this time next week. Chad?
> 
> I think so.  things related to digest and persistence should come to closure
> pretty soon.  I'm going to see if I can't use some "magic" that albert and I
> discussed to give the digests a simple extensible base that can be used to
> run all current (and future with very small additions) digest sub-classes
> through a common test suite.  hopefully the technique will be useful (if it
> works out) in other class hieararchies that enforce a basic common
> interface.
> 
> also, I just remembered something.  albert, you may want to take a look at
> the Orthodox.h file in cppunit-1.8.0/include/cppunit/extensions.  Last night
> while lie in bed sleepless (brain in overdrive), I remembered stumbling onto
> it while perusing the doxygen docs.  I think I might find some useful bits
> applicable to the above "magic."  it runs a class through the standard C++
> opperators.  from the header comments:
> 
>  * Orthodox performs a simple set of tests on an arbitary
>  * class to make sure that it supports at least the
>  * following operations:
>  *
>  *      default construction    - constructor
>  *      equality/inequality     - operator== && operator!=
>  *      assignment              - operator=
>  *      negation                - operator!

I am quite surprised by this. I was looking over some of the Common C++ 
documentation, and I couldn't figure out why everyone was including 
operator! methods. To me negation doesn't mean much, except in specific 
cases, and even then negating the return value of a "get" method would 
probably be clearer in meaning. Or should negation generally return true 
if something is "wrong" with the object?

Does someone know of an article or a reference describing what operator! 
is generally supposed to do?

>  *      safe passage            - copy construction

The C++ portability guide has some insightful comments on this subject: 
declare a private copy constructor and operator=(T&) if you don't intend 
for your class to be copy constructed. Has this been adhered to in the 
Common C++ classes? This test will help us find this kind of stuff.

>  *
>  * If operations for each of these are not declared
>  * the template will not instantiate.  If it does
>  * instantiate, tests are performed to make sure
>  * that the operations have correct semantics.
> 
> Check out the doxygen docs for more info on it's usage.  I'll be
> investigating as I play with the digest tests in the next few days.

Sweet.

Cheers,

Albert




reply via email to

[Prev in Thread] Current Thread [Next in Thread]