LevelDB TEST_方法前缀
LevelDB TEST_ Prefix for Methods
我正在阅读LevelDB中的代码,我一直在使用TEST_前缀。我希望TEST_表明该方法用于测试,以便能够对内部操作,否则不会是公开的。因此,我希望这些都不会在任何关键路径上。我认为它们不会出现在任何一种主要方法中。但是,例如TEST_CompactRange是从CompactRange调用的,CompactRange是主压缩路径的一部分。这个TEST_前缀是什么意思,我在哪里可以找到这个信息?
作者似乎将TEST_
前缀用于不打算成为API一部分的公共方法。这些方法是公开的,只是为了使测试更容易,并且它们带有TEST_
前缀,以阻止用户调用它们。
为什么这些方法不能出现在关键路径中?它们就像私有方法,但是在测试中是可见的。
其他想法:
- 我不确定这种命名约定是否是最佳实践。c++也有友元声明,可以完成类似的事情。
- 命名约定类似于Java Guava库的
@VisibleForTesting
注释
编辑:要明确的是,我只是根据TEST_
前缀的少数方法进行猜测。对代码库进行Grepping显示,只有以下这些方法(都是公共的):
// 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();
相关文章:
- 为不同配置设置MSVC_RUNTIME_LIBRARY的正确方法是什么
- 通过方法访问结构
- 最小硬币更换问题(自上而下方法)
- C++为构建时间获取QDateTime的可靠方法
- 在C#中处理C++指针而不使用unsafe的最佳方法
- 处理多个异常集合的C++方法
- 如果C++类在类方法中具有动态分配,但没有构造函数/析构函数或任何非静态成员,那么它仍然是POD类型吗
- 有什么方法可以遍历结构吗
- 当类在C++中定义时,有什么方法可以"register"类吗?
- 在C++中,将大的无符号浮点数四舍五入为整数的最佳方法是什么
- 实现无开销push_back的最佳方法是什么
- 在std :: Map或std :: set中找到具有给定前缀的键的优雅方法
- 为局部变量名称添加前缀的"nicer"替代方法?
- 在Windows中获取安装前缀的最佳方法是什么
- 一种在检查十六进制前缀后将字符串转换为int的更干净的方法
- 进行字符串前缀测试的优雅方法
- 是否有一种方法来绕过必须前缀模板基类成员与' this '
- 在c++中为char*添加char前缀的最佳方法
- LevelDB TEST_方法前缀
- 我不确定这个前缀哈希方法应该做什么