Boost.Test 发布版本
framework_init_observer_t
中的未初始化内存basic_cstring<CharT>::trim_right
中的未定义行为BOOST_TEST_GLOBAL_FIXTURE
文档具有误导性framework_init_observer_t
中的未初始化变量priority_order
中比较无关指针的未定义行为static constexpr
替换匿名 enum
元数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
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
UBSAN
仅在 gcc-8
退出时发现问题[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()
中使用通用类型列表类型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
include 更改为全小写 (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
问题)与左移运算符一起使用时会发生问题:
”被解释为过滤器分隔符,否则无法执行 --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
中行号不正确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
中存在内存泄漏putenv
声明(重复 #6766)config.hpp
中 putenv
的不正确声明BOOST_<level>_CLOSE_FRACTION
的正确文档未反映到发布的文档中__FILE__
和 __LINE__
,从而无法使用外部测试管理工具提供源文件链接BOOST_REQUIRE_CLOSE
无法与 boost::multiprecision::cpp_dec_float_100
一起编译(重复 ##11054)enable_if/disable_if
模板污染 boost 命名空间const_string.hpp/const_string_test.cpp
)BOOST_<level>_GT
文档错误(重复 ##3463)BOOST_TEST_DONT_PRINT_LOG_VALUE
sigaltstack
DS
标识符导致 doc/examples/dataset_example*.cpp
中的测试失败BOOST_CHECK_EQUAL_COLLECTIONS
:无法控制输出运算符(重复 #9390)