📜  pft gavin - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:03:33.691000             🧑  作者: Mango

PFT Gavin - Shell/Bash

PFT Gavin

介绍

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          # 测试脚本
注意事项
  1. 该项目只在 macOS 和 Linux 上测试过,不保证在 Windows 上能够正常工作。
  2. 如果你打算参加 42 的考试,你需要在最终提交前删除本项目,因为它包含的测试用例可能会泄漏考试内容。