Repository navigation
v0.4.9
Com Bridge v0.4.9
审查项 #9 / #10 / #11:测试与运维。运行时行为没有变化。
#9 单实例互斥名可用环境变量覆盖
test_single_instance 的 3 条用例以前用生产互斥量名,于是程序一运行它们
必然失败(锁被真实进程占着)。那不是回归,但 CI 永远红,也容易让人误以为
单实例逻辑坏了。
现在互斥量名支持 COM_BRIDGE_MUTEX_NAME 覆盖,测试各自用一个独立名字;
不设该变量时行为与之前完全一致(新增一条用例专门守护这点)。
结果:程序运行中跑全量测试也是绿的(877 通过 / 0 失败)。
#10 真机注入测试改为显式开启
test_accel 里那条 TestRealInjectionIsOneToOne 会移动真实光标,所以任何
在碰光标的程序都能让它偶发失败——正在运行的 Com Bridge 自己(穿越态会把主机
光标钳在边缘)、Deskflow/Synergy 之类同类工具、带手势的鼠标驱动都算。
现在默认跳过,需要时 set COM_BRIDGE_REAL_INPUT_TESTS=1;即使开启,检测到
本机已有 Com Bridge 在跑也会跳过并说明原因。测试结果因此只反映代码对错。
#11 日志运行时轮转(快照 + 截断)
旧实现只在启动时轮转一次,且只保留一份 .old:
- 长时间不重启就完全不轮转 —— 跑几天的进程能把日志写到几百 MB;
- 上一次的现场会被下一次启动覆盖掉。
现在后台每 30 秒检查一次,超过 8MB 就「快照 + 截断」:
保留末尾 512KB 存为 .1,旧快照顺移到 .2/.3(共 3 份),然后把当前日志清空。
之所以不直接 rename:日志文件此刻正被 fd 1/2 打开,Windows 上重命名打开中的
文件会失败(共享冲突);复制一份再截断不需要改文件名。
可用 COM_BRIDGE_LOG_MAX 调整上限(字节)。
测试
新增 9 项(tests/test_log_rotation.py)+ 2 项互斥名用例。全量 877 通过 /
1 跳过(真机注入,需显式开启)/ 0 失败。