Cambridge SMT System
multithreading.gtest.cpp File Reference

Unit testing: multithreading with a threadpool. More...

#include <googletesting.h>
#include "main.custom_assert.hpp"
#include "main.logger.hpp"
#include "multithreading.hpp"
Include dependency graph for multithreading.gtest.cpp:

Go to the source code of this file.

Classes

struct  googletesting::functor_test
 
struct  googletesting::functor_test2
 

Namespaces

 googletesting
 test-specific classes and functions
 

Functions

 TEST (multithreading, threadpool1)
 
 TEST (multithreading, threadpool2)
 
int main (int argc, char **argv)
 main function. If compiled individualy, will kickoff any tests in this file. More...
 

Variables

bool user_check_ok
 

Detailed Description

Unit testing: multithreading with a threadpool.

Date
8-8-2012
Author
Gonzalo Iglesias

Definition in file multithreading.gtest.cpp.

Function Documentation

int main ( int  argc,
char **  argv 
)

main function. If compiled individualy, will kickoff any tests in this file.

Definition at line 113 of file multithreading.gtest.cpp.

TEST ( multithreading  ,
threadpool1   
)

This test shows that functors are actually being passed by value to the threadpool, not per reference. First time i use these cool asio libraries, so I might be missing something here, but it initially looks like a limitation of asio::ioservice::post method (cannot pass by reference)

Definition at line 59 of file multithreading.gtest.cpp.

TEST ( multithreading  ,
threadpool2   
)

This test should actually work well. Passing these functors by value will bit-copy the pointer addresses, and pointees will be modified.

Safe to test

This should stop execution:

Definition at line 76 of file multithreading.gtest.cpp.

Variable Documentation

bool user_check_ok