linux - 在 HPC 上自动测试来自 SVN 的二进制文件

标签 linux svn testing fortran hpc

我想在 SVN 存储库中按需或使用 Cron 作业在 Fortran 二进制文件上设置一些测试用例的自动化测试。使问题稍微复杂化的是,测试用例将在计算集群上运行,因此每个测试用例都需要生成一个 PBS 脚本。 (Linux环境)

有很多网络测试和单元测试解决方案,但是,我找不到任何可以直接测试二进制文件的东西。比如说,提供输入,并将输出与预期的解决方案进行比较。

关于如何解决这个问题有什么建议吗?

最佳答案

我同意编写脚本非常简单。根据二进制文件的配置方式以及程序之间的差异,您甚至可以将测试脚本作为 SVN 存储库的一部分。

由于您使用的是批处理系统,因此您可以自由安排测试。您可能想要一个通用的“验证”作业,您可以向其提供设置参数(例如,预期和实际程序输出输出的位置)。 Nick提到使用 grep 检查 qstat 的输出以获得您的作业 ID,但您可以告诉 PBS 暂停作业直到另一个作业完成。这意味着你有类似的东西:

...
#PBS -N run_test_1
#PBS -a 200906270000
...
<compile test>
<run test>
<save output>

提交后,保存 qsub 返回的作业 ID(如何执行此操作取决于您的平台 - 通常类似于 job_id=$(qsub $JOB_FILE) 是充足的)。然后,将该值插入另一个脚本:

...
#PBS -N verify_test_1
#PBS -W depend=afterany:$job_id
<run comparison>
...

这将(当插入正​​确的 job_id 值时)将测试运行的执行保持到 2009 年 6 月 27 日午夜,并将验证作业的执行保持到测试作业完成(afterany 指令表明它应该始终在第一个作业之后运行 - 而不仅仅是在它成功时)。

不过,根据集群的周转时间,您可以将所有这些放在一个脚本中,尽管您仍然可以使用 PBS 基于时间的保持仅在特定时间运行。我最近开始使用 Python 而不是 shell 脚本来处理这些与系统相关的工作——我昨天测试了使 Python 脚本可执行并将 PBS 指令直接添加到源代码中——它似乎工作得很好。

关于linux - 在 HPC 上自动测试来自 SVN 的二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1049337/

相关文章:

c++ - Linux C++ 新运算符极其慢

php - ./configure 找不到 evp.h

linux - 带有管道衬里的 awk 命令有些疑问

git - SVN 到 Git 分支/标签/主干

eclipse - 为什么在eclipse中安装SVN这么难?

svn - 有 SVN 工作副本本地版本控制的经验吗?

java - 是否有一些基于 AWT 的 GUI 测试框架?

c++ - 创建共享对象时,不能使用针对符号 `ff_a64_muxer' 的重定位 R_X86_64_32;使用 -fPIC 重新编译

testing - 将 Rspec 模拟转换为 Mocha 以测试事件模型序列化器

ruby-on-rails - 如何测试是否在对象上调用了方法 - Rails RSpec