ctrff-pub/tool/test.cpp

48 lines
1.3 KiB
C++
Raw Normal View History

2025-05-04 13:32:07 +02:00
#include <ctrff.hpp>
#include <iomanip>
template <typename T>
void Result(const std::string& name, T a, T b) {
std::cout << "Test: " << typeid(a).name() << " > ";
std::cout << "0x" << std::hex << std::setw(sizeof(a) * 2) << std::setfill('0')
<< a;
std::cout << std::dec << " - ";
std::cout << "0x" << std::hex << std::setw(sizeof(a) * 2) << std::setfill('0')
<< b;
std::cout << std::dec << std::endl;
std::cout << "Test " << name << " " << (a == b ? "passed" : "failed") << "!"
<< std::endl;
}
void BinTest(bool be) {
std::fstream s("test.bin", std::ios::out | std::ios::binary);
PD::u8 t8 = 0xdf;
PD::u16 t16 = 0x4564;
PD::u32 t32 = 0x58464743;
PD::u64 t64 = 1234567890123456789ULL;
ctrff::BinUtil u(s, be);
u.Write(t8);
u.Write(t16);
u.Write(t32);
u.Write(t64);
s.close();
PD::u8 r8 = 0;
PD::u16 r16 = 0;
PD::u32 r32 = 0;
PD::u64 r64 = 0;
s.open("test.bin", std::ios::in | std::ios::binary);
u.Read(r8);
u.Read(r16);
u.Read(r32);
u.Read(r64);
Result("u8 " + std::string(be ? "big" : "little"), r8, t8);
Result("u16 " + std::string(be ? "big" : "little"), r16, t16);
Result("u32 " + std::string(be ? "big" : "little"), r32, t32);
Result("u64 " + std::string(be ? "big" : "little"), r64, t64);
}
int main() {
BinTest(false);
BinTest(true);
return 0;
}