万恶的debug练习
  • C 50.8%
  • Batchfile 20.1%
  • Shell 18.6%
  • Python 10.5%
Find a file
Derepress a1cb8ac4cc
Merge pull request #2 from ThWhMn/master
添加window下的批处理文件
2020-06-29 19:34:11 +08:00
example added more examples 2020-06-26 20:56:12 +08:00
for-win add for-win 2020-06-29 19:09:34 +08:00
gen.py examples for 5 updated 2020-06-26 14:13:55 +08:00
README.md fix readme 2020-06-29 19:19:36 +08:00
test little change 2020-06-26 14:41:55 +08:00

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 的人询问