我正在阅读LevelDB中的代码,并且我一直在运行使用的TEST_前缀。我希望TEST_表明这个方法用于测试,以便能够在内部运行,否则这些内部是公开的。因此,我希望这些都不会出现在任何关键路径中。我希望它们不是主要的方法。但是,例如TEST_CompactRange是从CompactRange调用的,它是主压缩路径的一部分。这个TEST_前缀是什么意思,我在哪里可以找到这个信息?
答案 0 :(得分:0)
作者似乎将TEST_
前缀用于不打算成为API一部分的公共方法。这些方法仅供公众使用,以使测试更容易,并且它们以TEST_
为前缀,以阻止用户调用它们。
为什么这些方法不应出现在关键路径中?它们就像私有方法,但可以用于测试。
其他想法:
@VisibleForTesting
注释编辑:要清楚,我只是根据少数TEST_
前缀的方法进行猜测。对代码库进行润滑表明,唯一的此类方法如下(全部公开):
// Compact any files in the named level that overlap [*begin,*end]
void TEST_CompactRange(int level, const Slice* begin, const Slice* end);
// Force current memtable contents to be compacted.
Status TEST_CompactMemTable();
// Return an internal iterator over the current state of the database.
// The keys of this iterator are internal keys (see format.h).
// The returned iterator should be deleted when no longer needed.
Iterator* TEST_NewInternalIterator();
// Return the maximum overlapping data (in bytes) at next level for any
// file at a level >= 1.
int64_t TEST_MaxNextLevelOverlappingBytes();