31 std::vector<std::string> children;
138 std::string test_dir;
149 delete writable_file;
153 const size_t kWriteSize = 300 * 1024;
154 char* scratch =
new char[kWriteSize * 2];
156 std::string write_data;
157 for (
size_t i = 0; i < kWriteSize; ++i) {
158 write_data.append(1, static_cast<char>(i));
165 delete writable_file;
174 std::string read_data;
175 while (read < kWriteSize) {
176 ASSERT_OK(seq_file->
Read(kWriteSize - read, &result, scratch));
177 read_data.append(result.
data(), result.
size());
178 read += result.
size();
195 for (
size_t i = 0; i < 3; ++i) {
199 for (
size_t i = 0; i < 3; ++i) {
207 for (
size_t i = 0; i < 3; ++i) {
219 for (
size_t i = 0; i < 3; ++i) {
230 int main(
int argc,
char** argv) {
int main(int argc, char **argv)
virtual Status LockFile(const std::string &fname, FileLock **lock)=0
virtual Status Read(uint64_t offset, size_t n, Slice *result, char *scratch) const =0
virtual Status DeleteFile(const std::string &fname)=0
virtual Status RenameFile(const std::string &src, const std::string &target)=0
const char * data() const
virtual Status Append(const Slice &data)=0
Status TEST_CompactMemTable()
virtual Status NewRandomAccessFile(const std::string &fname, RandomAccessFile **result)=0
bool read(const std::string &s, Value &value)
virtual Iterator * NewIterator(const ReadOptions &options)=0
virtual Slice value() const =0
virtual Status GetFileSize(const std::string &fname, uint64_t *file_size)=0
virtual Status GetChildren(const std::string &dir, std::vector< std::string > *result)=0
virtual Status Skip(uint64_t n)=0
unsigned long long uint64_t
static Status Open(const Options &options, const std::string &name, DB **dbptr)
TEST(CorruptionTest, Recovery)
virtual Status NewSequentialFile(const std::string &fname, SequentialFile **result)=0
virtual void SeekToFirst()=0
virtual Status GetTestDirectory(std::string *path)=0
virtual Status CreateDir(const std::string &dirname)=0
virtual Status Read(size_t n, Slice *result, char *scratch)=0
int compare(const Slice &b) const
virtual Status Get(const ReadOptions &options, const Slice &key, std::string *value)=0
virtual bool Valid() const =0
virtual Status UnlockFile(FileLock *lock)=0
virtual Slice key() const =0
virtual Status NewWritableFile(const std::string &fname, WritableFile **result)=0
virtual Status DeleteDir(const std::string &dirname)=0
virtual bool FileExists(const std::string &fname)=0
Env * NewMemEnv(Env *base_env)
virtual Status Put(const WriteOptions &options, const Slice &key, const Slice &value)=0