112 lines
2.5 KiB
C++
112 lines
2.5 KiB
C++
// Copyright (C) 2011 Davis E. King (davis@dlib.net)
|
|
// License: Boost Software License See LICENSE.txt for the full license.
|
|
|
|
|
|
#include <sstream>
|
|
#include <string>
|
|
#include <cstdlib>
|
|
#include <ctime>
|
|
#include <cmath>
|
|
#include <dlib/byte_orderer.h>
|
|
|
|
#include "tester.h"
|
|
|
|
namespace
|
|
{
|
|
|
|
using namespace test;
|
|
using namespace dlib;
|
|
using namespace std;
|
|
|
|
logger dlog("test.byte_orderer");
|
|
|
|
|
|
class byte_orderer_tester : public tester
|
|
{
|
|
public:
|
|
byte_orderer_tester (
|
|
) :
|
|
tester ("test_byte_orderer",
|
|
"Runs tests on the byte_orderer component.")
|
|
{}
|
|
|
|
void perform_test (
|
|
)
|
|
{
|
|
byte_orderer bo;
|
|
|
|
union data
|
|
{
|
|
unsigned char b[4];
|
|
dlib::uint32 val;
|
|
};
|
|
|
|
data a;
|
|
|
|
a.val = 1;
|
|
|
|
if (bo.host_is_little_endian())
|
|
{
|
|
DLIB_TEST(a.b[0] == 1);
|
|
DLIB_TEST(a.b[1] == 0);
|
|
DLIB_TEST(a.b[2] == 0);
|
|
DLIB_TEST(a.b[3] == 0);
|
|
|
|
bo.host_to_big(a.val);
|
|
|
|
DLIB_TEST(a.b[0] == 0);
|
|
DLIB_TEST(a.b[1] == 0);
|
|
DLIB_TEST(a.b[2] == 0);
|
|
DLIB_TEST(a.b[3] == 1);
|
|
|
|
bo.big_to_host(a.val);
|
|
|
|
DLIB_TEST(a.b[0] == 1);
|
|
DLIB_TEST(a.b[1] == 0);
|
|
DLIB_TEST(a.b[2] == 0);
|
|
DLIB_TEST(a.b[3] == 0);
|
|
|
|
DLIB_TEST(a.val == 1);
|
|
bo.host_to_network(a.val);
|
|
DLIB_TEST(a.val == 0x01000000);
|
|
bo.network_to_host(a.val);
|
|
DLIB_TEST(a.val == 1);
|
|
}
|
|
else
|
|
{
|
|
DLIB_TEST(a.b[0] == 0);
|
|
DLIB_TEST(a.b[1] == 0);
|
|
DLIB_TEST(a.b[2] == 0);
|
|
DLIB_TEST(a.b[3] == 1);
|
|
|
|
bo.host_to_little(a.val);
|
|
|
|
DLIB_TEST(a.b[0] == 1);
|
|
DLIB_TEST(a.b[1] == 0);
|
|
DLIB_TEST(a.b[2] == 0);
|
|
DLIB_TEST(a.b[3] == 0);
|
|
|
|
bo.little_to_host(a.val);
|
|
|
|
DLIB_TEST(a.b[0] == 0);
|
|
DLIB_TEST(a.b[1] == 0);
|
|
DLIB_TEST(a.b[2] == 0);
|
|
DLIB_TEST(a.b[3] == 1);
|
|
|
|
|
|
DLIB_TEST(a.val == 1);
|
|
bo.network_to_host(a.val);
|
|
DLIB_TEST(a.val == 1);
|
|
bo.host_to_network(a.val);
|
|
DLIB_TEST(a.val == 1);
|
|
|
|
}
|
|
|
|
|
|
}
|
|
} a;
|
|
|
|
}
|
|
|
|
|