blob: 651e640f09ad535718f81318d2300a466e8d1368 [file] [log] [blame]
// Copyright 2017 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 <gtest/gtest.h>
#include <peridot/lib/testing/test_with_ledger.h>
#include <peridot/lib/util/pseudo_dir_server.h>
#include <peridot/lib/util/pseudo_dir_utils.h>
#include <src/lib/files/directory.h>
#include <src/lib/files/file.h>
namespace modular {
namespace {
constexpr int kDefaultBufferSize = 1024;
class PseudoDirUtilsTest : public testing::TestWithLedger {
public:
PseudoDirUtilsTest() = default;
~PseudoDirUtilsTest() override = default;
void test_make_file_with_contents_sizes(int content_size) {
const std::string path = "test.config";
std::string contentWritten(content_size, 'T');
auto file_path = MakeFilePathWithContents(path, contentWritten);
modular::PseudoDirServer server(std::move(file_path));
auto fd = server.OpenAt(".");
EXPECT_TRUE(files::IsFileAt(fd.get(), path));
std::string contentRead;
EXPECT_TRUE(files::ReadFileToStringAt(fd.get(), path, &contentRead));
EXPECT_EQ(contentWritten, contentRead);
}
};
TEST_F(PseudoDirUtilsTest, FileSmallerThanDefaultBuffer) {
test_make_file_with_contents_sizes(kDefaultBufferSize - 10);
}
TEST_F(PseudoDirUtilsTest, FileLargerThanDefaultBuffer) {
test_make_file_with_contents_sizes(kDefaultBufferSize + 10);
}
} // namespace
} // namespace modular