python - 比较 cpp 和 python 上的程序结果

标签 python c++ testing

我想使用 Python 测试 cpp 代码。

我有下一个代码和 a.exe 文件,编译后得到:

int main() {
    std::istream& input_stream = std::cin;
    std::ostream& output_stream = std::cout;
    Data input_data = ReadData(input_stream);
    Data output_data = DoSomethingWithData(input_data);
    OutputData(output_data, output_stream);
    return 0;
}

我有 py 代码:

input_data = ''
for line in sys.stdin:
    input_data += line
output_data = do_something_with_data(input_data)
print(output_data)

我想制作py 脚本,它可以为cpp 程序和py 程序提供相等的输入并比较输出。有简单的方法吗?

最佳答案

您可以使用 subprocess ( https://docs.python.org/2/library/subprocess.html ):

input_data = "some-data"
cpp_output = subprocess.check_output(["a.exe", input_data])
python_output = subprocess.check_output(["python", "test.py", input_data])
assert cpp_output == python_output

关于python - 比较 cpp 和 python 上的程序结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40804570/

相关文章:

c# - 等效的 lambda 值是多少?

python - Kivy Garden - 多个 Chromium 嵌入式浏览器,只能更改第一个创建的浏览器的 URL?

c++ - 复制两个不同大小的元组

testing - 寻找英文文本以测试用户可能的输入

android - 如何在将 Activity 发送到后台后重新获得对 Activity 的访问权限

testing - Selenium 远程控制 Internet Explorer 中的 HTML 源代码提取

python - 如何在 Django 1.8 中使用 jinja2 作为模板引擎

python - Python 2.7 列表中的俄语

c++ - 如何从处于 Release模式的程序中获取 isapi dll 物理路径

c++ - atomic_compare_exchange 大于而不是等于?