CppUnit's coding guidelines for portability:
--------------------------------------------

- don't explicitly declare CppUnit namespace, instead use macro
  CPPUNIT_NS_BEGIN and CPPUNIT_NS_END.

- don't explicitly use 'CppUnit' to refer to class in CppUnit namespace,
  instead use macro CPPUNIT_NS which expands to either 'CppUnit' or 
  nothing depending on the configuration.

- don't use the 'using directive', always use full qualification. For STL,
  always use std::.

- don't use the mutable keyword, instead do a const cast.

- don't use default parameter value in template function. Not supported
  by all compiler (on OS/390 for instance).

As such, usage of those features should always be optional.

CppUnit's version control system management
--------------------------------------------

- only commit patches that are known to build; other commits might just be reverted
  to allow bisecting

- work in feature branches until your feature is ready to merge, if the feature
  may break the build ask for review on the libreoffice developer mailing list

- new features and patches without bug report only in master
  and not in stable branches
