/*
* Copyright 2012 The WebRTC Project Authors . All rights reserved .
*
* Use of this source code is governed by a BSD - style license
* that can be found in the LICENSE file in the root of the source
* tree . An additional intellectual property rights grant can be found
* in the file PATENTS . All contributing project authors may
* be found in the AUTHORS file in the root of the source tree .
*/
#include "rtc_base/byte_order.h"
#include <stdint.h>
#include <cstdint>
#include <span>
#include "test/gtest.h"
namespace webrtc {
// Test memory set functions put values into memory in expected order.
TEST(ByteOrderTest, TestSet) {
uint8_t buf[8 ] = {0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u, 0 u};
std::span<uint8_t> av(buf);
Set8(av, 0 , 0 xfb);
Set8(av, 1 , 0 x12);
EXPECT_EQ(0 xfb, buf[0 ]);
EXPECT_EQ(0 x12, buf[1 ]);
SetBE16(av, 0 x1234);
EXPECT_EQ(0 x12, buf[0 ]);
EXPECT_EQ(0 x34, buf[1 ]);
SetLE16(av, 0 x1234);
EXPECT_EQ(0 x34, buf[0 ]);
EXPECT_EQ(0 x12, buf[1 ]);
SetBE32(av, 0 x12345678);
EXPECT_EQ(0 x12, buf[0 ]);
EXPECT_EQ(0 x34, buf[1 ]);
EXPECT_EQ(0 x56, buf[2 ]);
EXPECT_EQ(0 x78, buf[3 ]);
SetLE32(av, 0 x12345678);
EXPECT_EQ(0 x78, buf[0 ]);
EXPECT_EQ(0 x56, buf[1 ]);
EXPECT_EQ(0 x34, buf[2 ]);
EXPECT_EQ(0 x12, buf[3 ]);
SetBE64(av, UINT64_C(0 x0123456789abcdef));
EXPECT_EQ(0 x01, buf[0 ]);
EXPECT_EQ(0 x23, buf[1 ]);
EXPECT_EQ(0 x45, buf[2 ]);
EXPECT_EQ(0 x67, buf[3 ]);
EXPECT_EQ(0 x89, buf[4 ]);
EXPECT_EQ(0 xab, buf[5 ]);
EXPECT_EQ(0 xcd, buf[6 ]);
EXPECT_EQ(0 xef, buf[7 ]);
SetLE64(av, UINT64_C(0 x0123456789abcdef));
EXPECT_EQ(0 xef, buf[0 ]);
EXPECT_EQ(0 xcd, buf[1 ]);
EXPECT_EQ(0 xab, buf[2 ]);
EXPECT_EQ(0 x89, buf[3 ]);
EXPECT_EQ(0 x67, buf[4 ]);
EXPECT_EQ(0 x45, buf[5 ]);
EXPECT_EQ(0 x23, buf[6 ]);
EXPECT_EQ(0 x01, buf[7 ]);
}
// Test memory get functions get values from memory in expected order.
TEST(ByteOrderTest, TestGet) {
uint8_t buf[8 ];
std::span<const uint8_t> av(buf);
buf[0 ] = 0 x01u;
buf[1 ] = 0 x23u;
buf[2 ] = 0 x45u;
buf[3 ] = 0 x67u;
buf[4 ] = 0 x89u;
buf[5 ] = 0 xabu;
buf[6 ] = 0 xcdu;
buf[7 ] = 0 xefu;
EXPECT_EQ(0 x01u, Get8(av, 0 ));
EXPECT_EQ(0 x23u, Get8(av, 1 ));
EXPECT_EQ(0 x0123u, GetBE16(av));
EXPECT_EQ(0 x2301u, GetLE16(av));
EXPECT_EQ(0 x01234567u, GetBE32(av));
EXPECT_EQ(0 x67452301u, GetLE32(av));
EXPECT_EQ(UINT64_C(0 x0123456789abcdef), GetBE64(av));
EXPECT_EQ(UINT64_C(0 xefcdab8967452301), GetLE64(av));
}
} // namespace webrtc
Messung V0.5 in Prozent C=96 H=100 G=97
¤ Dauer der Verarbeitung: 0.14 Sekunden
(vorverarbeitet am 2026-08-21)
¤
*© Formatika GbR, Deutschland