#include <gtest/gtest.h>#include <string.h>#include <string>#include <list>#include <map> #include "typedefs.h"#include "WelsList.h"#include "WelsTask.h"#include "WelsThreadPoolTest.h" TEST (CThreadPoolTest, CThreadPoolTest_List) { CWelsList<IWelsTask>* pTaskList; pTaskList = new CWelsList<IWelsTask>(); ASSERT_TRUE(NULL != pTaskList); CThreadPoolTest cThreadPoolTest; CThreadPoolTest cThreadPoolTest1; CSimpleTask* aTasks[2] = {NULL, NULL}; IWelsTask* pCurTask; int32_t i; aTasks[0] = new CSimpleTask (&cThreadPoolTest); aTasks[1] = new CSimpleTask (&cThreadPoolTest1); pTaskList->push_back(aTasks[0]); pTaskList->push_back(aTasks[1]); EXPECT_TRUE(2 == pTaskList->size()); pCurTask = pTaskList->begin(); EXPECT_TRUE(pCurTask->GetSink() == &cThreadPoolTest); pCurTask->GetSink()->OnTaskExecuted();//cThreadPoolTest pTaskList->pop_front(); EXPECT_TRUE(1 == pTaskList->size()); pCurTask = pTaskList->begin(); EXPECT_TRUE(pCurTask->GetSink() == &cThreadPoolTest1); pCurTask->GetSink()->OnTaskExecuted();//cThreadPoolTest1 pTaskList->pop_front(); pTaskList->push_back(aTasks[1]); EXPECT_TRUE(1 == pTaskList->size()); pCurTask = pTaskList->begin(); EXPECT_TRUE(pCurTask->GetSink() == &cThreadPoolTest1); pCurTask->GetSink()->OnTaskExecuted();//cThreadPoolTest1 pTaskList->pop_front(); EXPECT_TRUE(1 == cThreadPoolTest.GetTaskCount()); EXPECT_TRUE(2 == cThreadPoolTest1.GetTaskCount()); EXPECT_TRUE(0 == pTaskList->size()); for (i = 0; i < 2; i++) { delete aTasks[i]; aTasks[i] = NULL; } aTasks[0] = new CSimpleTask (&cThreadPoolTest1); aTasks[1] = new CSimpleTask (&cThreadPoolTest); pTaskList->push_back(aTasks[0]); pTaskList->push_back(aTasks[1]); pCurTask = pTaskList->begin(); EXPECT_TRUE(pCurTask->GetSink() == &cThreadPoolTest1); pCurTask->GetSink()->OnTaskExecuted();//cThreadPoolTest1:3 pTaskList->pop_front(); EXPECT_TRUE(1 == pTaskList->size()); pTaskList->push_back(aTasks[0]); EXPECT_TRUE(2 == pTaskList->size()); pCurTask = pTaskList->begin(); EXPECT_TRUE(pCurTask->GetSink() == &cThreadPoolTest); pCurTask->GetSink()->OnTaskExecuted();//cThreadPoolTest:2 pTaskList->pop_front(); pCurTask = pTaskList->begin(); EXPECT_TRUE(pCurTask->GetSink() == &cThreadPoolTest1); pCurTask->GetSink()->OnTaskExecuted();//cThreadPoolTest1:4 pTaskList->pop_front(); EXPECT_TRUE(2 == cThreadPoolTest.GetTaskCount()); EXPECT_TRUE(4 == cThreadPoolTest1.GetTaskCount()); for (i = 0; i < 2; i++) { delete aTasks[i]; aTasks[i] = NULL; } delete pTaskList;}
#include <gtest/gtest.h>
#include <string.h>
#include <string>
#include <list>
#include <map>
#include "typedefs.h"
#include "WelsList.h"
#include "WelsTask.h"
#include "WelsThreadPoolTest.h"
TEST (CThreadPoolTest, CThreadPoolTest_List) {
CWelsList<IWelsTask>* pTaskList;
pTaskList = new CWelsList<IWelsTask>();
ASSERT_TRUE(NULL != pTaskList);
CThreadPoolTest cThreadPoolTest;
CThreadPoolTest cThreadPoolTest1;
CSimpleTask* aTasks[2] = {NULL, NULL};
IWelsTask* pCurTask;
int32_t i;
aTasks[0] = new CSimpleTask (&cThreadPoolTest);
aTasks[1] = new CSimpleTask (&cThreadPoolTest1);
pTaskList->push_back(aTasks[0]);
pTaskList->push_back(aTasks[1]);
EXPECT_TRUE(2 == pTaskList->size());
pCurTask = pTaskList->begin();
EXPECT_TRUE(pCurTask->GetSink() == &cThreadPoolTest);
pCurTask->GetSink()->OnTaskExecuted();//cThreadPoolTest
pTaskList->pop_front();
EXPECT_TRUE(1 == pTaskList->size());
pCurTask = pTaskList->begin();
EXPECT_TRUE(pCurTask->GetSink() == &cThreadPoolTest1);
pCurTask->GetSink()->OnTaskExecuted();//cThreadPoolTest1
pTaskList->pop_front();
pTaskList->push_back(aTasks[1]);
EXPECT_TRUE(1 == pTaskList->size());
pCurTask = pTaskList->begin();
EXPECT_TRUE(pCurTask->GetSink() == &cThreadPoolTest1);
pCurTask->GetSink()->OnTaskExecuted();//cThreadPoolTest1
pTaskList->pop_front();
EXPECT_TRUE(1 == cThreadPoolTest.GetTaskCount());
EXPECT_TRUE(2 == cThreadPoolTest1.GetTaskCount());
EXPECT_TRUE(0 == pTaskList->size());
for (i = 0; i < 2; i++) {
delete aTasks[i];
aTasks[i] = NULL;
}
aTasks[0] = new CSimpleTask (&cThreadPoolTest1);
aTasks[1] = new CSimpleTask (&cThreadPoolTest);
pTaskList->push_back(aTasks[0]);
pTaskList->push_back(aTasks[1]);
pCurTask = pTaskList->begin();
EXPECT_TRUE(pCurTask->GetSink() == &cThreadPoolTest1);
pCurTask->GetSink()->OnTaskExecuted();//cThreadPoolTest1:3
pTaskList->pop_front();
EXPECT_TRUE(1 == pTaskList->size());
pTaskList->push_back(aTasks[0]);
EXPECT_TRUE(2 == pTaskList->size());
pCurTask = pTaskList->begin();
EXPECT_TRUE(pCurTask->GetSink() == &cThreadPoolTest);
pCurTask->GetSink()->OnTaskExecuted();//cThreadPoolTest:2
pTaskList->pop_front();
pCurTask = pTaskList->begin();
EXPECT_TRUE(pCurTask->GetSink() == &cThreadPoolTest1);
pCurTask->GetSink()->OnTaskExecuted();//cThreadPoolTest1:4
pTaskList->pop_front();
EXPECT_TRUE(2 == cThreadPoolTest.GetTaskCount());
EXPECT_TRUE(4 == cThreadPoolTest1.GetTaskCount());
for (i = 0; i < 2; i++) {
delete aTasks[i];
aTasks[i] = NULL;
}
delete pTaskList;
}