Boost.Test 版本
framework_init_observer_t
中的未初始化内存basic_cstring<CharT>::trim_right
中的未定义行为BOOST_TEST_GLOBAL_FIXTURE
文档误导framework_init_observer_t
中未初始化的变量priority_order
中比较无关指针的 UBenum
arity 替换为 static constexpr
lazy_ostream
中使用 boost_test_print_type
自定义点execution_aborted
异常以允许从 DLL 外部捕获它catch_system_error
选项设置为 no
时相同。感谢 Tom Hughes 提供此功能。现在可以在单个 BOOST_TEST
表达式中组合容差指示、用户消息和集合比较修饰符
std::vector<double> v1 = f(); std::vector<double> v2{1.1, 1.19}; BOOST_TEST(v1 == v2, boost::test_tools::tolerance( 1e-3 ) << "comparison to ground truth failed" << boost::test_tools::per_element());
test_tools-test
在某些架构上失败nvcc
umask
)-Wattributes
警告-Wdelete-non-abstract-non-virtual-dtor
由 test_case_gen
触发[-Wfloat-equal]
BOOST_HEADER_DEPRECATED
的不正确用法BOOST_AUTO_TEST_CASE_TEMPLATE
生成无效的 XML 日志BOOST_TEST_NO_LIB
msvc
版本的虚拟析构函数/W4
)BOOST_TEST
(通过 #GH-173)unit_test_main.ipp
中未使用的变量警告__linux__
而不是 __linux
wchar_t
的已删除 std::basic_ostream::operator<<
导致的编译问题root_test_unit_id
的未使用参数警告C4265
警告(重复 #11107)std::string_view
的支持。boost::exception
和无 rtti 模式下更好的诊断(感谢 Mikhail Pilin / #PR-234)BOOST_TEST
可用于比较抽象类型sample
BOOST_TEST_CONTEXT
为同一上下文传递多个值。BOOST_TEST_INFO_SCOPE
允许以粘滞方式定义当前作用域的上下文。现在可以使用 浮点比较,而无需将两个操作数都转换为浮点类型。现在 Boost.Test 将浮点比较用于诸如
BOOST_TEST(3.0001 == 3);
有关更多信息,请参阅此部分。
Boost.Test minimal.hpp
现在显示弃用警告。minimal.hpp
已经弃用了很长时间,并将很快删除。请切换到例如 Boost.Test 的头文件变量。使用 minimal.hpp
的测试可以很容易地转换为头文件变体。例如,以下代码
#include <boost/test/minimal.hpp> int test_main( int, char *[] ) { ... }
可以重写为
#include <boost/test/included/unit_test.hpp> BOOST_AUTO_TEST_CASE(test_main) { ... }
boost::unit_test::unit_test_log_formatter::log_build_info
略有更改,以接受一个额外的布尔参数。如果您有自定义日志记录器,则需要更新其签名。BOOST_DATA_TEST_CASE
const
-volatile
说明符-Wformat-overflow
gcc-8
在退出时识别出 UBSAN
问题[snippet_dataset1_3]
似乎已损坏boost_check_equal-str-test
在 llvm
上失败doc_example22
(和 23
)预期会失败,但在使用 clang 的发布变体构建时没有失败master_test_suite
声明两次BOOST_UNIT_TEST_FRAMEWORK_DYN_LINK
等1.69
后运行时 type_mismatch
boost/timer.hpp
已弃用windows.h
应该是小写assertion_result
的 ar
参数以避免警告BOOST_SYMBOL_VISIBLE
不能用于 Sun Studio 的 enums
NDEBUG
时检查未使用的变量example 12
中 bind1st
的用法example 04
中多余的分号master_test_suite
的声明方式不同BOOST_TEST_CONTEXT
vsnprintf
编译错误和警告1.48
以来一直使用已弃用的 Boost.Timer
类(通过 #GH-202 解决)namespace boost::timer {}
重新声明为不同类型的符号(通过 #GH-202 解决)libs/test/tools/console_test_runner
无法编译BOOST_AUTO_TEST_CASE_TEMPLATE()
中使用通用 typelist 类型BOOST_TEST_CASE_NAME
boost::exception
中的消息close_at_tolerance
对于无穷大比较始终返回 false
bool
的类型时,检测 boost_test_print_type
不起作用v1.68.0
后,MSVC x64/Debug 启动速度显著变慢boost::exception
的 catch 块出现在 execution_monitor::execute()
中的 std::exception
之后BOOST_CLANG
未定义,评估为 0
--color_output=no
时,不输出颜色代码+
破坏了第一列(重复 #12216)-Werror=missing-declarations
无法编译BOOST_TEST_CASE
的问题argc
和 argv
。为了指示应延迟实例化的数据集,引入了一个新的 data::make_delayed
助手。data::make
创建数据集,具有可变数量的参数。由于数据集是单态的,因此应该可以将所有元素强制转换为第一个元素类型。master_test_suite_t
不再可复制。std::initializer_list
创建的数据集尤其如此。std::cout
或 std::cerr
的输出流,颜色默认开启。这可以通过向命令行传递 --no_color_ouput
(或仅 --no_color
)来禁用。BOOST_AUTO_TEST_CASE_TEMPLATE
现在接受 std::tuple
中的类型序列[clang]
修复 [-Wc++11-narrowing]
错误gcc >= 7
的一些 fallthrough 警告stdcerr
文件创建Windows.h
包含改为全小写 (MinGW)BOOST_AUTO_TEST_CASE_TEMPLATE
中使用 std::tuple
类型列表print_helper_t<nullptr_t>
的问题errors.hpp
需要将警告 C4946
设置为 off
BOOST_AUTO_TEST_CASE_TEMPLATE
不希望列表使用 typedef
begin
和 end
但没有 const_iterator
的类--log_sink=file
后释放内存BOOST_TEST_GLOBAL_CONFIGURATION
(结果报告关机时间)BOOST_GLOBAL_FIXTURE
已标记为已弃用,并将在后续版本中移除BOOST_GLOBAL_FIXTURE
内部使用测试断言和宏是不允许的。请改用 BOOST_TEST_GLOBAL_FIXTURE
(见下文)。BOOST_GLOBAL_FIXTURE
,转而使用 BOOST_TEST_GLOBAL_FIXTURE
和 BOOST_TEST_GLOBAL_CONFIGURATION
。这有助于将与主测试套件关联的 fixture 的逻辑与用于设置日志记录和报告设施的逻辑分开,从而实现更干净的设计。BOOST_TEST
检查来比较集合与常规数组。有关更多详细信息,请参见此部分。operator<<
的侵入性更小。success
和 non-fatal error
之间,并默认为 general information
。BOOST_NO_EXCEPTIONS
拼写错误导致 throw_exception
在某些情况下不可用FE_*
宏用法(无法在无 FPU 架构上编译 boost 测试库)(重新打开)BOOST_AUTO_TEST_SUITE
:通过使用 __COUNTER__
生成唯一名称VERSION
的变量nullptr
问题)对左移运算符无效:
”自 1.62 版以来被解释为过滤器分隔符,否则无法执行 --list_content
报告的测试。有关更多详细信息,请参阅 #12531。per_element
和 lexicographic
BOOST_TEST
的修饰符也可以应用于字符串比较。有关更多详细信息,请参见字符串比较。FE_*
宏用法(无法在无 FPU 架构上编译 boost 测试库)BOOST_TEST()
将 std::string
视为集合?report_sink
描述中的拼写错误--report_sink
参数损坏--run_test
不接受包含 ':' 的测试名称--run_test
的字符串会生成标记,就像 --run_test
已重复一样,这使得可以通过关联的环境变量 BOOST_TEST_RUN_FILTERS
设置多个测试过滤器--logger
和相应的环境变量 BOOST_TEST_LOGGER
。BOOST_TEST_DISABLE_ALT_STACK
。[bb10/qnx failures]
构建错误BOOST_DATA_TEST_CASE
中为每个数据集生成唯一且稳定的测试名称abi::__cxa_demangle
getchar()
在 uClibc
中定义为宏)std::tuple
的数据驱动测试已损坏test_case_gen
生成的 test_units
中行号不正确boost/test/impl/debug.ipp
:忽略 WaitForSingleObject
的返回值BOOST_DATA_TEST_CASE
中添加 fixture 支持BOOST_TEST(3u == (std::max)(0u, 3u))
失败BOOST_DATA_TEST_CASE
在 4D 及更高维度的网格上无法编译make
用作左上角数据集报告无效或模棱两可的参数:这可能会破坏向测试模块提供用户定义命令时的现有调用。应采用以下调用约定
--
之后传递这些命令--
之前传递示例:调用
test_module --user-arg1=xy --log_level=test_suite
应重写为
test_module --log_level=test_suite -- --user-arg1=xy
__FreeBSD_version
之前不包含 <osreldate.h>
(在 1.59 中修复)init_unit_test_suite
中,当使用路径和空格时,程序选项不正确ostream
精度(在 1.59 中修复)argv
的内容BOOST_TEST( ..., per_element() )
对 vector<string>
的比较BOOST_TEST()
语句BOOST_TEST( 0.0 == 0.0 )
在 C++11 下失败 (GCC 和 Clang)BOOST_TEST( ..., per_element() )
错误地要求集合可比较BOOST_TEST
通用断言color_output
的彩色输出list_content
的测试平台列表BOOST_<level>_EQUAL_COLLECTION
文档拼写错误_CrtSetReportFile
可用于重定向内存泄漏报告init_tests_func
记录时发生访问冲突BOOST_TEST_PASSPOINT
的文档内容错误GT
太棒了!vserver
环境中运行时进入无限循环(重复 ##3592)SIGCHLD
始终被视为致命错误BOOST_<level>_GT
描述中的错误(重复 ##3463)BOOST_<level>_CLOSE_FRACTION
的文档不正确<boost/test/exception_safety.hpp>
需要额外的包含BOOST_AUTO_EST_CASE
的拼写错误stderr
]]>
的字符串BOOST_AUTO_TEST_CASE_TEMPLATE
中存在内存泄漏