?login_element?

Subversion Repositories NedoOS

Rev

Blame | Last modification | View Log | Download

  1. #ifndef UNITTEST_HELPERMACROS_H
  2. #define UNITTEST_HELPERMACROS_H
  3.  
  4. #include "Config.h"
  5.  
  6. #define UNITTEST_MULTILINE_MACRO_BEGIN do {
  7.  
  8. #if defined(UNITTEST_WIN32) && !defined(UNITTEST_COMPILER_IS_MSVC6)
  9.    #define UNITTEST_MULTILINE_MACRO_END \
  10.       } __pragma(warning(push)) __pragma(warning(disable: 4127)) while (0) __pragma(warning(pop))
  11. #else
  12.    #define UNITTEST_MULTILINE_MACRO_END } while(0)
  13. #endif
  14.  
  15.  
  16. #ifdef UNITTEST_WIN32_DLL
  17.    #define UNITTEST_IMPORT __declspec(dllimport)
  18.    #define UNITTEST_EXPORT __declspec(dllexport)
  19.  
  20.    #ifdef UNITTEST_DLL_EXPORT
  21.       #define UNITTEST_LINKAGE UNITTEST_EXPORT
  22.       #define UNITTEST_IMPEXP_TEMPLATE
  23.    #else
  24.       #define UNITTEST_LINKAGE UNITTEST_IMPORT
  25.       #define UNITTEST_IMPEXP_TEMPLATE extern
  26.    #endif
  27.  
  28.    #define UNITTEST_STDVECTOR_LINKAGE(T)                                            \
  29.       __pragma(warning(push))                                                       \
  30.       __pragma(warning(disable: 4231))                                              \
  31.       UNITTEST_IMPEXP_TEMPLATE template class UNITTEST_LINKAGE std::allocator< T >; \
  32.       UNITTEST_IMPEXP_TEMPLATE template class UNITTEST_LINKAGE std::vector< T >;    \
  33.       __pragma(warning(pop))
  34. #else
  35.    #define UNITTEST_IMPORT
  36.    #define UNITTEST_EXPORT
  37.    #define UNITTEST_LINKAGE
  38.    #define UNITTEST_IMPEXP_TEMPLATE
  39.    #define UNITTEST_STDVECTOR_LINKAGE(T)
  40. #endif
  41.  
  42. #ifdef UNITTEST_WIN32
  43.    #define UNITTEST_JMPBUF jmp_buf
  44.    #define UNITTEST_SETJMP setjmp
  45.    #define UNITTEST_LONGJMP longjmp
  46. #elif defined UNITTEST_POSIX
  47.    #define UNITTEST_JMPBUF std::jmp_buf
  48.    #define UNITTEST_SETJMP setjmp
  49.    #define UNITTEST_LONGJMP std::longjmp
  50. #endif
  51.  
  52. #endif
  53.