Changeset View
Changeset View
Standalone View
Standalone View
src/test/flatfile_tests.cpp
Show First 20 Lines • Show All 96 Lines • ▼ Show 20 Lines | |||||
} | } | ||||
BOOST_AUTO_TEST_CASE(flatfile_allocate) { | BOOST_AUTO_TEST_CASE(flatfile_allocate) { | ||||
const auto data_dir = GetDataDir(); | const auto data_dir = GetDataDir(); | ||||
FlatFileSeq seq(data_dir, "a", 100); | FlatFileSeq seq(data_dir, "a", 100); | ||||
bool out_of_space; | bool out_of_space; | ||||
BOOST_CHECK_EQUAL(seq.Allocate(FlatFilePos(0, 0), 1, out_of_space), 100); | BOOST_CHECK_EQUAL(seq.Allocate(FlatFilePos(0, 0), 1, out_of_space), 100U); | ||||
BOOST_CHECK_EQUAL(fs::file_size(seq.FileName(FlatFilePos(0, 0))), 100); | BOOST_CHECK_EQUAL(fs::file_size(seq.FileName(FlatFilePos(0, 0))), 100U); | ||||
BOOST_CHECK(!out_of_space); | BOOST_CHECK(!out_of_space); | ||||
BOOST_CHECK_EQUAL(seq.Allocate(FlatFilePos(0, 99), 1, out_of_space), 0); | BOOST_CHECK_EQUAL(seq.Allocate(FlatFilePos(0, 99), 1, out_of_space), 0U); | ||||
BOOST_CHECK_EQUAL(fs::file_size(seq.FileName(FlatFilePos(0, 99))), 100); | BOOST_CHECK_EQUAL(fs::file_size(seq.FileName(FlatFilePos(0, 99))), 100U); | ||||
BOOST_CHECK(!out_of_space); | BOOST_CHECK(!out_of_space); | ||||
BOOST_CHECK_EQUAL(seq.Allocate(FlatFilePos(0, 99), 2, out_of_space), 101); | BOOST_CHECK_EQUAL(seq.Allocate(FlatFilePos(0, 99), 2, out_of_space), 101U); | ||||
BOOST_CHECK_EQUAL(fs::file_size(seq.FileName(FlatFilePos(0, 99))), 200); | BOOST_CHECK_EQUAL(fs::file_size(seq.FileName(FlatFilePos(0, 99))), 200U); | ||||
BOOST_CHECK(!out_of_space); | BOOST_CHECK(!out_of_space); | ||||
} | } | ||||
BOOST_AUTO_TEST_CASE(flatfile_flush) { | BOOST_AUTO_TEST_CASE(flatfile_flush) { | ||||
const auto data_dir = GetDataDir(); | const auto data_dir = GetDataDir(); | ||||
FlatFileSeq seq(data_dir, "a", 100); | FlatFileSeq seq(data_dir, "a", 100); | ||||
bool out_of_space; | bool out_of_space; | ||||
seq.Allocate(FlatFilePos(0, 0), 1, out_of_space); | seq.Allocate(FlatFilePos(0, 0), 1, out_of_space); | ||||
// Flush without finalize should not truncate file. | // Flush without finalize should not truncate file. | ||||
seq.Flush(FlatFilePos(0, 1)); | seq.Flush(FlatFilePos(0, 1)); | ||||
BOOST_CHECK_EQUAL(fs::file_size(seq.FileName(FlatFilePos(0, 1))), 100); | BOOST_CHECK_EQUAL(fs::file_size(seq.FileName(FlatFilePos(0, 1))), 100U); | ||||
// Flush with finalize should truncate file. | // Flush with finalize should truncate file. | ||||
seq.Flush(FlatFilePos(0, 1), true); | seq.Flush(FlatFilePos(0, 1), true); | ||||
BOOST_CHECK_EQUAL(fs::file_size(seq.FileName(FlatFilePos(0, 1))), 1); | BOOST_CHECK_EQUAL(fs::file_size(seq.FileName(FlatFilePos(0, 1))), 1U); | ||||
} | } | ||||
BOOST_AUTO_TEST_SUITE_END() | BOOST_AUTO_TEST_SUITE_END() |