blob: 3d88727cf822f933a1753fae69bf3e671913b452 [file] [log] [blame]
// 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 <tuple>
#include <vector>
#include "src/storage/fs_test/truncate_fixture.h"
namespace fs_test {
namespace {
std::vector<LargeTruncateTestParamType> GetTestCombinations(
const std::vector<std::tuple</*buf_size=*/size_t, /*iterations=*/size_t,
LargeTruncateTestType>>& variations) {
std::vector<LargeTruncateTestParamType> test_combinations;
for (TestFilesystemOptions options : AllTestFilesystems()) {
for (const auto& variation : variations) {
if (std::get<2>(variation) == LargeTruncateTestType::Remount &&
!options.filesystem->GetTraits().can_unmount) {
continue;
}
if (options.filesystem->GetTraits().name == "fatfs" && std::get<0>(variation) > (1 << 20)) {
// Fatfs is slow, so skip larger buffer sizes.
continue;
}
options.device_block_count = 3 * (1LLU << 16);
options.device_block_size = 1LLU << 9;
options.fvm_slice_size = 1LLU << 23;
test_combinations.push_back(std::make_tuple(options, variation));
}
}
return test_combinations;
}
INSTANTIATE_TEST_SUITE_P(/*no prefix*/, LargeTruncateTest,
testing::ValuesIn(GetTestCombinations(
{std::make_tuple(1 << 20, 50, LargeTruncateTestType::KeepOpen),
std::make_tuple(1 << 20, 50, LargeTruncateTestType::Reopen),
std::make_tuple(1 << 20, 50, LargeTruncateTestType::Remount),
std::make_tuple(1 << 25, 50, LargeTruncateTestType::KeepOpen),
std::make_tuple(1 << 25, 50, LargeTruncateTestType::Reopen),
std::make_tuple(1 << 25, 50, LargeTruncateTestType::Remount)})),
GetDescriptionForLargeTruncateTestParamType);
} // namespace
} // namespace fs_test