blob: de3f131f43dec623ce07ce0e060884f64346e22e [file] [log] [blame]
// Copyright 2019 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 "blobfs_fixtures.h"
#include <fcntl.h>
#include <fuchsia/io/llcpp/fidl.h>
#include <fvm/format.h>
#include <zxtest/zxtest.h>
namespace {
void CheckBlobfsInfo(fs::FilesystemTest* test) {
::llcpp::fuchsia::io::FilesystemInfo info;
ASSERT_NO_FAILURES(test->GetFsInfo(&info));
const char kFsName[] = "blobfs";
const char* name = reinterpret_cast<const char*>(info.name.data());
ASSERT_STR_EQ(kFsName, name);
ASSERT_LE(info.used_nodes, info.total_nodes, "Used nodes greater than free nodes");
ASSERT_LE(info.used_bytes, info.total_bytes, "Used bytes greater than free bytes");
}
} // namespace
void BlobfsTest::CheckInfo() { CheckBlobfsInfo(this); }
void BlobfsFixedDiskSizeTest::CheckInfo() { CheckBlobfsInfo(this); }
void BlobfsTestWithFvm::CheckInfo() { CheckBlobfsInfo(this); }
void BlobfsTestWithFvm::CheckPartitionSize() {
// Minimum size required by ResizePartition test:
const size_t kMinDataSize = 507 * kTestFvmSliceSize;
const size_t kMinFvmSize =
fvm::Header::FromDiskSize(fvm::kMaxUsablePartitions, kMinDataSize, kTestFvmSliceSize)
.fvm_partition_size;
ASSERT_GE(environment_->disk_size(), kMinFvmSize, "Insufficient disk space for FVM tests");
}
void BlobfsFixedDiskSizeTestWithFvm::CheckInfo() { CheckBlobfsInfo(this); }