gpt4 book ai didi

c++ - 单元测试并发代码

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:40:59 24 4
gpt4 key购买 nike

我的周末项目包括编写一个跨平台并发原语库(关键部分、读/写互斥体、互锁整数、事件等),并且想知道如何对这些东西进行单元测试。我意识到测试并发代码本身很难,但测试所述代码的原语不会那么难,不是吗?

事实证明,这太难了。至少,对我来说是。

那么您将如何着手解决这个问题?举个例子,我什至不知道从哪里开始测试关键部分。

最佳答案

不要考虑单元测试,考虑要指定的行为。例如:

Given_an_unlocked_lock
It_should_be_possible_to_take_it
Given_a_locked_lock
It_should_not_be_possible_to_take_it_from_another_thread
It_should_be_possible_take_it_from_the_same_thread
Given_a_locked_lock_when_unlocked
It_should_be_possible_to_take_it
Given_a_locked_lock_when_owning_thread_terminates
It_should_be_possible_to_take_it

我认为这将帮助您确定要做什么。是的,您可能需要在单元测试中使用辅助线程来实现它。也许this example很有帮助。

关于c++ - 单元测试并发代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2035890/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com