cph-for-clion 更新日志

项目地址


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-setuprun_tests 工具进行竞赛题目的设置和测试。

已知问题:

测试仅限于支持 Python 和 g++ 编译器的环境。

目前内存限制尚未在 run_tests.py 中实现,需要手动控制内存使用。

留下评论

您的邮箱地址不会被公开。 必填项已用 * 标注