Boost.Test 发布
framework_init_observer_t
中的未初始化内存basic_cstring<CharT>::trim_right
中的未定义行为BOOST_TEST_GLOBAL_FIXTURE
文档具有误导性framework_init_observer_t
中的未初始化变量priority_order
中比较无关指针的 UBenum
元数替换为 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
和 no 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
BOOST_AUTO_TEST_CASE_TEMPLATE
不想要列表的 typedef
begin
和 end
但没有 const_iterator
的类--log_sink=file
时出现释放后使用 (Use-after-free) 问题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
检查来比较集合与常规数组。有关更多详细信息,请参阅 此节。random_shuffle
替换为更现代的等效项BOOST_TEST_MESSAGE
- 无效的 XMLBOOST_DATA_TEST_CASE
中使用时,BOOST_TEST_MESSAGE
生成不正确的输出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
的字符串生成的 token 就像重复了 --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
中存在内存泄漏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
const_string_test
示例失败sigaltstack
DS
标识符导致 doc/examples/dataset_example*.cpp
中的测试失败BOOST_CHECK_EQUAL_COLLECTIONS
: 无法控制输出运算符 (重复 #9390)