Make db_test_util compile under ROCKSDB_LITE

Summary: db_test_util is used in multiple test files but it dont compile under ROCKSDB_LITE

Test Plan:
make check
make static_lib
OPT=-DROCKSDB_LITE make db_wal_test

Reviewers: igor, yhchiang, rven, sdong

Reviewed By: sdong

Subscribers: dhruba

Differential Revision: https://reviews.facebook.net/D48579
main
Islam AbdelRahman 9 years ago
parent 29a47cd2b8
commit f55d3009c0
  1. 34
      db/db_impl.cc
  2. 81
      db/db_test_util.cc
  3. 10
      db/db_test_util.h

@ -2168,6 +2168,23 @@ Status DBImpl::RunManualCompaction(ColumnFamilyData* cfd, int input_level,
return manual.status; return manual.status;
} }
InternalIterator* DBImpl::NewInternalIterator(
Arena* arena, ColumnFamilyHandle* column_family) {
ColumnFamilyData* cfd;
if (column_family == nullptr) {
cfd = default_cf_handle_->cfd();
} else {
auto cfh = reinterpret_cast<ColumnFamilyHandleImpl*>(column_family);
cfd = cfh->cfd();
}
mutex_.Lock();
SuperVersion* super_version = cfd->GetSuperVersion()->Ref();
mutex_.Unlock();
ReadOptions roptions;
return NewInternalIterator(roptions, cfd, super_version, arena);
}
Status DBImpl::FlushMemTable(ColumnFamilyData* cfd, Status DBImpl::FlushMemTable(ColumnFamilyData* cfd,
const FlushOptions& flush_options) { const FlushOptions& flush_options) {
Status s; Status s;
@ -3307,23 +3324,6 @@ Status DBImpl::AddFile(ColumnFamilyHandle* column_family,
} }
return status; return status;
} }
InternalIterator* DBImpl::NewInternalIterator(
Arena* arena, ColumnFamilyHandle* column_family) {
ColumnFamilyData* cfd;
if (column_family == nullptr) {
cfd = default_cf_handle_->cfd();
} else {
auto cfh = reinterpret_cast<ColumnFamilyHandleImpl*>(column_family);
cfd = cfh->cfd();
}
mutex_.Lock();
SuperVersion* super_version = cfd->GetSuperVersion()->Ref();
mutex_.Unlock();
ReadOptions roptions;
return NewInternalIterator(roptions, cfd, super_version, arena);
}
#endif // ROCKSDB_LITE #endif // ROCKSDB_LITE
Status DBImpl::CreateColumnFamily(const ColumnFamilyOptions& cf_options, Status DBImpl::CreateColumnFamily(const ColumnFamilyOptions& cf_options,

@ -78,6 +78,19 @@ DBTestBase::~DBTestBase() {
// test. Return false if there are no more configurations to test. // test. Return false if there are no more configurations to test.
bool DBTestBase::ChangeOptions(int skip_mask) { bool DBTestBase::ChangeOptions(int skip_mask) {
for (option_config_++; option_config_ < kEnd; option_config_++) { for (option_config_++; option_config_ < kEnd; option_config_++) {
#ifdef ROCKSDB_LITE
// These options are not supported in ROCKSDB_LITE
if (option_config_ == kHashSkipList ||
option_config_ == kPlainTableFirstBytePrefix ||
option_config_ == kPlainTableCappedPrefix ||
option_config_ == kPlainTableCappedPrefixNonMmap ||
option_config_ == kPlainTableAllBytesPrefix ||
option_config_ == kVectorRep || option_config_ == kHashLinkList ||
option_config_ == kHashCuckoo) {
continue;
}
#endif
if ((skip_mask & kSkipDeletesFilterFirst) && if ((skip_mask & kSkipDeletesFilterFirst) &&
option_config_ == kDeletesFilterFirst) { option_config_ == kDeletesFilterFirst) {
continue; continue;
@ -202,6 +215,7 @@ Options DBTestBase::CurrentOptions(
BlockBasedTableOptions table_options; BlockBasedTableOptions table_options;
bool set_block_based_table_factory = true; bool set_block_based_table_factory = true;
switch (option_config_) { switch (option_config_) {
#ifndef ROCKSDB_LITE
case kHashSkipList: case kHashSkipList:
options.prefix_extractor.reset(NewFixedPrefixTransform(1)); options.prefix_extractor.reset(NewFixedPrefixTransform(1));
options.memtable_factory.reset(NewHashSkipListRepFactory(16)); options.memtable_factory.reset(NewHashSkipListRepFactory(16));
@ -234,6 +248,19 @@ Options DBTestBase::CurrentOptions(
options.max_sequential_skip_in_iterations = 999999; options.max_sequential_skip_in_iterations = 999999;
set_block_based_table_factory = false; set_block_based_table_factory = false;
break; break;
case kVectorRep:
options.memtable_factory.reset(new VectorRepFactory(100));
break;
case kHashLinkList:
options.prefix_extractor.reset(NewFixedPrefixTransform(1));
options.memtable_factory.reset(
NewHashLinkListRepFactory(4, 0, 3, true, 4));
break;
case kHashCuckoo:
options.memtable_factory.reset(
NewHashCuckooRepFactory(options.write_buffer_size));
break;
#endif // ROCKSDB_LITE
case kMergePut: case kMergePut:
options.merge_operator = MergeOperators::CreatePutOperator(); options.merge_operator = MergeOperators::CreatePutOperator();
break; break;
@ -270,18 +297,6 @@ Options DBTestBase::CurrentOptions(
case kDeletesFilterFirst: case kDeletesFilterFirst:
options.filter_deletes = true; options.filter_deletes = true;
break; break;
case kVectorRep:
options.memtable_factory.reset(new VectorRepFactory(100));
break;
case kHashLinkList:
options.prefix_extractor.reset(NewFixedPrefixTransform(1));
options.memtable_factory.reset(
NewHashLinkListRepFactory(4, 0, 3, true, 4));
break;
case kHashCuckoo:
options.memtable_factory.reset(
NewHashCuckooRepFactory(options.write_buffer_size));
break;
case kUniversalCompaction: case kUniversalCompaction:
options.compaction_style = kCompactionStyleUniversal; options.compaction_style = kCompactionStyleUniversal;
options.num_levels = 1; options.num_levels = 1;
@ -599,6 +614,7 @@ std::string DBTestBase::AllEntriesFor(const Slice& user_key, int cf) {
return result; return result;
} }
#ifndef ROCKSDB_LITE
int DBTestBase::NumSortedRuns(int cf) { int DBTestBase::NumSortedRuns(int cf) {
ColumnFamilyMetaData cf_meta; ColumnFamilyMetaData cf_meta;
if (cf == 0) { if (cf == 0) {
@ -625,20 +641,6 @@ uint64_t DBTestBase::TotalSize(int cf) {
return cf_meta.size; return cf_meta.size;
} }
int DBTestBase::NumTableFilesAtLevel(int level, int cf) {
std::string property;
if (cf == 0) {
// default cfd
EXPECT_TRUE(db_->GetProperty(
"rocksdb.num-files-at-level" + NumberToString(level), &property));
} else {
EXPECT_TRUE(db_->GetProperty(
handles_[cf], "rocksdb.num-files-at-level" + NumberToString(level),
&property));
}
return atoi(property.c_str());
}
uint64_t DBTestBase::SizeAtLevel(int level) { uint64_t DBTestBase::SizeAtLevel(int level) {
std::vector<LiveFileMetaData> metadata; std::vector<LiveFileMetaData> metadata;
db_->GetLiveFilesMetaData(&metadata); db_->GetLiveFilesMetaData(&metadata);
@ -665,6 +667,27 @@ int DBTestBase::TotalLiveFiles(int cf) {
return num_files; return num_files;
} }
size_t DBTestBase::CountLiveFiles() {
std::vector<LiveFileMetaData> metadata;
db_->GetLiveFilesMetaData(&metadata);
return metadata.size();
}
#endif // ROCKSDB_LITE
int DBTestBase::NumTableFilesAtLevel(int level, int cf) {
std::string property;
if (cf == 0) {
// default cfd
EXPECT_TRUE(db_->GetProperty(
"rocksdb.num-files-at-level" + NumberToString(level), &property));
} else {
EXPECT_TRUE(db_->GetProperty(
handles_[cf], "rocksdb.num-files-at-level" + NumberToString(level),
&property));
}
return atoi(property.c_str());
}
int DBTestBase::TotalTableFiles(int cf, int levels) { int DBTestBase::TotalTableFiles(int cf, int levels) {
if (levels == -1) { if (levels == -1) {
levels = CurrentOptions().num_levels; levels = CurrentOptions().num_levels;
@ -707,12 +730,6 @@ size_t DBTestBase::CountFiles() {
return files.size() + logfiles.size(); return files.size() + logfiles.size();
} }
size_t DBTestBase::CountLiveFiles() {
std::vector<LiveFileMetaData> metadata;
db_->GetLiveFilesMetaData(&metadata);
return metadata.size();
}
uint64_t DBTestBase::Size(const Slice& start, const Slice& limit, int cf) { uint64_t DBTestBase::Size(const Slice& start, const Slice& limit, int cf) {
Range r(start, limit); Range r(start, limit);
uint64_t size; uint64_t size;

@ -566,16 +566,20 @@ class DBTestBase : public testing::Test {
std::string AllEntriesFor(const Slice& user_key, int cf = 0); std::string AllEntriesFor(const Slice& user_key, int cf = 0);
#ifndef ROCKSDB_LITE
int NumSortedRuns(int cf = 0); int NumSortedRuns(int cf = 0);
uint64_t TotalSize(int cf = 0); uint64_t TotalSize(int cf = 0);
int NumTableFilesAtLevel(int level, int cf = 0);
uint64_t SizeAtLevel(int level); uint64_t SizeAtLevel(int level);
int TotalLiveFiles(int cf = 0); int TotalLiveFiles(int cf = 0);
size_t CountLiveFiles();
#endif // ROCKSDB_LITE
int NumTableFilesAtLevel(int level, int cf = 0);
int TotalTableFiles(int cf = 0, int levels = -1); int TotalTableFiles(int cf = 0, int levels = -1);
// Return spread of files per level // Return spread of files per level
@ -583,8 +587,6 @@ class DBTestBase : public testing::Test {
size_t CountFiles(); size_t CountFiles();
size_t CountLiveFiles();
uint64_t Size(const Slice& start, const Slice& limit, int cf = 0); uint64_t Size(const Slice& start, const Slice& limit, int cf = 0);
void Compact(int cf, const Slice& start, const Slice& limit, void Compact(int cf, const Slice& start, const Slice& limit,

Loading…
Cancel
Save