Re: [boost] [xint] Third release is ready, requesting preliminary review

On Tuesday, 4. May 2010 17:32:58 you wrote:
On 05/04/2010 05:51 AM, Jürgen Hunold wrote:
And it make things easiser if you only have on "red" entry in the summary page and can just see which test file to look at. And smaller test cases are just current Boost standard.
That works, then. Thanks for satisfying my curiosity.
You're welcome.
And I think the patch
+#ifdef BOOST_XINT_SINGLE_TEST_PROGRAM + #define BOOST_TEST_DYN_LINK +#else + #define BOOST_TEST_MAIN +#endif
is wrong. BOOST_TEST_DYN_LINK should always be defined on the command line when linking against a shared Boost.Test library. So, no source code #define is necessary.
But removing the BOOST_TEST_MAIN from all but one of the files, when using a single test program, is.
Yes, BOOST_TEST_MAIN is needed. #if !defined(BOOST_XINT_SINGLE_TEST_PROGRAM) #define BOOST_TEST_MAIN #endif is the "correct" solution
I'm fairly new to Boost.Test, but the documentation gave me the impression that you had to make a decision on whether to use dynamic linking or not when you wrote the code, because static and dynamic linking need slightly different setups. That would suggest that you can't easily switch between them, wouldn't it?
Well, I use the same code for static ansd shared linking :-)) You are using AUTO_TEST_CASEs, so there is no problem. All the needed magic is hidden in BOOST_TEST_MAIN in combination with BOOST_TEST_DYN_LINK. Using "manual registration" can be tricky.
And this issues " test_main.cpp:95:1: warning: "BOOST_TEST_DYN_LINK" redefined <command-line>: warning: this is the location of the previous definition"
when compiling a shared library with all Boost.Build magic enabled.
Eh? The library code doesn't use Boost.Test, only the testing code does. And even the testing code only includes that #define when BOOST_XINT_SINGLE_TEST_PROGRAM is defined, which it should never be except on my development machine, or that of someone else doing modifications to the library.
That would be me ;-) I've added the single test program locally to get the errors messages. Adding "BOOST_TEST_DYN_LINK" in source code is potentially dangerous. It should really be a commandline-option. It should be possible to set in Code::Blocks.
By the way: You have deleted test/Jamroot. Should there be a "test/Jamfile" instead ?
Yes, there should. Did it not make it into Subversion? Checking... it appears that it's there, so I'm not sure what to tell you. Maybe check it out manually?
No, it is definetely missing.
build/Jamfile.v2 still contains "nothrow_random.cpp" which was deleted in 61752 as well.
Sorry, I didn't remember to update that. I would have caught it before a final release though, I have an entire checklist of things to do for that.
Good.
And I think you may also check in files for other build systems, too. Some libraries have Makefiles as well as visual studio solutions.
I didn't think anyone would care about my Code::Blocks or Visual Studio projects. If there's some interest in them, I'll add them in the next repository update.
Not really. I've never used Code::Blocks ;-)) Yours, Jürgen -- * Dipl.-Math. Jürgen Hunold ! * voice: ++49 4257 300 ! Fährstraße 1 * fax : ++49 4257 300 ! 31609 Balge/Sebbenhausen * juergen.hunold@gmx.de ! -- * Dipl.-Math. Jürgen Hunold ! Ingenieurgesellschaft für * voice: ++49 511 262926 57 ! Verkehrs- und Eisenbahnwesen mbH * fax : ++49 511 262926 99 ! Lister Straße 15 * juergen.hunold@ivembh.de ! www.ivembh.de * * Geschäftsführer: ! Sitz des Unternehmens: Hannover * Prof. Dr.-Ing. Thomas Siefer ! Amtsgericht Hannover, HRB 56965 * PD Dr.-Ing. Alfons Radtke !

-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 05/05/2010 02:34 AM, Jürgen Hunold wrote: [...]
I'm fairly new to Boost.Test, but the documentation gave me the impression that you had to make a decision on whether to use dynamic linking or not when you wrote the code, because static and dynamic linking need slightly different setups. That would suggest that you can't easily switch between them, wouldn't it?
Well, I use the same code for static ansd shared linking :-)) You are using AUTO_TEST_CASEs, so there is no problem. All the needed magic is hidden in BOOST_TEST_MAIN in combination with BOOST_TEST_DYN_LINK. Using "manual registration" can be tricky.
Hm, I must have misread it then.
And this issues " test_main.cpp:95:1: warning: "BOOST_TEST_DYN_LINK" redefined <command-line>: warning: this is the location of the previous definition"
when compiling a shared library with all Boost.Build magic enabled.
Eh? The library code doesn't use Boost.Test, only the testing code does. And even the testing code only includes that #define when BOOST_XINT_SINGLE_TEST_PROGRAM is defined, which it should never be except on my development machine, or that of someone else doing modifications to the library.
That would be me ;-) I've added the single test program locally to get the errors messages. Adding "BOOST_TEST_DYN_LINK" in source code is potentially dangerous. It should really be a commandline-option. It should be possible to set in Code::Blocks.
Yes, it is, I just didn't see the point. I've made a note to move it.
By the way: You have deleted test/Jamroot. Should there be a "test/Jamfile" instead ?
Yes, there should. Did it not make it into Subversion? Checking... it appears that it's there, so I'm not sure what to tell you. Maybe check it out manually?
No, it is definetely missing.
Weird... I'm able to check it out and view it, via RapidSVN, so it has got to be in the repository. I don't know what to tell you. I assume you have the older copy with your modifications? I just applied the patch that you sent and renamed the file. - -- Chad Nelson Oak Circle Software, Inc. * * * -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAkvhd7EACgkQp9x9jeZ9/wR1pwCfTziX+V6GOtV+yBohyA2nEqfM rfkAoOXGumwIAlBH9ACi12cXwt/x9UfX =Rszr -----END PGP SIGNATURE-----
participants (2)
-
Chad Nelson
-
Jürgen Hunold