发送到应用程序的 CTRL-C 单元测试

2023-11-27

I am developing an application handling CTRL-C. I am producing a signal handler to shut-down gracefully threads and other resources.

I want to test CTRL-C in different scenarios where my application might be. I know how to setup those for the process under test, but I need a way (in the code of the running test suite) to check whether that condition is reached or not to call exactly CTRL-C.

I work in Linux and I want to run my tests automatically with the help of CPPUNIT. In each of my CTRL-C tests I start the process and then I send CTRL-C using kill function having the PID of the process.

I am using shared memory; once the tested application reaches a condition of my interest or a point when I would like to send CTRL-C, I write a tag or a state into the shared memory. Aat the same time the test suite code running in a different process is continuosly polling the shared memory and once it reads the desired state it send CTRL-C/kill.

您认为这是一个好方法还是通常以更好/有效的方式完成?

亲切的问候

AFG


首先测试接收到某些外部信号时的行为看起来不像单元测试,而是像功能测试。

此外,您执行此操作的方式听起来也太复杂,并且可能会强制执行某种同步并隐藏某些行为。

另一方面,对于此类测试,我确实没有更好的建议,这通常是由外部工具以一种不太受控制的方式完成的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

发送到应用程序的 CTRL-C 单元测试 的相关文章

  • 如何在c++中读取pcap文件来获取数据包信息?

    我想用 C 编写一个程序来读取 pcap 文件并获取数据包的信息 例如 len sourc ip flags 等 现在我找到了如下代码 我认为它会帮助我获取信息 但是我有一些疑问 首先我想知道应该将哪个库添加到我的程序中 然后什么是 pca
  • 在 DataView 的 RowFilter 中选择 DISTINCT

    我试图根据与另一个表的关系缩小 DataView 中的行范围 我使用的 RowFilter 如下 dv new DataView myDS myTable id IN SELECT DISTINCT parentID FROM myOthe
  • C中的malloc内存分配方案

    我在 C 中尝试使用 malloc 发现 malloc 在分配了一些内存后浪费了一些空间 下面是我用来测试 malloc 的一段代码 include
  • 在 C 中匹配二进制模式

    我目前正在开发一个 C 程序 需要解析一些定制的数据结构 幸运的是我知道它们是如何构造的 但是我不确定如何在 C 中实现我的解析器 每个结构的长度都是 32 位 并且每个结构都可以通过其二进制签名来识别 举个例子 有两个我感兴趣的特定结构
  • 使用 Newtonsoft 和 C# 反序列化嵌套 JSON

    我正在尝试解析来自 Rest API 的 Json 响应 我可以获得很好的响应并创建了一些类模型 我正在使用 Newtonsoft 的 Json Net 我的响应中不断收到空值 并且不确定我的模型设置是否正确或缺少某些内容 例如 我想要获取
  • 如何区分用户点击链接和页面自动重定向?

    拥有 C WebBrowser control http msdn microsoft com en us library system windows forms webbrowser aspx在我的 WinForms 应用程序中 并意识
  • 获取两个工作日之间的天数差异

    这听起来很简单 但我不明白其中的意义 那么获取两次之间的天数的最简单方法是什么DayOfWeeks当第一个是起点时 如果下一个工作日较早 则应考虑在下周 The DayOfWeek 枚举 http 20 20 5B1 5D 3a 20htt
  • 为什么 Google 测试会出现段错误?

    我是 Google Test 的新手 正在尝试提供的示例 我的问题是 当我引入失败并设置GTEST BREAK ON FAILURE 1 或使用命令行选项 GTest 将出现段错误 我正在考虑这个例子 https code google c
  • 回发后刷新时提示确认表单重新提交。我做错了什么?

    我有一个以空白 默认状态启动的仪表板 我让用户能够将保存的状态加载到仪表板中 当他们单击 应用 按钮时 我运行以下代码 function CloseAndSave var radUpload find radUpload1ID var in
  • 尽管我已在 python ctypes 中设置了信号处理程序,但并未调用它

    我尝试过使用 sigaction 和 ctypes 设置信号处理程序 我知道它可以与python中的信号模块一起使用 但我想尝试学习 当我向该进程发送 SIGTERM 时 但它没有调用我设置的处理程序 只打印 终止 为什么它不调用处理程序
  • 标准化 UTF-8 到底是什么?

    The 重症监护室项目 http userguide icu project org transforms normalization 现在也有一个PHP库 http us php net manual en class normalize
  • 我可以使用 moq Mock 来模拟类而不是接口吗?

    正在经历https github com Moq moq4 wiki Quickstart https github com Moq moq4 wiki Quickstart 我看到它 Mock 一个接口 我的遗留代码中有一个没有接口的类
  • DbContext 和 ObjectContext 有什么区别

    From MSDN 表示工作单元和存储库模式的组合 使您能够查询数据库并将更改分组在一起 然后将这些更改作为一个单元写回存储 DbContext在概念上类似于ObjectContext 我虽然DbContext只处理与数据库的连接以及针对数
  • 如何检测表单的任何控件的变化?

    如何检测 C 中表单的任何控件的更改 由于我在一个表单上有许多控件 并且如果表单中的任何控件值发生更改 我需要禁用按钮 我正在寻找一些内置函数 事件处理程序 属性 并且不想为此创建自定义函数 不 我不知道任何时候都会触发任何事件any控制表
  • C# HashSet 只读解决方法

    这是示例代码 static class Store private static List
  • CMake 无法确定目标的链接器语言

    首先 我查看了this https stackoverflow com questions 11801186 cmake unable to determine linker language with c发帖并找不到解决我的问题的方法 我
  • AES 128 CBC 蒙特卡罗测试

    我正在 AES 128 CBC 上执行 MCT 如中所述http csrc nist gov groups STM cavp documents aes AESAVS pdf http csrc nist gov groups STM ca
  • 使用管道时,如果子进程数量大于处理器数量,进程是否会被阻塞?

    当子进程数量很大时 我的程序停止运行 我不知道问题是什么 但我猜子进程在运行时以某种方式被阻止 下面是该程序的主要工作流程 void function int process num int i initial variables for
  • 如何在非控制台应用程序中查看 cout 输出?

    输出到调试窗口似乎相当繁琐 我在哪里可以找到cout如果我正在编写非控制台信息 则输出 Like double i a b cout lt lt b lt lt endl I want to check out whether b is z
  • 从列表中选择项目以求和

    我有一个包含数值的项目列表 我需要使用这些项目求和 我需要你的帮助来构建这样的算法 下面是一个用 C 编写的示例 描述了我的问题 int sum 21 List

随机推荐

  • 具有 Windows 身份验证的 ASP.NET Core 2.1 自定义 RoleProvider

    我正在将应用程序从 ASP Net MVC 5 框架迁移到新的 Net Core 2 1 我在 MVC 5 项目中使用带有自定义 RoleProvider 的 Windows 身份验证 如下面的链接所示 ASP NET MVC 如何创建自定
  • EntityFramework 4升级到5,lambda不可用

    我已将我的 entityframework 4 项目升级到 5 我想在 Include 括号中使用 lambda 表达式 我的动机是取代字符串定义 此时此刻我有 context WarrantyContract Include Car 并想
  • Realm Swift:卸载应用程序后是否可以保留数据库?

    使用realm swift 即使从设备上卸载应用程序 是否也可以在设备内存中保留和维护应用程序的领域数据库文件 非常感谢您的帮助 遗憾的是没有 这是iOS 的限制 而不是Realm 的限制 从设备上卸载 iOS 应用程序时 与其关联的所有文
  • Oracle:将 select 语句结果集导出为 INSERT SQL 语句,类似于 SQL Developer 导出

    我正在寻找创建 SQL INSERT 语句的解决方案使用 PL SQL 脚本为 select 语句结果集 正在寻找 SQL Developer 工具中可用的类似功能 导出 gt 格式插入 但我希望解决方案作为脚本而不是使用任何工具 我已经参
  • Emacs python 自动补全

    我已经在 emacs24 上从 el get 安装了 python mode pymacs 和 pycomplete 但我无法在 emacs 中获得 python 的自动完成功能 我建议你尝试一下emacs绝地 作者确实在努力为 Emacs
  • Django Admin:按相关外键的值排序

    我正在尝试按对象相关外键集中的特定值对 Django 管理列表页面进行排序 具体来说 在下面的代码中 我希望 ContentAdmin 视图显示按 Twitter Score 名称为 Twitter 的 Score 对象 排序的所有内容对象
  • 具有列表对象的类的 GetHashCode [重复]

    这个问题在这里已经有答案了 我有一堂课 public class Cycle public List
  • 在Windows 64位上编译gopacket

    我正在尝试使用gopacket在我的 Windows 10 上 我用它来嗅探数据包并将数据包直接注入到网卡或从网卡注入数据包 我可以使用 GOARCH 386 轻松编译和运行我的代码 但不能在 GOARCH amd64 中编译和运行我的代码
  • 如何在SVN中使用自定义关键字

    我正在使用 VisualSVN 服务器和 TortoiseSVN 客户端 我已经设置了属性 svn keywords Author Id Revision LastChangedDate Copyright copyright c 2009
  • OSX 崩溃时自动重新启动程序[重复]

    这个问题在这里已经有答案了 可能的重复 如何编写 bash 脚本来在进程终止时重新启动该进程 我编写了一个偶尔崩溃的 C 程序 但我无法修复它 getaddrinfo 的一些问题看起来相当自发 我想在崩溃时重新启动程序 我以为这很容易 我打
  • React.js“从somelib导入{Something}”和“从somelib导入某些东西”之间的区别[重复]

    这个问题在这里已经有答案了 我不明白以下之间的区别 import Something from somelib and import Something from somelib 在 React js 中 有人可以解释一下吗 使用 ES6
  • 如何从实际计算机访问虚拟机上的django开发服务器

    好的 我的笔记本电脑已经安装了 vmware 播放器 我正在将 lubuntu 作为虚拟机运行 并且在虚拟机上安装了 django 并正在测试我的应用程序 因此我执行了 python manage py runserver 并且我可以通过从
  • 如何使用 Bootstrap 4 实现响应式排版?

    我正在使用 Bootstrap 4 构建响应式 Web 应用程序 与桌面相比 我希望在移动设备上减小所有文本的字体大小 因此我根据 Bootstrap 文档将以下内容添加到我的基本 css 文件中 https getbootstrap co
  • c3p0 连接池是否确保最大池大小?

    我已经经历了几个问题 this有些相关 但没有回答我的问题 c3p0 是否有连接池maxPoolSize确保某个时间的连接数永远不会超过这个限制 如果maxPoolSize 5并且 10 个用户同时开始使用该应用程序 我的应用程序 配置
  • iText:如何在同一文档中插入背景图像以刷新响应

    我正在创建一个 PDF 并编写流作为响应 在写入流之前 我想在所有页面中添加背景图像作为水印 以便通过响应刷新的 PDF 文档是最后一个带水印的文档 嗨 这是我的代码示例 任何帮助将非常感激 private static String ge
  • 使用 Javascript 检测 Flash 应用程序是否正确加载?

    我的产品打开一个 Web 浏览器并将其指向包含本地 Flash 应用程序的 HTML 文件 如何以编程方式检测该文件是否加载成功 如果没有成功则抛出什么异常 有没有办法使用 JavaScript 来做到这一点 从外部检查文件是否存在于磁盘上
  • 用于获取日期的星期几的确定性标量函数

    SQL Server 尝试通过确定性 UDF 获取星期几 我确信这一定是可能的 但无法弄清楚 更新 示例代码 CREATE VIEW V Stuff WITH SCHEMABINDING AS SELECT MD ID MD DateTim
  • Android ImageAdapter 与 Fragment 中的 Gridview

    我有一个带有 gridview 的适配器 它作为一个 Activity 工作 我现在尝试将其放入片段中并转换内容 但它不起作用 当我在 Activity 中包含 IconFragmentSystem 时 当我尝试打开 Activity 时
  • spawnSync /bin/sh ENOBUFS

    Error spawnSync bin sh ENOBUFS 在执行以下行时 非系统地在我的 NodeJs 应用程序中生成 child process execSync cd tmp myFolder tar xjf myArchive t
  • 发送到应用程序的 CTRL-C 单元测试

    I am developing an application handling CTRL C I am producing a signal handler to shut down gracefully threads and other