win32_test.cpp 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. // boost win32_test.cpp -----------------------------------------------------//
  2. // Copyright 2010 Vicente J. Botet Escriba
  3. // Distributed under the Boost Software License, Version 1.0.
  4. // See http://www.boost.org/LICENSE_1_0.txt
  5. // See http://www.boost.org/libs/chrono for documentation.
  6. #include <boost/chrono/config.hpp>
  7. #include <boost/detail/lightweight_test.hpp>
  8. #if defined(BOOST_CHRONO_WINDOWS_API) || defined(__CYGWIN__)
  9. #include <boost/chrono/detail/static_assert.hpp>
  10. #if !defined(BOOST_NO_CXX11_STATIC_ASSERT)
  11. #define NOTHING ""
  12. #endif
  13. #include <boost/type_traits.hpp>
  14. #include <boost/typeof/typeof.hpp>
  15. #undef BOOST_USE_WINDOWS_H
  16. #include <boost/winapi/basic_types.hpp>
  17. #include <boost/winapi/time.hpp>
  18. #include <windows.h>
  19. void test() {
  20. {
  21. boost::winapi::LARGE_INTEGER_ a;
  22. LARGE_INTEGER b;
  23. BOOST_CHRONO_STATIC_ASSERT((
  24. sizeof(boost::winapi::LARGE_INTEGER_)==sizeof(LARGE_INTEGER)
  25. ), NOTHING, (boost::winapi::LARGE_INTEGER_, LARGE_INTEGER));
  26. BOOST_TEST((
  27. sizeof(a.QuadPart)==sizeof(b.QuadPart)
  28. ));
  29. BOOST_CHRONO_STATIC_ASSERT((
  30. offsetof(boost::winapi::LARGE_INTEGER_, QuadPart)==offsetof(LARGE_INTEGER, QuadPart)
  31. ), NOTHING, (boost::winapi::LARGE_INTEGER_, LARGE_INTEGER));
  32. BOOST_CHRONO_STATIC_ASSERT((
  33. boost::is_same<
  34. BOOST_TYPEOF(a.QuadPart),
  35. BOOST_TYPEOF(b.QuadPart)
  36. >::value
  37. ), NOTHING, (boost::winapi::LARGE_INTEGER_, LARGE_INTEGER));
  38. }
  39. BOOST_CHRONO_STATIC_ASSERT((
  40. sizeof(boost::winapi::BOOL_)==sizeof(BOOL)
  41. ), NOTHING, (boost::winapi::BOOL_, BOOL));
  42. BOOST_CHRONO_STATIC_ASSERT((
  43. boost::is_same<boost::winapi::BOOL_,BOOL>::value
  44. ), NOTHING, (boost::winapi::BOOL_, BOOL));
  45. BOOST_CHRONO_STATIC_ASSERT((
  46. sizeof(boost::winapi::DWORD_)==sizeof(DWORD)
  47. ), NOTHING, (boost::winapi::DWORD_, DWORD));
  48. BOOST_CHRONO_STATIC_ASSERT((
  49. boost::is_same<boost::winapi::DWORD_,DWORD>::value
  50. ), NOTHING, (boost::winapi::DWORD_, DWORD));
  51. BOOST_CHRONO_STATIC_ASSERT((
  52. sizeof(boost::winapi::HANDLE_)==sizeof(HANDLE)
  53. ), NOTHING, (boost::winapi::HANDLE_, HANDLE));
  54. BOOST_CHRONO_STATIC_ASSERT((
  55. boost::is_same<boost::winapi::HANDLE_,HANDLE>::value
  56. ), NOTHING, (boost::winapi::HANDLE_, HANDLE));
  57. BOOST_CHRONO_STATIC_ASSERT((
  58. sizeof(boost::winapi::LONG_)==sizeof(LONG)
  59. ), NOTHING, (boost::winapi::LONG_, LONG));
  60. BOOST_CHRONO_STATIC_ASSERT((
  61. boost::is_same<boost::winapi::LONG_,LONG>::value
  62. ), NOTHING, (boost::winapi::LONG_, LONG));
  63. BOOST_CHRONO_STATIC_ASSERT((
  64. sizeof(boost::winapi::LONGLONG_)==sizeof(LONGLONG)
  65. ), NOTHING, (boost::winapi::LONGLONG_, LONGLONG));
  66. BOOST_CHRONO_STATIC_ASSERT((
  67. boost::is_same<boost::winapi::LONGLONG_,LONGLONG>::value
  68. ), NOTHING, (boost::winapi::LONGLONG_, LONGLONG));
  69. BOOST_CHRONO_STATIC_ASSERT((
  70. sizeof(boost::winapi::ULONG_PTR_)==sizeof(ULONG_PTR)
  71. ), NOTHING, (boost::winapi::ULONG_PTR_, ULONG_PTR));
  72. BOOST_CHRONO_STATIC_ASSERT((
  73. boost::is_same<boost::winapi::ULONG_PTR_,ULONG_PTR>::value
  74. ), NOTHING, (boost::winapi::ULONG_PTR_, ULONG_PTR));
  75. BOOST_CHRONO_STATIC_ASSERT((
  76. sizeof(boost::winapi::PLARGE_INTEGER_)==sizeof(PLARGE_INTEGER)
  77. ), NOTHING, (boost::winapi::PLARGE_INTEGER_, PLARGE_INTEGER));
  78. //~ BOOST_CHRONO_STATIC_ASSERT((
  79. //~ boost::is_same<boost::winapi::PLARGE_INTEGER_,PLARGE_INTEGER>::value
  80. //~ ), NOTHING, (boost::winapi::PLARGE_INTEGER_, PLARGE_INTEGER));
  81. {
  82. BOOST_CHRONO_STATIC_ASSERT((
  83. sizeof(boost::winapi::FILETIME_)==sizeof(FILETIME)
  84. ), NOTHING, (boost::winapi::FILETIME_, FILETIME));
  85. BOOST_CHRONO_STATIC_ASSERT((
  86. sizeof(boost::winapi::PFILETIME_)==sizeof(PFILETIME)
  87. ), NOTHING, (boost::winapi::PFILETIME_, PFILETIME));
  88. boost::winapi::FILETIME_ a;
  89. FILETIME b;
  90. BOOST_TEST((
  91. sizeof(a.dwLowDateTime)==sizeof(b.dwLowDateTime)
  92. ));
  93. BOOST_TEST((
  94. sizeof(a.dwHighDateTime)==sizeof(b.dwHighDateTime)
  95. ));
  96. BOOST_CHRONO_STATIC_ASSERT((
  97. offsetof(boost::winapi::FILETIME_, dwLowDateTime)==offsetof(FILETIME, dwLowDateTime)
  98. ), NOTHING, (boost::winapi::FILETIME_, FILETIME));
  99. BOOST_CHRONO_STATIC_ASSERT((
  100. offsetof(boost::winapi::FILETIME_, dwHighDateTime)==offsetof(FILETIME, dwHighDateTime)
  101. ), NOTHING, (boost::winapi::FILETIME_, FILETIME));
  102. BOOST_CHRONO_STATIC_ASSERT((
  103. boost::is_same<
  104. BOOST_TYPEOF(a.dwLowDateTime),
  105. BOOST_TYPEOF(b.dwLowDateTime)
  106. >::value
  107. ), NOTHING, (boost::winapi::FILETIME_, FILETIME));
  108. BOOST_CHRONO_STATIC_ASSERT((
  109. boost::is_same<
  110. BOOST_TYPEOF(a.dwHighDateTime),
  111. BOOST_TYPEOF(b.dwHighDateTime)
  112. >::value
  113. ), NOTHING, (boost::winapi::FILETIME_, FILETIME));
  114. }
  115. // BOOST_CHRONO_STATIC_ASSERT((
  116. // GetLastError==boost::winapi::::GetLastError
  117. // ), NOTHING, ());
  118. }
  119. #else
  120. void test() {
  121. }
  122. #endif
  123. int main( )
  124. {
  125. test();
  126. return boost::report_errors();
  127. }