测试超时配置和启动行为的应用集合。
一个模拟 GUI 应用启动失败的测试应用。
test-failure-run 是一个不显示 GUI 界面的后台应用,用于测试和演示应用启动失败的场景。应用会:
- 读取配置文件
~/.config/testfailurerun中指定的延迟时间(毫秒) - 等待指定时长后自动退出
- 模拟 GUI 应用启动失败但保持活跃的行为
创建配置文件 ~/.config/testfailurerun,内容为一个整数,表示应用退出前的延迟时间(毫秒):
# 创建配置文件,500 毫秒后退出
echo "500" > ~/.config/testfailurerun
# 或者创建 1000 毫秒后退出的配置
echo "1000" > ~/.config/testfailurerun如果配置文件不存在或内容无效,默认延迟为 500 毫秒。
一个延迟显示窗口的测试应用,提供超时配置 GUI。
test-wait-run 会在启动后等待指定时间才显示窗口,并提供配置界面:
- 启动时从
~/.config/testwaitrun读取延迟时间(默认 3000ms) - 等待指定时间后显示配置窗口
- 窗口包含两个数字输入框,分别用于配置:
- Test Failure Run 的超时时间
- Test Wait Run 的超时时间
- 点击保存按钮将配置写入对应文件
创建配置文件 ~/.config/testwaitrun,内容为一个整数,表示显示窗口前的延迟时间(毫秒):
# 创建配置文件,3000 毫秒后显示窗口
echo "3000" > ~/.config/testwaitrun
# 或者创建 5000 毫秒后显示窗口的配置
echo "5000" > ~/.config/testwaitrun如果配置文件不存在或内容无效,默认延迟为 3000 毫秒。
本项目使用统一的 CMake 配置,构建两个可执行文件。
- CMake >= 3.21
- Qt6 Core 和 Widgets 库
- C++ 20 编译器(GCC 12+ 或等效)
- Ninja 构建工具
cd examples/test_failure_run
# 使用预设配置编译(Release 版本)
cmake --preset default
cmake --build --preset default
# 或者调试版本
cmake --preset debug
cmake --build --preset debugcd examples/test_failure_run
# 重新配置并构建
cmake --preset default
cmake --build --preset default
# 生成 DEB 包
cpack -G DEB --config build/CPackConfig.cmake生成的包文件:test-timeout-apps_1.0.0_amd64.deb
# 从 DEB 包安装
sudo dpkg -i test-timeout-apps_1.0.0_amd64.deb
# 或者从构建目录安装
cd build
sudo cmake --install . --prefix /usr/local安装后会包含两个可执行文件:
test-failure-runtest-wait-run
# 使用默认配置(500ms)
test-failure-run
# 使用自定义配置
echo "2000" > ~/.config/testfailurerun
test-failure-run# 使用默认配置(3000ms 后显示窗口)
test-wait-run
# 使用自定义配置(5000ms 后显示窗口)
echo "5000" > ~/.config/testwaitrun
test-wait-run- 运行
test-wait-run - 等待窗口显示
- 在两个输入框中设置超时时间(毫秒)
- 点击"保存"按钮保存配置
安装后,两个应用都会显示在应用启动器中,可以像普通应用一样启动。
test_failure_run/
├── CMakeLists.txt # 统一项目配置(包含两个应用)
├── CMakePresets.json # CMake 预设
├── README.md # 本文件
├── test_failure_run.cpp # test-failure-run 源代码
├── test_wait_run.cpp # test-wait-run 源代码
└── data/
├── test-failure-run.desktop # test-failure-run Desktop 入口
├── test-failure-run.svg # test-failure-run 图标
├── test-wait-run.desktop # test-wait-run Desktop 入口
└── test-wait-run.svg # test-wait-run 图标
Apache-2.0 OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only