| // Copyright 2018 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 <array> | |
| #include <gtest/gtest.h> | |
| #include "lib/fidl/cpp/builder.h" | |
| namespace fidl { | |
| namespace { | |
| TEST(Array, BuilderTest) { | |
| char buffer[ZX_CHANNEL_MAX_MSG_BYTES]; | |
| fidl::Builder builder(buffer, ZX_CHANNEL_MAX_MSG_BYTES); | |
| std::array<int, 3>* view = builder.New<std::array<int, 3>>(); | |
| EXPECT_EQ(3u, view->size()); | |
| (*view)[0] = 0; | |
| (*view)[1] = 1; | |
| (*view)[2] = 2; | |
| EXPECT_EQ(view->at(0), 0); | |
| EXPECT_EQ(view->at(1), 1); | |
| EXPECT_EQ(view->at(2), 2); | |
| int i = 0; | |
| for (auto& value : *view) { | |
| EXPECT_EQ(i, value); | |
| ++i; | |
| } | |
| EXPECT_NE(view->data(), nullptr); | |
| } | |
| } // namespace | |
| } // namespace fidl |