v0.2.1 – 2024年8月20日
新增功能:
- 代码变更检测:通过计算
main.cpp
的哈希值,判断代码是否发生变化。如果代码没有变化,将跳过编译过程,直接运行测试用例,从而提高执行效率。
错误修复:
- 进程终止改进:确保在所有测试用例执行完毕后,强制终止
solution.exe
进程,以避免资源占用问题,并静默处理输出,防止控制台出现乱码。 - 控制台编码设置:添加
sys.stdout.reconfigure(encoding='utf-8')
,确保控制台输出的编码与 Windows 系统兼容,解决了可能的乱码问题。
用户体验改进:
- 即时输出改进:在编译和每个测试用例执行后,立即输出相关信息,并使用
sys.stdout.flush()
确保信息即时可见,提升用户体验。
v0.2 – 2024年8月20日
新增功能:
- 内存限制超出状态显示:当程序的内存使用超出设定的限制时,控制台将显示“M”,并记录相关信息到日志中。
- 超时处理改进:使用
TimeoutExpired
异常捕获程序运行时间超出设定限制的情况,并使用process.kill()
强制终止超时的子进程。控制台将显示“!”表示超时状态。
错误修复:
- 进程未正确终止问题:修复了程序超时时未能正确终止子进程的问题,防止无限循环导致的程序卡住。
- 符号显示问题:将 Unicode 符号替换为 ASCII 字符,确保控制台在所有环境下正确显示测试结果。
用户体验改进:
- 实时测试状态显示:每个测试用例执行完毕后,立即在控制台输出状态符号,提供实时反馈。
- 改进的日志记录:详细记录每个测试用例的运行时间、内存使用和测试结果到日志文件,方便调试和分析。
v0.1 – 2024年8月19日
初始发布:
- cp-setup.py:从 Competitive Companion 扩展获取竞赛题目信息。自动创建项目目录,生成包含题目信息的
main.cpp
模板文件。支持保存时间限制和内存限制到limits.txt
文件中。自动生成测试用例文件,使用.txt
格式保存输入和输出数据。 - run_tests.py:编译并运行
main.cpp
,自动执行所有测试用例。从limits.txt
文件中读取时间限制,确保测试在规定时间内完成。支持自动识别.txt
格式的测试用例文件。通过日志文件run_tests.log
记录测试执行的详细信息。控制台输出添加了分割线和结果显示,便于区分不同测试用例的运行状态。 - CLion Integration:提供了详细的
README.md
文件,指导用户在 CLion 中通过 External Tools 配置和使用cph-for-clion
工具集。支持使用 CLion 直接调用cp-setup
和run_tests
工具进行竞赛题目的设置和测试。
已知问题:
测试仅限于支持 Python 和 g++ 编译器的环境。
目前内存限制尚未在 run_tests.py
中实现,需要手动控制内存使用。