Allow littleEndianToNative test parameters to be specified only in CMake
This commit is contained in:
+12
-12
@@ -50,7 +50,7 @@ void FileStoreHeader<FsSize_t, InodeId_t>::setVersion(uint16_t version) {
|
||||
|
||||
template<typename FsSize_t, typename InodeId_t>
|
||||
uint16_t FileStoreHeader<FsSize_t, InodeId_t>::getVersion() {
|
||||
return std::nativizeLittleEndian(m_version);
|
||||
return std::littleEndianToNative(m_version);
|
||||
}
|
||||
|
||||
template<typename FsSize_t, typename InodeId_t>
|
||||
@@ -60,7 +60,7 @@ void FileStoreHeader<FsSize_t, InodeId_t>::setFsType(uint16_t fsType) {
|
||||
|
||||
template<typename FsSize_t, typename InodeId_t>
|
||||
uint16_t FileStoreHeader<FsSize_t, InodeId_t>::getFsType() {
|
||||
return std::nativizeLittleEndian(m_fsType);
|
||||
return std::littleEndianToNative(m_fsType);
|
||||
}
|
||||
|
||||
template<typename FsSize_t, typename InodeId_t>
|
||||
@@ -70,7 +70,7 @@ void FileStoreHeader<FsSize_t, InodeId_t>::setSize(FsSize_t size) {
|
||||
|
||||
template<typename FsSize_t, typename InodeId_t>
|
||||
FsSize_t FileStoreHeader<FsSize_t, InodeId_t>::getSize() {
|
||||
return std::nativizeLittleEndian(m_size);
|
||||
return std::littleEndianToNative(m_size);
|
||||
}
|
||||
|
||||
template<typename FsSize_t, typename InodeId_t>
|
||||
@@ -80,7 +80,7 @@ void FileStoreHeader<FsSize_t, InodeId_t>::setMemUsed(FsSize_t memUsed) {
|
||||
|
||||
template<typename FsSize_t, typename InodeId_t>
|
||||
FsSize_t FileStoreHeader<FsSize_t, InodeId_t>::getMemUsed() {
|
||||
return std::nativizeLittleEndian(m_memUsed);
|
||||
return std::littleEndianToNative(m_memUsed);
|
||||
}
|
||||
|
||||
template<typename FsSize_t, typename InodeId_t>
|
||||
@@ -90,7 +90,7 @@ void FileStoreHeader<FsSize_t, InodeId_t>::setRootInode(FsSize_t rootInode) {
|
||||
|
||||
template<typename FsSize_t, typename InodeId_t>
|
||||
FsSize_t FileStoreHeader<FsSize_t, InodeId_t>::getRootInode() {
|
||||
return std::nativizeLittleEndian(m_rootInode);
|
||||
return std::littleEndianToNative(m_rootInode);
|
||||
}
|
||||
|
||||
template<typename Header>
|
||||
@@ -326,7 +326,7 @@ void FileStore<Header>::Inode::setDataLen(typename Header::FsSize_t dataLen) {
|
||||
|
||||
template<typename Header>
|
||||
typename Header::FsSize_t FileStore<Header>::Inode::getDataLen() {
|
||||
return std::nativizeLittleEndian(this->m_dataLen);
|
||||
return std::littleEndianToNative(this->m_dataLen);
|
||||
}
|
||||
|
||||
template<typename Header>
|
||||
@@ -336,7 +336,7 @@ void FileStore<Header>::Inode::setPrev(typename Header::FsSize_t prev) {
|
||||
|
||||
template<typename Header>
|
||||
typename Header::FsSize_t FileStore<Header>::Inode::getPrev() {
|
||||
return std::nativizeLittleEndian(this->m_prev);
|
||||
return std::littleEndianToNative(this->m_prev);
|
||||
}
|
||||
|
||||
template<typename Header>
|
||||
@@ -346,7 +346,7 @@ void FileStore<Header>::Inode::setNext(typename Header::FsSize_t next) {
|
||||
|
||||
template<typename Header>
|
||||
typename Header::FsSize_t FileStore<Header>::Inode::getNext() {
|
||||
return std::nativizeLittleEndian(this->m_next);
|
||||
return std::littleEndianToNative(this->m_next);
|
||||
}
|
||||
|
||||
template<typename Header>
|
||||
@@ -356,7 +356,7 @@ void FileStore<Header>::Inode::setId(InodeId_t id) {
|
||||
|
||||
template<typename Header>
|
||||
typename Header::InodeId_t FileStore<Header>::Inode::getId() {
|
||||
return std::nativizeLittleEndian(this->m_id);
|
||||
return std::littleEndianToNative(this->m_id);
|
||||
}
|
||||
|
||||
template<typename Header>
|
||||
@@ -366,7 +366,7 @@ void FileStore<Header>::Inode::setFileType(uint8_t fileType) {
|
||||
|
||||
template<typename Header>
|
||||
uint8_t FileStore<Header>::Inode::getFileType() {
|
||||
return std::nativizeLittleEndian(this->m_fileType);
|
||||
return std::littleEndianToNative(this->m_fileType);
|
||||
}
|
||||
|
||||
template<typename Header>
|
||||
@@ -376,7 +376,7 @@ void FileStore<Header>::Inode::setLeft(typename Header::FsSize_t left) {
|
||||
|
||||
template<typename Header>
|
||||
typename Header::FsSize_t FileStore<Header>::Inode::getLeft() {
|
||||
return std::nativizeLittleEndian(this->m_left);
|
||||
return std::littleEndianToNative(this->m_left);
|
||||
}
|
||||
|
||||
template<typename Header>
|
||||
@@ -386,7 +386,7 @@ void FileStore<Header>::Inode::setRight(typename Header::FsSize_t right) {
|
||||
|
||||
template<typename Header>
|
||||
typename Header::FsSize_t FileStore<Header>::Inode::getRight() {
|
||||
return std::nativizeLittleEndian(this->m_right);
|
||||
return std::littleEndianToNative(this->m_right);
|
||||
}
|
||||
|
||||
template<typename Header>
|
||||
|
||||
+4
-29
@@ -40,14 +40,14 @@ inline uint64_t byteSwap(uint64_t i) {
|
||||
/**
|
||||
* Takes a little endian int and byte swaps if the platform is big endian.
|
||||
*/
|
||||
inline uint8_t nativizeLittleEndian(uint8_t i) {
|
||||
inline uint8_t littleEndianToNative(uint8_t i) {
|
||||
return i;
|
||||
}
|
||||
|
||||
/**
|
||||
* Takes a little endian int and byte swaps if the platform is big endian.
|
||||
*/
|
||||
inline uint16_t nativizeLittleEndian(uint16_t i) {
|
||||
inline uint16_t littleEndianToNative(uint16_t i) {
|
||||
#ifdef __BIG_ENDIAN__
|
||||
return byteSwap(i);
|
||||
#else
|
||||
@@ -58,7 +58,7 @@ inline uint16_t nativizeLittleEndian(uint16_t i) {
|
||||
/**
|
||||
* Takes a little endian int and byte swaps if the platform is big endian.
|
||||
*/
|
||||
inline uint32_t nativizeLittleEndian(uint32_t i) {
|
||||
inline uint32_t littleEndianToNative(uint32_t i) {
|
||||
#ifdef __BIG_ENDIAN__
|
||||
return byteSwap(i);
|
||||
#else
|
||||
@@ -69,7 +69,7 @@ inline uint32_t nativizeLittleEndian(uint32_t i) {
|
||||
/**
|
||||
* Takes a little endian int and byte swaps if the platform is big endian.
|
||||
*/
|
||||
inline uint64_t nativizeLittleEndian(uint64_t i) {
|
||||
inline uint64_t littleEndianToNative(uint64_t i) {
|
||||
#ifdef __BIG_ENDIAN__
|
||||
return byteSwap(i);
|
||||
#else
|
||||
@@ -106,30 +106,5 @@ inline uint64_t toLittleEndian(uint64_t i) {
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
inline uint16_t toBigEndian(uint16_t i) {
|
||||
#ifdef __LITTLE_ENDIAN__
|
||||
return byteSwap(i);
|
||||
#else
|
||||
return i;
|
||||
#endif
|
||||
}
|
||||
|
||||
inline uint32_t toBigEndian(uint32_t i) {
|
||||
#ifdef __LITTLE_ENDIAN__
|
||||
return byteSwap(i);
|
||||
#else
|
||||
return i;
|
||||
#endif
|
||||
}
|
||||
|
||||
inline uint64_t toBigEndian(uint64_t i) {
|
||||
#ifdef __LITTLE_ENDIAN__
|
||||
return byteSwap(i);
|
||||
#else
|
||||
return i;
|
||||
#endif
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -40,4 +40,19 @@ add_executable(
|
||||
|
||||
target_link_libraries(ByteSwapTest OxStd)
|
||||
|
||||
add_test("Test\\ nativizeLittleEndian\\ 40" ByteSwapTest "40")
|
||||
add_test("Test\\ littleEndianToNative\\ 0x00ff" ByteSwapTest littleEndianToNative<uint16_t> 0x00ff)
|
||||
add_test("Test\\ littleEndianToNative\\ 0xff00" ByteSwapTest littleEndianToNative<uint16_t> 0xff00)
|
||||
|
||||
add_test("Test\\ littleEndianToNative\\ 0x000000ff" ByteSwapTest littleEndianToNative<uint32_t> 0x000000ff)
|
||||
add_test("Test\\ littleEndianToNative\\ 0x0000ff00" ByteSwapTest littleEndianToNative<uint32_t> 0x0000ff00)
|
||||
add_test("Test\\ littleEndianToNative\\ 0x00ff0000" ByteSwapTest littleEndianToNative<uint32_t> 0x00ff0000)
|
||||
add_test("Test\\ littleEndianToNative\\ 0xff000000" ByteSwapTest littleEndianToNative<uint32_t> 0xff000000)
|
||||
|
||||
add_test("Test\\ littleEndianToNative\\ 0x00000000000000ff" ByteSwapTest littleEndianToNative<uint64_t> 0x00000000000000ff)
|
||||
add_test("Test\\ littleEndianToNative\\ 0x000000000000ff00" ByteSwapTest littleEndianToNative<uint64_t> 0x000000000000ff00)
|
||||
add_test("Test\\ littleEndianToNative\\ 0x0000000000ff0000" ByteSwapTest littleEndianToNative<uint64_t> 0x0000000000ff0000)
|
||||
add_test("Test\\ littleEndianToNative\\ 0x00000000ff000000" ByteSwapTest littleEndianToNative<uint64_t> 0x00000000ff000000)
|
||||
add_test("Test\\ littleEndianToNative\\ 0x000000ff00000000" ByteSwapTest littleEndianToNative<uint64_t> 0x000000ff00000000)
|
||||
add_test("Test\\ littleEndianToNative\\ 0x0000ff0000000000" ByteSwapTest littleEndianToNative<uint64_t> 0x0000ff0000000000)
|
||||
add_test("Test\\ littleEndianToNative\\ 0x00ff000000000000" ByteSwapTest littleEndianToNative<uint64_t> 0x00ff000000000000)
|
||||
add_test("Test\\ littleEndianToNative\\ 0xff00000000000000" ByteSwapTest littleEndianToNative<uint64_t> 0xff00000000000000)
|
||||
|
||||
@@ -13,20 +13,26 @@
|
||||
using namespace std;
|
||||
using namespace ox::std;
|
||||
|
||||
map<string, function<int()>> tests = {
|
||||
template<typename T>
|
||||
int testLittleEndianToNative(string str) {
|
||||
auto i = (T) stoul(str, nullptr, 16);
|
||||
return !(littleEndianToNative(littleEndianToNative(i)) == i);
|
||||
}
|
||||
|
||||
map<string, function<int(string)>> tests = {
|
||||
{
|
||||
"40",
|
||||
[]() {
|
||||
return !(nativizeLittleEndian(nativizeLittleEndian((uint32_t) 40)) == 40);
|
||||
}
|
||||
{ "littleEndianToNative<uint16_t>", testLittleEndianToNative<uint16_t> },
|
||||
{ "littleEndianToNative<uint32_t>", testLittleEndianToNative<uint32_t> },
|
||||
{ "littleEndianToNative<uint64_t>", testLittleEndianToNative<uint64_t> },
|
||||
},
|
||||
};
|
||||
|
||||
int main(int argc, const char **args) {
|
||||
if (argc > 1) {
|
||||
auto testName = args[1];
|
||||
auto testArg = args[2];
|
||||
if (tests.find(testName) != tests.end()) {
|
||||
return tests[testName]();
|
||||
return tests[testName](testArg);
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
|
||||
Reference in New Issue
Block a user