草庐IT

TEST_INLINE

全部标签

c++ - 不知道使用 google-test 在哪里抛出异常

我们使用GoogleTest作为我们的C++单元测试框架。但是我遇到了一个痛苦的情况,不知道如何处理。基本上,当代码中存在未捕获的异常时,我会在控制台中打印以下错误消息并得到一个FAILED。很明显,这个异常是被googletest捕获的。但是,我根本不知道异常在哪里抛出。unknownfile:error:SEHexceptionwithcode0xc000005throwninthetestbody.我能做的就是调试和单步调试代码,我最终会找出问题所在。但这不是很有效,因为项目很大。我希望调试器在未捕获的异常行处停止,并给我一个漂亮的调用堆栈。谷歌测试中有什么我不知道的设置吗?任何

C++ _inline 在单例中被忽略并出现在我的探查器中。怎么会?

我的项目中有很多类被单例访问,如下所示:_inlineGUI_BS_Map*GUI_GetBS_Map(){staticGUI_BS_Mapobj;return&obj;};据我了解,这段代码应该是内联的。我将VisualStudio(2005)选项设置为内联任何合适的内容,并且我的探查器(AQTime)绝对没有设置为覆盖_inlines。但是,当我分析代码时,它们对我的每个单例函数进行了数千次调用。我可能会错过什么?(我正在分析调试版本(以获取分析器的符号)但所有速度优化都已打开。)非常感谢任何建议! 最佳答案 编译器可以随意忽略

c++ - 成员函数模板是否需要 "inline"

如果我在非模板类中有一个成员函数模板并想在类外定义它-我必须使用“内联”吗?例子:classA{templatevoidsomeMethod(Dparam);}template/*inlineneededhere?*/voidA::someMethod(Dparam){}标准的第3.2.5节说函数模板不属于单一定义规则。成员函数模板是这方面的函数模板吗?编辑:如果没有内联,链接器不会提示-但仍然-它是否有效C++03?编辑:到目前为止我学到了什么:gcc(假设还有其他编译器)将隐式模板实例导出为弱符号,这意味着如果它们在多个翻译单元中实例化,在链接时不会发生冲突.由于弱符号不是标准的一

c++ - 定义 BOOST_TEST_DYN_LINK 会导致应用程序在 Visual Studio 中崩溃

在boost单元测试文档中,它明确指出您需要定义BOOST_TEST_DYN_LINK为了与boost单元测试库链接。我正在使用这个基本示例:#defineBOOST_TEST_DYN_LINK#defineBOOST_TEST_MODULEtest_module1//Thisheaderisforthedynamiclibrary,nottheheaderonlyone#includeBOOST_AUTO_TEST_CASE(test1){BOOST_CHECK(true);}我已将boost添加到我的包含/库路径并且代码编译正常,但是当我使用VisualStudio编译boost单

c++ - Gtest : test compiling error

我正在尝试测试我用googletest编写的电机控制库,但我没有编译测试代码。测试位于名为test.cpp的文件中,如下所示:#include#include"../motor.hpp"TEST(constructorTest,contructorDefault){}我将测试主函数放在另一个名为main.cpp的文件中。#include#include"../motor.hpp"intmain(intargc,char*argv[]){::testing::InitGoogleTest(&argc,argv);RUN_ALL_TESTS();}为了编译,我执行了以下行:g++main.

c++ - 'inline' 的正确位置

我应该把inline放在哪里?测试1.h:classtest1{inlinevoidmethod1(){}};测试2.h:classtest2{voidmethod2();};inlinevoidtest2::method2(){}测试3.h:classtest3{inlinevoidmethod3();};inlinevoidtest3::method3(){}测试4.h:classtest4{inlinevoidmethod4();};test4.cpp:voidtest4::method4(){}test5.h:classtest5{inlinevoidmethod5();};t

c++ - Boost::Test:编译并运行一个 "hello world"程序

我正在尝试运行一个虚拟的Boost.test“helloworld”程序。我找到了文档here和there但显然我缺少了一些东西......这是我所做的:第1步:我安装了依赖项sudoaptitudeinstalllibboost-test-dev它安装头文件(libboost-test1.54-dev)和二进制文件(libboost-test1.54.0)。第二步:创建要编译的源文件我有一个名为test.cpp的文件,其中包含:#defineBOOST_TEST_MODULEconst_stringtest#include//EOF正如officialtutorial中所推荐的那样第

c++ - 如何使用 Google Test 捕获段错误?

如何测试函数不会产生段错误?这是我现在知道的,我可以做的:EXPECT_DEATH(foo(nullParameter))在函数旁边,产生了一个段错误,这是我想让它失败的行为。上面的代码片段将使测试通过,因为这是预期的,进程的死亡。现在,我怎样才能让它失败? 最佳答案 这是一个函数,如果传递了一个空指针参数,就会出现段错误,否则不是:intderef(int*pint){return*pint;}这是一个测试该行为的googletest程序:main.cpp#includeintderef(int*pint){return*pint

c++ - 我应该在频繁使用的功能上使用 `inline` 吗?

我有一个cnVector类,它表示3维空间中的一个点。它的运算符+-*/被密集使用。他们的实现非常简短:cnVectorcnVector::operator+(constcnVector&v)const{returncnVector(x+v.x,y+v.y,z+v.z);}我的问题是,因为这个函数很短,虽然它被大量使用,但我是否应该内联它?还是在那么使用它时会生成太多代码? 最佳答案 是的,您可能应该这样做。c++中inline关键字的良好用例是:小函数,大量使用。另见http://msdn.microsoft.com/en-us/

【记录】记一次关于前端单元测试的全英文问卷调查( Survey: Automatically Generated Test Suites for JavaScript)

文章目录OPENINGSTATEMENTBackgroundTaskbackground:FixthefailingtestcasesBeforethetask:Task:FixthefailingtestcasesTask:ExecutableDocumentationBeforethetask:BonusOpportunity:OnemoretaskTask:TestCasesClusteringRewardThankYou!原地址:Survey:AutomaticallyGeneratedTestSuitesforJavaScriptOPENINGSTATEMENTYouarebeing