万恶的debug练习
- C 50.8%
- Batchfile 20.1%
- Shell 18.6%
- Python 10.5%
|
|
||
|---|---|---|
| example | ||
| for-win | ||
| gen.py | ||
| README.md | ||
| test | ||
SummerExpr
专门解决小学期 debug 的测试问题。
Linux 下安装方法
apt-get install toilet
git clone https://github.com/CTSinon/SummerExpr.git
然后将 test 文件复制到你要 debug 的目录下(和 c 源文件放在一起)运行chmod +x test
使用方法
为每种输入样例创建一个以.in 为后缀的文件,并将其对应的输出存放在文件名相同的.out 文件中。如 example 文件夹中存放的是第 3 题对应的输入和输出样例(注意最后的换行和空格)。
程序有三种模式:
./test all:对每一个文件进行所有存在的测试。./test filename.c:对 filename 指定的 c 文件运行所有存在的测试。./test filename.in:对每个 c 文件进行 filename 指定的测试。
效果如下:
注:输出 congratulations 即所有测试通过,否则输出失败的次数。
如果出现 Permission denied 错误,请运行 chmod +x test
输出的结果将会在 test.out 中保存一份副本,方便随时查看。
项目中提供了一个 gen.py 文件,你可以尝试使用它来生成你自己的测试文件。
windows 下安装方法
git clone https://github.com/CTSinon/SummerExpr.git
然后把所有代码 copy 到 for-win/code_for_test/,如图:
使用方法
确保 gcc.exe 已经添加到环境变量中 双击 oppose.bat,输入你要 check 的题号,即可自动随机生成输入并检查你的相邻两个代码的输出是否有差别
此种方法无法 100%确保能通过所有样例
发现输出不同时将自动暂停,输出将保存在 代码标号.out 文件中,输入将保存在 data.txt 文件中
如图:
修改循环次数的地方在 oppose.bat 中的第 20 行的 200 处
if %count% GTR 200 (goto normal)
single-oppose.bat 进行单独两份代码的比较,题号自行输入。
代码的自行指定则是在 single-oppose.bat 的第 3、4 行的 10、9 处
set /a std = 10
set /a my = 9
可能的问题
- 第六题和第八题因为时间问题没有写生成随机样例的程序
- 也许会因为某些未发现的 bug 陷入死循环吧。。这时请找
19级学号尾号109的人询问


