我在使用一套测试软件,只需提供被呼叫的函式
没有测试软的程式码,只有被呼叫的函式
环境是ubuntu20.04, python是3.8.10
流程大约如下,可以一次进行多台设备测试
init -> ge_set -> test -> teardown -> clean
其中我在init和get_sn中使用同样的程式,但是
似乎在init中Lock无效,但是get_sn中有效,不
知道是否有人能提供意见?
程式大约如下
========================================
class G: pass
G.duts = None
Lock = threading.Lock()
def init(logger):
with Lock:
logger.info(str(G.duts))
if G.duts is None:
G.duts = 1
logger.info(str(G.duts))
def get_sn(test_data):
"""
with Lock:
test_data.logger.info(str(G.duts))
if G.duts is None:
G.duts = 1
test_data.logger.info(str(G.duts))
"""
def clean(logger):
G.duts = None
========================================
一次进行两台设备的测试时,
在init印出来的输出分别是
None 1 和 None 1
如果改在get_sn印出来的是
None 1 和 1 1
在init中,我有试过os.getpid(),
回传的数字相同 应该不是不同process
还是我的Lock使用方法有误?
我试过以下,结果也一样。
Lock.acquire()
Lock.release()