doudou / orocos-rtt forked from psoetens/orocos-rtt

Orocos Real-Time Toolkit

This URL has Read+Write access

Janosch Machowinski (author)
Wed Nov 26 07:50:12 -0800 2008
Sylvain Joyeux (committer)
Fri Dec 19 07:31:38 -0800 2008
orocos-rtt / tests / buffers_test.hpp
100644 91 lines (70 sloc) 2.662 kb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
/***************************************************************************
tag: Peter Soetens Mon Jan 10 15:59:18 CET 2005 buffers_test.hpp
 
buffers_test.hpp - description
-------------------
begin : Mon January 10 2005
copyright : (C) 2005 Peter Soetens
email : peter.soetens@mech.kuleuven.ac.be
 
***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************/
 
 
#ifndef BUFFERSTEST_H
#define BUFFERSTEST_H
 
#include <cppunit/extensions/HelperMacros.h>
 
#include <RTT.hpp>
#include <AtomicQueue.hpp>
#include <BufferLockFree.hpp>
#include <ListLockFree.hpp>
#include <DataObjectInterfaces.hpp>
#include <MemoryPool.hpp>
//#include <SortedList.hpp>
 
#include <os/SingleThread.hpp>
#include <rtt-config.h>
 
using namespace RTT;
using namespace RTT::OS;
 
class Dummy;
 
typedef AtomicQueue<Dummy*> QueueType;
 
class BuffersTest : public CppUnit::TestFixture
{
    CPPUNIT_TEST_SUITE( BuffersTest );
    CPPUNIT_TEST( testAtomic );
    CPPUNIT_TEST( testAtomicCounted );
#ifdef OROPKG_OS_GNULINUX
    // this test assumes a not real-time OS.
    //CPPUNIT_TEST( testListLockFree );
    CPPUNIT_TEST( testAtomicQueue );
#endif
    CPPUNIT_TEST( testBufLockFree );
    CPPUNIT_TEST( testDObjLockFree );
    //CPPUNIT_TEST( testSortedList );
    CPPUNIT_TEST( testMemoryPool );
    CPPUNIT_TEST_SUITE_END();
 
    AtomicQueue<Dummy*>* aqueue;
 
    BufferLockFree<Dummy>* lockfree;
    DataObjectLockFree<Dummy>* dataobj;
    //SortedList<Dummy>* mslist;
 
    ThreadInterface* athread;
    ThreadInterface* bthread;
 
    ListLockFree<Dummy>* listlockfree;
    MemoryPool<Dummy>* mpool;
    MemoryPool<std::vector<Dummy> >* vpool;
    FixedSizeMemoryPool<Dummy>* fmpool;
    FixedSizeMemoryPool<std::vector<Dummy> >* fvpool;
public:
 
    void setUp();
    void tearDown();
 
    void testAtomic();
    void testAtomicCounted();
    void testAtomicQueue();
    void testBufLockFree();
    void testDObjLockFree();
    void testMemoryPool();
 
    void testSortedList();
 
    void testListLockFree();
};
 
#endif