Boost logo

Boost Users :

Subject: [Boost-users] Boost Unit Testing Macros on Visual Studio 2005/Visual C++ 8.0
From: Andrew Leer (leeand00_at_[hidden])
Date: 2009-12-09 15:38:57


I'm reading this article
(http://www.ibm.com/developerworks/aix/library/au-ctools1_boost/?S_TACT=105AGY20&S_CMP=HP)
 on the Boost Unit Testing Framework.

However I'm having a bit of trouble with the first example, my guess
is that they left something out (something that would be obvious to
hardcore C++ coders) as IBM often does in their articles. Another
possibility is that my Visual Studio 2005 C++ compiler is just too old
for the example.

    #define _MYSTRING
    #define BOOST_TEST_MODULE stringtest
    #include <boost/test/unit_test.hpp>
    #include "stdafx.h"
    //#include "mystring.h"

    BOOST_AUTO_TEST_SUITE (stringtest) // name of the test suite is stringtest

    BOOST_AUTO_TEST_CASE (test1)
    {
     /*
      mystring s;
      BOOST_CHECK(s.size() == 0);
      */
      BOOST_CHECK(0 == 0);
    }

    BOOST_AUTO_TEST_CASE(test2)
    {
      /*
      mystring s;
      s.setbuffer("hello world");
      BOOST_REQUIRE_EQUAL('h', s[0]); // basic test
      */
      BOOST_CHECK(0 == 0);
    }

    BOOST_AUTO_TEST_SUITE_END( )

To me the BOOST_AUTO_TEST_SUITE and BOOST_AUTO_TEST_CASE lines look a
little suspect (especially since they don't have quotes around the
arguments, and they are undeclared identifiers...but this probably
means they are macros and I'm not certain I understand the concept or
if that is available in VC++ 8.0)...

Is there any reason why this code won't work?

Bellow are the errors I'm receiving:

    1>c:\users\andy\documents\visual studio
2005\projects\unittesttests\unittesttests\unittesttests.cpp(7) : error
C2065: 'stringtest' : undeclared identifier
    1>c:\users\andy\documents\visual studio
2005\projects\unittesttests\unittesttests\unittesttests.cpp(9) : error
C4430: missing type specifier - int assumed. Note: C++ does not
support default-int
    1>c:\users\andy\documents\visual studio
2005\projects\unittesttests\unittesttests\unittesttests.cpp(9) : error
C2146: syntax error : missing ';' before identifier
'BOOST_AUTO_TEST_CASE'
    1>c:\users\andy\documents\visual studio
2005\projects\unittesttests\unittesttests\unittesttests.cpp(9) : error
C2065: 'test1' : undeclared identifier
    1>c:\users\andy\documents\visual studio
2005\projects\unittesttests\unittesttests\unittesttests.cpp(10) :
error C2448: 'BOOST_AUTO_TEST_CASE' : function-style initializer
appears to be a function definition
    1>c:\users\andy\documents\visual studio
2005\projects\unittesttests\unittesttests\unittesttests.cpp(18) :
error C2065: 'test2' : undeclared identifier
    1>c:\users\andy\documents\visual studio
2005\projects\unittesttests\unittesttests\unittesttests.cpp(19) :
error C2448: 'BOOST_AUTO_TEST_CASE' : function-style initializer
appears to be a function definition
    1>c:\users\andy\documents\visual studio
2005\projects\unittesttests\unittesttests\unittesttests.cpp(29) :
fatal error C1004: unexpected end-of-file found


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net