Re: [Cppunit-devel] Most user-friendly version of CppUnit
Brought to you by:
blep
From: Baptiste L. <gai...@fr...> - 2003-09-09 00:13:36
|
----- Original Message ----- From: "Noel Yap" <Noe...@mo...> To: "Baptiste Lepilleur" <gai...@fr...> Cc: <cpp...@li...> Sent: Tuesday, August 12, 2003 5:39 PM Subject: Re: [Cppunit-devel] Most user-friendly version of CppUnit > Baptiste Lepilleur wrote: > > Surely someone fixed this parsing issue. At worth, CPPUNIT macros should be > > consider as function declaration with omitted return type. But this kind of > > macros is already specific to CppUnit. A few libraries with similar macros > > that come to mind: Qt, WxWindow, MFC. Fairly common stuffs. > > Even if someone did fix the emacs parsing, I consider it a hack that'll work so long as CppUnit doesn't change or add macro names. You should not need to rely on the macro name to parse this. A structure of the forms "id( expression-list);" could be parsed as a function declaration returning int (well, that's how I would do it). As I said this kind of macro is not specific to cppunit. I certainly won't remove those because a text editor can not ident correctly ;-) > > I don't know of any better way to 'generate' code than those 'fairly' simple > > macro. May be you would like to share (cppunit v2 is relying on a similar > > scheme at the time). Which is not portable. It relies on a specific build system, as well as a shell environment. Beginners would probably run away ;-). Also, this slow down the build process. I like being able to run my test plug-in a a few seconds ;-) You might want to look up project cuppa (http://sourceforge.jp/projects/cuppa/) which (I believe) provides a portable implementation to do that. > I can't send the entire script, but here's a snippet (which may not make sense outside the context of the rest of it): > > for test_header in $$test_headers; \ > do \ > test_fqbn=`echo $$test_header | sed -e 's/.*\/lib\/\\(.*\\)\\.H/ > \\1/g' -e 's/\//::/g'`; \ > grep 'void *test[a-zA-Z0-9_][a-zA-Z0-9_]* *( *)' $$test_header > \ > | sed -e 's/.* \(test[^ (]*\).*/\1/' \ > | while read t; \ > do \ > echo " testSuite->addTest("; \ > echo " new CppUnit::TestCaller< $$test_fqcn > > ("; \ > echo " \"$$test_fqbn::$$t\","; \ > echo " &$$test_fqcn::$$t) );"; \ > done; \ > done; \ > > It may look strange since it's a script within a makefile. > > HTH, > Noel > -- > NOTICE: If received in error, please destroy and notify sender. Sender does not waive confidentiality or privilege, and use is prohibited. |