Python中文
首页
教程
问答
标签
搜索
登录
注册
我可以使用UnitTest的SystemExit处理程序吗?
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我正在将afl fuzz(一个C应用程序)重写为Python。因为我对它的内部工作原理没有足够的了解,所以我想尽可能地复制它的功能。在</p> <p>我正在尝试运行一个例程的功能测试,该例程派生Python解释器,运行<code>execve</code>,如果失败,则通过返回42向调用方报告失败。该测试在unittest外部运行良好,但在放入它时失败:</p> <pre><code>#!/usr/bin/env python import os import sys import unittest def run_test(): x = os.fork() if not x: sys.exit(42) waitpid_result, status = os.waitpid(x, os.WUNTRACED) print(os.WEXITSTATUS(status)) class ForkFunctionalTest(unittest.TestCase): def test_exercise_fork(self): run_test() if __name__ == '__main__': print('Expecting "42" as output:') run_test() print('\nAnd here goes unexpected SystemExit error:') unittest.main() </code></pre> <p>以下是失败的原因:</p> ^{pr2}$ <p>有没有办法让unittest在不改变run_test的情况下使用这个函数?我试过操作系统退出而不是系统出口(),但它使程序在这两个进程中死亡。在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p><code>sys.exit()</code>引发SystemExit类异常,如果未捕获到该异常,则退出程序。您可以尝试捕捉异常:</p> <pre><code>def text_exercise_fork(self): try: run_test() except SystemExit as e: print(e.args[0]) </code></pre>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何在PyObj中使用respondsToSelector和performSelector
3 回答
如何在pyobj中停止线程
5 回答
如何在pyobj中生成线程
4 回答
如何在pyodbc中为记录集指定游标类型?
5 回答
如何在pyodbc中从用户处获取表名,同时避免SQL注入?
8 回答
如何在pyodbc中使用executemany运行多个SELECT查询
10 回答
如何在pyodbc中同时在n个游标上并行运行n个进程?
5 回答
如何在pyodbc中控制连接池的大小?
3 回答
如何在pyodbc中自动调用fetchall()而不进行异常处理?
4 回答
如何在pyODBC查询中参数化日期戳?
10 回答
如何在pyodbc输出转换器函数中解压sqlserver DATETIME?
2 回答
如何在pyodb中安装所有驱动程序
4 回答
如何在pyodb嵌套循环中调用不同的查询
1 回答
如何在pyomo.environ公司modu装置
1 回答
如何在Pyomoconstraints中建模逻辑或量词
8 回答
如何在Pyomo中为约束使用数组
4 回答
如何在pyomo中使用集和范围集的多级索引?
7 回答
如何在PYOMO中分配伪二进制变量
5 回答
如何在Pyomo中创建OR约束?
4 回答
如何在Pyomo中动态地将变量添加到列表中?
4 回答