Home | History | Annotate | Download | only in unit_test
      1 /*
      2  *  Copyright 2012 The LibYuv Project Authors. All rights reserved.
      3  *
      4  *  Use of this source code is governed by a BSD-style license
      5  *  that can be found in the LICENSE file in the root of the source
      6  *  tree. An additional intellectual property rights grant can be found
      7  *  in the file PATENTS. All contributing project authors may
      8  *  be found in the AUTHORS file in the root of the source tree.
      9  */
     10 
     11 #include "../unit_test/unit_test.h"
     12 #include "libyuv/basic_types.h"
     13 
     14 namespace libyuv {
     15 
     16 TEST_F(libyuvTest, Endian) {
     17   uint16 v16 = 0x1234u;
     18   uint8 first_byte = *reinterpret_cast<uint8*>(&v16);
     19 #if defined(LIBYUV_LITTLE_ENDIAN)
     20   EXPECT_EQ(0x34u, first_byte);
     21 #else
     22   EXPECT_EQ(0x12u, first_byte);
     23 #endif
     24 }
     25 
     26 TEST_F(libyuvTest, SizeOfTypes) {
     27   int8 i8 = -1;
     28   uint8 u8 = 1u;
     29   int16 i16 = -1;
     30   uint16 u16 = 1u;
     31   int32 i32 = -1;
     32   uint32 u32 = 1u;
     33   int64 i64 = -1;
     34   uint64 u64 = 1u;
     35   EXPECT_EQ(1u, sizeof(i8));
     36   EXPECT_EQ(1u, sizeof(u8));
     37   EXPECT_EQ(2u, sizeof(i16));
     38   EXPECT_EQ(2u, sizeof(u16));
     39   EXPECT_EQ(4u, sizeof(i32));
     40   EXPECT_EQ(4u, sizeof(u32));
     41   EXPECT_EQ(8u, sizeof(i64));
     42   EXPECT_EQ(8u, sizeof(u64));
     43   EXPECT_GT(0, i8);
     44   EXPECT_LT(0u, u8);
     45   EXPECT_GT(0, i16);
     46   EXPECT_LT(0u, u16);
     47   EXPECT_GT(0, i32);
     48   EXPECT_LT(0u, u32);
     49   EXPECT_GT(0, i64);
     50   EXPECT_LT(0u, u64);
     51 }
     52 
     53 TEST_F(libyuvTest, SizeOfConstants) {
     54   EXPECT_EQ(8u, sizeof(INT64_C(0)));
     55   EXPECT_EQ(8u, sizeof(UINT64_C(0)));
     56   EXPECT_EQ(8u, sizeof(INT64_C(0x1234567887654321)));
     57   EXPECT_EQ(8u, sizeof(UINT64_C(0x8765432112345678)));
     58 }
     59 
     60 }  // namespace libyuv
     61