blob: ae084cef0ca387f0a60c9ff1ccfa64511b8cac43 [file] [log] [blame]
// Copyright 2016 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 "src/lib/fsl/vmo/vector.h"
#include <gtest/gtest.h>
namespace fsl {
namespace {
TEST(VmoVector, ShortVector) {
std::vector<char> v(123, 'f');
fsl::SizedVmo sb;
EXPECT_TRUE(VmoFromVector(v, &sb));
std::vector<char> v_out;
EXPECT_TRUE(VectorFromVmo(std::move(sb), &v_out));
EXPECT_EQ(v, v_out);
::fuchsia::mem::Buffer buf;
EXPECT_TRUE(VmoFromVector(v, &buf));
EXPECT_TRUE(VectorFromVmo(buf, &v_out));
EXPECT_EQ(v, v_out);
}
TEST(VmoVector, EmptyVector) {
std::vector<char> v;
fsl::SizedVmo sb;
EXPECT_TRUE(VmoFromVector(v, &sb));
std::vector<char> v_out;
EXPECT_TRUE(VectorFromVmo(std::move(sb), &v_out));
EXPECT_EQ(v, v_out);
::fuchsia::mem::Buffer buf;
EXPECT_TRUE(VmoFromVector(v, &buf));
EXPECT_TRUE(VectorFromVmo(buf, &v_out));
EXPECT_EQ(v, v_out);
}
TEST(VmoVector, ShortUnsignedVector) {
std::vector<uint8_t> v(123, 42);
fsl::SizedVmo sb;
EXPECT_TRUE(VmoFromVector(v, &sb));
std::vector<uint8_t> v_out;
EXPECT_TRUE(VectorFromVmo(std::move(sb), &v_out));
EXPECT_EQ(v, v_out);
::fuchsia::mem::Buffer buf;
EXPECT_TRUE(VmoFromVector(v, &buf));
EXPECT_TRUE(VectorFromVmo(buf, &v_out));
EXPECT_EQ(v, v_out);
}
TEST(VmoVector, EmptyUnsignedVector) {
std::vector<uint8_t> v;
fsl::SizedVmo sb;
EXPECT_TRUE(VmoFromVector(v, &sb));
std::vector<uint8_t> v_out;
EXPECT_TRUE(VectorFromVmo(std::move(sb), &v_out));
EXPECT_EQ(v, v_out);
::fuchsia::mem::Buffer buf;
EXPECT_TRUE(VmoFromVector(v, &buf));
EXPECT_TRUE(VectorFromVmo(buf, &v_out));
EXPECT_EQ(v, v_out);
}
} // namespace
} // namespace fsl