Skip to content

test: add lsof testing and builtin coverage for lsof tool#109

Open
yuKing123-king wants to merge 1 commit into
DKapture:mainfrom
yuKing123-king:test/lsof
Open

test: add lsof testing and builtin coverage for lsof tool#109
yuKing123-king wants to merge 1 commit into
DKapture:mainfrom
yuKing123-king:test/lsof

Conversation

@yuKing123-king

@yuKing123-king yuKing123-king commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

本次修改集中在 test 目录,修改内容如下

1.添加了 lsof 的 BUILTIN 单测。测试内容围绕工具实际功能补充了较完整的回归验证,覆盖了以下几类行为:

  • 帮助信息输出:验证 -h/--help 能正常打印 usage,并包含 path、dev、inode、help 等选项说明。
  • 非法参数处理:验证传入非法选项时会返回错误,并输出 usage,保证参数校验路径正确。
  • 互斥参数校验:验证 --path 与 --inode/--dev 不能同时使用,确保路径过滤和 inode 过滤两套模式不会被错误混用。
  • 组合参数校验:验证 --dev 与 --inode 必须成对出现,避免只传一半导致规则语义不完整。
  • 默认规则行为:验证未传过滤参数时,规则字段保持零值,工具会按默认模式汇总输出,不会写入脏规则。
  • path 过滤语义:验证指定 --path 后,只会汇总匹配该路径的文件和 VMA 记录,其他路径事件不会进入最终输出。
  • dev + inode 过滤语义:验证指定 --dev 和 --inode 后,只会输出设备号和 inode 同时匹配的记录,设备不匹配或 inode 不匹配的事件都会被过滤。
  • 文件与 VMA 聚合语义:验证同一进程下多个普通 fd 会被聚合展示,fd == -1 的 VMA 记录会按 vma(N) 形式汇总,确保输出符合工具设计。
  • 汇总输出格式:验证最终输出包含 COMM、UID、PID、FD 等表头,并能正确展示命中进程名、用户、进程号和 fd/VMA 聚合结果。
  • 多条件过滤结果一致性:验证过滤规则命中的记录会真正进入最终汇总,不命中的记录不会误出现在输出中,确保规则判断和最终日志一致。
  1. 在test/Makefile 中补齐测试目标的链接依赖;
  2. 在test/mock.cpp 中修正 skeleton 对象在全局容器中的分配、指针回填和销毁逻辑,避免因扩容和错索引导致的崩溃;

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant