brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.3 KiB · eceabaa Raw
48 lines · cpp
1//===-- Unittests for byte ------------------------------------------------===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8 9#include "src/__support/CPP/cstddef.h"10#include "src/__support/macros/config.h"11#include "test/UnitTest/Test.h"12 13namespace LIBC_NAMESPACE_DECL {14namespace cpp {15 16TEST(LlvmLibcByteTest, to_integer) {17  const char str[] = "abc";18  const byte *const ptr = reinterpret_cast<const byte *>(str);19  ASSERT_EQ(to_integer<char>(ptr[0]), 'a');20  ASSERT_EQ(to_integer<char>(ptr[1]), 'b');21  ASSERT_EQ(to_integer<char>(ptr[2]), 'c');22  ASSERT_EQ(to_integer<char>(ptr[3]), '\0');23}24 25TEST(LlvmLibcByteTest, bitwise) {26  byte b{42};27  ASSERT_EQ(b, byte{0b00101010});28 29  b <<= 1;30  ASSERT_EQ(b, byte{0b01010100});31  b >>= 1;32 33  ASSERT_EQ((b << 1), byte{0b01010100});34  ASSERT_EQ((b >> 1), byte{0b00010101});35 36  b |= byte{0b11110000};37  ASSERT_EQ(b, byte{0b11111010});38 39  b &= byte{0b11110000};40  ASSERT_EQ(b, byte{0b11110000});41 42  b ^= byte{0b11111111};43  ASSERT_EQ(b, byte{0b00001111});44}45 46} // namespace cpp47} // namespace LIBC_NAMESPACE_DECL48