• googletest--Death Test和Exception Test


    Death Test验证某个状态会使进程以某个错误码和错误消息离开

    #include <gtestgtest.h>
    #include "MyStack.h"
    
    // Death Test:  验证某个状态会使进程以某个错误码和错误消息离开
    
    
    void function1() {
    
        std::cerr << "Bad thing happened";
        std::exit(1);  // exit(0) 不算death
    }
    
    void function2() {
        std::cerr << "Bad thing happend again.";
        std::exit(22);
    }
    
    TEST(tutorial_DeathTest, simpletest) {   // 转换:testcase名字需要以DeathTest结尾
                                             // 因为DeathTests往往需要在其他test之前允许
        int x = 90;
    
        // death的原因:  
        //    1. 进程以非0值离开 
        //    2. 进程被一个信号杀死
    
        EXPECT_DEATH(function1(), "Bad thing happened"); //正则表达式
    
        EXPECT_EXIT(function2(), ::testing::ExitedWithCode(22), ""); // "" 表示不关心错误消息
    
        //EXPECT_EXIT(function2(), ::testing::KilledBySignal(SIGKILL), ".*");  // Windows上没有


        EXPECT_THROW(st.pop(), std:out_of_range); // 预期st.pop()抛一个std:out_of_range异常.
        EXPECT_ANY_THROW(st.pop()); // 预期st.pop()抛一个任意类型的异常
        EXPECT_NO_THROW(st.pop()); // 预期st.pop()不跑异常

        switch () {

        case -1: FAIL() << "Size can not be negative";   // 报告测试失败

    }
  • 相关阅读:
    VGA Vesa DDC显示接口
    sourceinsight 技巧
    framebuffer 相关
    Windows Live Writer 粘贴表格的使用技巧
    The Linux Kernel API
    XBAP and Silverlight : Product Lining in .NET 3.0/WPF
    DDC and EDID
    cmem模块,cmemk
    Linux Platform Device and Driver,platform_add_devices()>platform_driver_register()
    platform设备驱动全透析
  • 原文地址:https://www.cnblogs.com/logchen/p/10260816.html
Copyright © 2020-2023  润新知