53 if (options != NULL) {
59 if (opts.
env == NULL) {
66 Status Put(
const std::string& k,
const std::string& v) {
70 std::string
Get(
const std::string& k,
const Snapshot* snapshot = NULL) {
84 size_t len = current.size();
85 if (len > 0 && current[len-1] ==
'\n') {
86 current.resize(len - 1);
97 for (
size_t i = 0; i < logs.size(); i++) {
108 std::vector<std::string> filenames;
110 std::vector<uint64_t> result;
111 for (
size_t i = 0; i < filenames.size(); i++) {
114 if (
ParseFileName(filenames[i], &number, &type) && type == t) {
115 result.push_back(number);
161 fprintf(stderr,
"skipping test because env does not support appending\n");
177 fprintf(stderr,
"skipping test because env does not support appending\n");
186 uint64_t len =
FileSize(old_manifest);
188 ASSERT_OK(
env()->NewAppendableFile(old_manifest, &file));
189 std::string zeroes(3*1048576 - static_cast<size_t>(len), 0);
217 fprintf(stderr,
"skipping test because env does not support appending\n");
220 for (
int i = 0; i < 2; i++) {
247 const int kNum = 1000;
248 for (
int i = 0; i < kNum; i++) {
250 snprintf(buf,
sizeof(buf),
"%050d", i);
267 for (
int i = 0; i < kNum; i++) {
269 snprintf(buf,
sizeof(buf),
"%050d", i);
308 MakeLogFile(old_log+1, 2000,
"hello",
"stale write");
322 int main(
int argc,
char** argv) {
void MakeLogFile(uint64_t lognum, SequenceNumber seq, Slice key, Slice val)
Status Put(const std::string &k, const std::string &v)
void Open(Options *options=NULL)
bool ParseFileName(const std::string &fname, uint64_t *number, FileType *type)
static void SetSequence(WriteBatch *batch, SequenceNumber seq)
std::vector< uint64_t > GetFiles(FileType t)
virtual Status GetFileSize(const std::string &fname, uint64_t *file_size)=0
virtual Status NewWritableFile(const std::string &fname, WritableFile **result)=0
virtual Status Put(const WriteOptions &options, const Slice &key, const Slice &value)=0
bool IsNotSupportedError() const
Status DestroyDB(const std::string &dbname, const Options &options)
std::string Get(const std::string &k, const Snapshot *snapshot=NULL)
std::string ManifestFileName()
std::string ToString() const
virtual Status Get(const ReadOptions &options, const Slice &key, std::string *value)=0
static Status Open(const Options &options, const std::string &name, DB **dbptr)
Status TEST_CompactMemTable()
std::string CurrentFileName(const std::string &dbname)
TEST(AutoCompactTest, ReadAll)
virtual Status NewAppendableFile(const std::string &fname, WritableFile **result)
int main(int argc, char **argv)
std::string LogFileName(const std::string &name, uint64_t number)
static Slice Contents(const WriteBatch *batch)
std::string LogName(uint64_t number)
virtual Status Append(const Slice &data)=0
virtual Status DeleteFile(const std::string &fname)=0
void Put(const Slice &key, const Slice &value)
uint64_t FileSize(const std::string &fname)
virtual Status GetChildren(const std::string &dir, std::vector< std::string > *result)=0
Status ReadFileToString(Env *env, const std::string &fname, std::string *data)