| // Copyright 2020 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include <lib/fidl/llcpp/aligned.h> |
| |
| #include <gtest/gtest.h> |
| |
| TEST(Aligned, Initialization) { |
| fidl::aligned<int> x(1); |
| EXPECT_EQ(x, 1); |
| |
| fidl::aligned<int> y(x); |
| EXPECT_EQ(y, 1); |
| } |
| |
| TEST(Aligned, Reassignment) { |
| fidl::aligned<int> x(1); |
| x = 2; |
| EXPECT_EQ(x, 2); |
| |
| fidl::aligned<int> y(3); |
| x = y; |
| EXPECT_EQ(x, 3); |
| } |
| |
| TEST(Aligned, DefaultConstructor) { |
| fidl::aligned<int> x; |
| x = 1; |
| EXPECT_EQ(x, 1); |
| } |
| |
| TEST(Aligned, ImplicitConversion) { |
| fidl::aligned<uint64_t> x = int32_t(1); |
| int32_t converted_back = x; |
| EXPECT_EQ(converted_back, 1); |
| } |
| |
| TEST(Aligned, Reference) { |
| fidl::aligned<uint32_t> x = int32_t(1); |
| EXPECT_EQ(reinterpret_cast<uint32_t*>(&x), &x.value); |
| } |