blob: fd69d1777a727c844a8691a2da5921f79db4e4b7 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef _DECAF_UTIL_CONCURRENT_THREADPOOLEXECUTORTEST_H_
#define _DECAF_UTIL_CONCURRENT_THREADPOOLEXECUTORTEST_H_
#include <decaf/util/concurrent/ExecutorsTestSupport.h>
#include <decaf/util/concurrent/CountDownLatch.h>
#include <decaf/util/concurrent/Concurrent.h>
#include <decaf/lang/Thread.h>
#include <decaf/util/concurrent/ThreadPoolExecutor.h>
#include <decaf/util/concurrent/Mutex.h>
#include <decaf/util/Config.h>
namespace decaf{
namespace util{
namespace concurrent{
class ThreadPoolExecutorTest : public ExecutorsTestSupport {
private:
CPPUNIT_TEST_SUITE( ThreadPoolExecutorTest );
CPPUNIT_TEST( testConstructor );
CPPUNIT_TEST( testSimpleTasks );
CPPUNIT_TEST( testSimpleTasksCallerOwns );
CPPUNIT_TEST( testMoreTasksThanMaxPoolSize );
CPPUNIT_TEST( testTasksThatThrow );
CPPUNIT_TEST( testAwaitTermination );
CPPUNIT_TEST( testPrestartCoreThread );
CPPUNIT_TEST( testPrestartAllCoreThreads );
CPPUNIT_TEST( testGetCompletedTaskCount );
CPPUNIT_TEST( testGetCorePoolSize );
CPPUNIT_TEST( testGetKeepAliveTime );
CPPUNIT_TEST( testGetThreadFactory );
CPPUNIT_TEST( testSetThreadFactory );
CPPUNIT_TEST( testSetThreadFactoryNull );
CPPUNIT_TEST( testGetRejectedExecutionHandler );
CPPUNIT_TEST( testSetRejectedExecutionHandler );
CPPUNIT_TEST( testSetRejectedExecutionHandlerNull );
CPPUNIT_TEST( testGetLargestPoolSize );
CPPUNIT_TEST( testGetMaximumPoolSize );
CPPUNIT_TEST( testGetPoolSize );
CPPUNIT_TEST( testGetTaskCount );
CPPUNIT_TEST( testIsShutdown );
CPPUNIT_TEST( testIsTerminated );
CPPUNIT_TEST( testIsTerminating );
CPPUNIT_TEST( testGetQueue );
CPPUNIT_TEST( testRemove );
CPPUNIT_TEST( testShutDownNow );
CPPUNIT_TEST( testConstructor1 );
CPPUNIT_TEST( testConstructor2 );
CPPUNIT_TEST( testConstructor3 );
CPPUNIT_TEST( testConstructor4 );
CPPUNIT_TEST( testConstructor5 );
CPPUNIT_TEST( testConstructor6 );
CPPUNIT_TEST( testConstructor7 );
CPPUNIT_TEST( testConstructor8 );
CPPUNIT_TEST( testConstructor9 );
CPPUNIT_TEST( testConstructor10 );
CPPUNIT_TEST( testConstructor11 );
CPPUNIT_TEST( testConstructor12 );
CPPUNIT_TEST( testConstructor13 );
CPPUNIT_TEST( testConstructor14 );
CPPUNIT_TEST( testConstructor15 );
CPPUNIT_TEST( testConstructor16 );
CPPUNIT_TEST( testConstructor17 );
CPPUNIT_TEST( testConstructor18 );
CPPUNIT_TEST( testConstructor19 );
CPPUNIT_TEST( testConstructor20 );
CPPUNIT_TEST( testConstructorNullPointerException1 );
CPPUNIT_TEST( testConstructorNullPointerException2 );
CPPUNIT_TEST( testConstructorNullPointerException3 );
CPPUNIT_TEST( testConstructorNullPointerException4 );
CPPUNIT_TEST( testConstructorNullPointerException5 );
CPPUNIT_TEST( testConstructorNullPointerException6 );
CPPUNIT_TEST( testConstructorNullPointerException7 );
CPPUNIT_TEST( testConstructorNullPointerException8 );
CPPUNIT_TEST( testSaturatedExecute1 );
CPPUNIT_TEST( testSaturatedExecute2 );
CPPUNIT_TEST( testSaturatedExecute3 );
CPPUNIT_TEST( testSaturatedExecute4 );
CPPUNIT_TEST( testRejectedExecutionExceptionOnShutdown );
CPPUNIT_TEST( testCallerRunsOnShutdown );
CPPUNIT_TEST( testDiscardOnShutdown );
CPPUNIT_TEST( testDiscardOldestOnShutdown );
CPPUNIT_TEST( testExecuteNull );
CPPUNIT_TEST( testCorePoolSizeIllegalArgumentException );
CPPUNIT_TEST( testMaximumPoolSizeIllegalArgumentException1 );
CPPUNIT_TEST( testMaximumPoolSizeIllegalArgumentException2 );
CPPUNIT_TEST( testKeepAliveTimeIllegalArgumentException );
CPPUNIT_TEST( testTerminated );
CPPUNIT_TEST( testBeforeAfter );
CPPUNIT_TEST( testConcurrentRandomDelayedThreads );
CPPUNIT_TEST( testRapidCreateAndDestroyExecutor );
CPPUNIT_TEST_SUITE_END();
private:
decaf::util::concurrent::Mutex myMutex;
public:
ThreadPoolExecutorTest() : myMutex() {}
virtual ~ThreadPoolExecutorTest() {}
void testConstructor();
void testSimpleTasks();
void testSimpleTasksCallerOwns();
void testMoreTasksThanMaxPoolSize();
void testTasksThatThrow();
void testAwaitTermination();
void testPrestartCoreThread();
void testPrestartAllCoreThreads();
void testGetCompletedTaskCount();
void testGetCorePoolSize();
void testGetKeepAliveTime();
void testGetThreadFactory();
void testSetThreadFactory();
void testSetThreadFactoryNull();
void testGetRejectedExecutionHandler();
void testSetRejectedExecutionHandler();
void testSetRejectedExecutionHandlerNull();
void testGetLargestPoolSize();
void testGetMaximumPoolSize();
void testGetPoolSize();
void testGetTaskCount();
void testIsShutdown();
void testIsTerminated();
void testIsTerminating();
void testGetQueue();
void testRemove();
void testShutDownNow();
void testConstructor1();
void testConstructor2();
void testConstructor3();
void testConstructor4();
void testConstructor5();
void testConstructor6();
void testConstructor7();
void testConstructor8();
void testConstructor9();
void testConstructor10();
void testConstructor11();
void testConstructor12();
void testConstructor13();
void testConstructor14();
void testConstructor15();
void testConstructor16();
void testConstructor17();
void testConstructor18();
void testConstructor19();
void testConstructor20();
void testConstructorNullPointerException1();
void testConstructorNullPointerException2();
void testConstructorNullPointerException3();
void testConstructorNullPointerException4();
void testConstructorNullPointerException5();
void testConstructorNullPointerException6();
void testConstructorNullPointerException7();
void testConstructorNullPointerException8();
void testSaturatedExecute1();
void testSaturatedExecute2();
void testSaturatedExecute3();
void testSaturatedExecute4();
void testRejectedExecutionExceptionOnShutdown();
void testCallerRunsOnShutdown();
void testDiscardOnShutdown();
void testDiscardOldestOnShutdown();
void testExecuteNull();
void testCorePoolSizeIllegalArgumentException();
void testMaximumPoolSizeIllegalArgumentException1();
void testMaximumPoolSizeIllegalArgumentException2();
void testKeepAliveTimeIllegalArgumentException();
void testTerminated();
void testBeforeAfter();
void testConcurrentRandomDelayedThreads();
void testRapidCreateAndDestroyExecutor();
};
}}}
#endif /*_DECAF_UTIL_CONCURRENT_THREADPOOLEXECUTORTEST_H_*/