📅  最后修改于: 2023-12-03 15:03:33.691000             🧑  作者: Mango
PFT Gavin 是由 42 Paris 开发的 Shell/Bash 项目,旨在帮助学生加深对操作系统概念的理解以及如何使用 Shell 脚本编写自动化测试。
该项目包含一个测试程序,它会测试你的程序是否正确地处理了标准输入,标准输出和错误输出。它旨在帮助学生熟悉操作系统概念,例如文件描述符,管道和信号等。
该项目主要测试的是你的程序在处理标准输入,标准输出和错误输出时是否符合规范,例如:
除此之外,还会测试你的程序是否与某些系统指令的输出相同。
你需要先将该项目克隆到你的本地:
git clone https://github.com/42Paris/PFT_2019.git
进入 PFT_2019 目录,然后运行 test.sh
脚本,然后输入你想要测试的可执行文件的路径:
./test.sh <path/to/your/executable>
如果你想要在每次更改代码后自动运行测试,你可以使用 inotifywait
工具:
while inotifywait -qqre modify --format '%w%f' .; do ./test.sh <path/to/your/executable>; done
这个命令将在每次 PFT_2019 目录中的文件更改时运行测试。
该项目包含以下文件和目录:
.
├── includes
│ ├── libunit.h # 功能测试框架的头文件
│ ├── pft.h # 测试程序的头文件
│ └── test.h # 功能测试的头文件
├── libft
│ ├── ...
│ └── Makefile # 库文件的 Makefile
├── Makefile # PFT Gavin 的 Makefile
├── srcs
│ ├── ...
│ └── test.c # 测试程序的主函数
├── tests # 测试用例目录
│ ├── ...
│ ├── 10_timeout # 超时测试用例
│ ├── 11_errors # 错误输出测试用例
│ ├── 12_segv # SIGSEGV 测试用例
│ ├── 13_buse # SIGBUS 测试用例
│ ├── 14_abort # SIGABRT 测试用例
│ ├── 15_fpe # SIGFPE 测试用例
│ ├── 16_alarm # SIGALRM 测试用例
│ ├── 17_pipe # 管道和重定向测试用例
│ ├── 18_signal # 信号测试用例
│ ├── 19_general # 通用测试用例
│ └── 20_bonus # 附加测试用例
└── test.sh # 测试脚本