mirror of
https://github.com/mutouyun/cpp-ipc.git
synced 2025-12-06 16:56:45 +08:00
91 lines
1.8 KiB
C++
91 lines
1.8 KiB
C++
|
|
#include <iostream>
|
|
#include <cstdint>
|
|
|
|
#include "gtest/gtest.h"
|
|
|
|
#include "libipc/detect_plat.h"
|
|
|
|
namespace {
|
|
|
|
} // namespace
|
|
|
|
TEST(detect_plat, os) {
|
|
#if defined(LIBIPC_OS_WINCE)
|
|
std::cout << "LIBIPC_OS_WINCE\n";
|
|
#elif defined(LIBIPC_OS_WIN)
|
|
std::cout << "LIBIPC_OS_WIN\n";
|
|
#elif defined(LIBIPC_OS_LINUX)
|
|
std::cout << "LIBIPC_OS_LINUX\n";
|
|
#elif defined(LIBIPC_OS_QNX)
|
|
std::cout << "LIBIPC_OS_QNX\n";
|
|
#elif defined(LIBIPC_OS_ANDROID)
|
|
std::cout << "LIBIPC_OS_ANDROID\n";
|
|
#else
|
|
ASSERT_TRUE(false);
|
|
#endif
|
|
}
|
|
|
|
TEST(detect_plat, cc) {
|
|
#if defined(LIBIPC_CC_MSVC)
|
|
std::cout << "LIBIPC_CC_MSVC\n";
|
|
#elif defined(LIBIPC_CC_GNUC)
|
|
std::cout << "LIBIPC_CC_GNUC\n";
|
|
#else
|
|
ASSERT_TRUE(false);
|
|
#endif
|
|
}
|
|
|
|
TEST(detect_plat, cpp) {
|
|
#if defined(LIBIPC_CPP_20)
|
|
std::cout << "LIBIPC_CPP_20\n";
|
|
#elif defined(LIBIPC_CPP_17)
|
|
std::cout << "LIBIPC_CPP_17\n";
|
|
#elif defined(LIBIPC_CPP_14)
|
|
std::cout << "LIBIPC_CPP_14\n";
|
|
#else
|
|
ASSERT_TRUE(false);
|
|
#endif
|
|
}
|
|
|
|
TEST(detect_plat, byte_order) {
|
|
auto is_endian_little = [] {
|
|
union {
|
|
std::int32_t a;
|
|
std::int8_t b;
|
|
} c;
|
|
c.a = 1;
|
|
return c.b == 1;
|
|
};
|
|
EXPECT_EQ(!!LIBIPC_ENDIAN_LIT, is_endian_little());
|
|
EXPECT_NE(!!LIBIPC_ENDIAN_BIG, is_endian_little());
|
|
}
|
|
|
|
TEST(detect_plat, fallthrough) {
|
|
switch (0) {
|
|
case 0:
|
|
std::cout << "fallthrough 0\n";
|
|
LIBIPC_FALLTHROUGH;
|
|
case 1:
|
|
std::cout << "fallthrough 1\n";
|
|
LIBIPC_FALLTHROUGH;
|
|
default:
|
|
std::cout << "fallthrough default\n";
|
|
break;
|
|
}
|
|
}
|
|
|
|
TEST(detect_plat, unused) {
|
|
LIBIPC_UNUSED int abc;
|
|
}
|
|
|
|
TEST(detect_plat, likely_unlikely) {
|
|
int xx = sizeof(int);
|
|
if LIBIPC_LIKELY(xx < sizeof(long long)) {
|
|
std::cout << "sizeof(int) < sizeof(long long)\n";
|
|
} else if LIBIPC_UNLIKELY(xx < sizeof(char)) {
|
|
std::cout << "sizeof(int) < sizeof(char)\n";
|
|
} else {
|
|
std::cout << "sizeof(int) < whatever\n";
|
|
}
|
|
} |