bonjour,
je cherche a tester si un mutex fonctionnent correctement, voici la fonction qui l'utilise
cette fonction se situe dans la classe RulesDataMapper que je souhaite tester
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 EUpdateResult RulesDataMapper::update(const bool statement){ lock.lock(); ... lock.unlock(); return result; }
j'ai alors un autre classe RulesDataMapperTest pour cela
pour l'instant voici la code que j'ai mais qui ne marche pas ça me génère un erreur
ma queston est donc la suivante es ce que pour tester un mutex on dois passer pas différent thread que l'on dois exécuter en même temps ? si oui comment créer un thread ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 TEST_F(RulesDataMapperTest, testMultiThreadingResistance){ std::thread thread1(r1->update(true)); ... ERREUR In file included from /usr/include/c++/5/mutex:42:0, from /home/charles/Desktop/Westguard-SSM/src/test/../Controller/../DataMapper/RulesDataMapper.h:25, from /home/charles/Desktop/Westguard-SSM/src/test/../Controller/EvaluateController.h:16, from /home/charles/Desktop/Westguard-SSM/src/test/EvaluateControllerTest.h:9, from /home/charles/Desktop/Westguard-SSM/src/test/AllTest.cpp:10: /usr/include/c++/5/functional: In instantiation of struct std::_Bind_simple<EUpdateResult()>: /usr/include/c++/5/thread:137:59: required from std::thread::thread(_Callable&&, _Args&& ...) [with _Callable = EUpdateResult; _Args = {}] /home/charles/Desktop/Westguard-SSM/src/test/RulesDataMapperTest.h:598:75: required from here /usr/include/c++/5/functional:1505:61: error: no type named type in class std::result_of<EUpdateResult()> typedef typename result_of<_Callable(_Args...)>::type result_type; ^ /usr/include/c++/5/functional:1526:9: error: no type named type in class std::result_of<EUpdateResult()> _M_invoke(_Index_tuple<_Indices...>)
Partager