libCom/test: epicsAtomic tests
Added C++ template instances, so this code loads on a vxWorks 5.5.2 system.
This commit is contained in:
@@ -481,6 +481,74 @@ void measure ()
|
||||
measurePerformance < typename Ten < T > :: Hundred > ();
|
||||
}
|
||||
|
||||
|
||||
// template instances, needed for vxWorks 5.5.2
|
||||
|
||||
#ifdef _MSC_VER
|
||||
# pragma warning ( push )
|
||||
# pragma warning ( disable:4660 )
|
||||
#endif
|
||||
|
||||
template class AtomicSet < int >;
|
||||
template class AtomicSet < size_t >;
|
||||
template class AtomicSet < EpicsAtomicPtrT >;
|
||||
template class OrdinaryIncr < int >;
|
||||
template class OrdinaryIncr < size_t >;
|
||||
template class AtomicIncr < int >;
|
||||
template class AtomicIncr < size_t >;
|
||||
template class AtomicCmpAndSwap < int >;
|
||||
template class AtomicCmpAndSwap < size_t >;
|
||||
template class AtomicCmpAndSwap < EpicsAtomicPtrT >;
|
||||
|
||||
template class Ten<AtomicSet < int > >;
|
||||
template class Ten<AtomicSet < size_t > >;
|
||||
template class Ten<AtomicSet < EpicsAtomicPtrT > >;
|
||||
template class Ten<OrdinaryIncr < int > >;
|
||||
template class Ten<OrdinaryIncr < size_t > >;
|
||||
template class Ten<AtomicIncr < int > >;
|
||||
template class Ten<AtomicIncr < size_t > >;
|
||||
template class Ten<AtomicCmpAndSwap < int > >;
|
||||
template class Ten<AtomicCmpAndSwap < size_t > >;
|
||||
template class Ten<AtomicCmpAndSwap < EpicsAtomicPtrT > >;
|
||||
|
||||
template class Ten<Ten<AtomicSet < int > > >;
|
||||
template class Ten<Ten<AtomicSet < size_t > > >;
|
||||
template class Ten<Ten<AtomicSet < EpicsAtomicPtrT > > >;
|
||||
template class Ten<Ten<OrdinaryIncr < int > > >;
|
||||
template class Ten<Ten<OrdinaryIncr < size_t > > >;
|
||||
template class Ten<Ten<AtomicIncr < int > > >;
|
||||
template class Ten<Ten<AtomicIncr < size_t > > >;
|
||||
template class Ten<Ten<AtomicCmpAndSwap < int > > >;
|
||||
template class Ten<Ten<AtomicCmpAndSwap < size_t > > >;
|
||||
template class Ten<Ten<AtomicCmpAndSwap < EpicsAtomicPtrT > > >;
|
||||
|
||||
template void measurePerformance < Ten < Ten < AtomicSet < int > > > >(void);
|
||||
template void measurePerformance < Ten < Ten < AtomicSet < size_t > > > >(void);
|
||||
template void measurePerformance < Ten < Ten < AtomicSet < EpicsAtomicPtrT > > > >(void);
|
||||
template void measurePerformance < Ten < Ten < OrdinaryIncr < int > > > >(void);
|
||||
template void measurePerformance < Ten < Ten < OrdinaryIncr < size_t > > > >(void);
|
||||
template void measurePerformance < Ten < Ten < AtomicIncr < int > > > >(void);
|
||||
template void measurePerformance < Ten < Ten < AtomicIncr < size_t > > > >(void);
|
||||
template void measurePerformance < Ten < Ten < AtomicCmpAndSwap < int > > > >(void);
|
||||
template void measurePerformance < Ten < Ten < AtomicCmpAndSwap < size_t > > > >(void);
|
||||
template void measurePerformance < Ten < Ten < AtomicCmpAndSwap < EpicsAtomicPtrT > > > >(void);
|
||||
|
||||
template void measure < AtomicSet < int > > (void);
|
||||
template void measure < AtomicSet < size_t > > (void);
|
||||
template void measure < AtomicSet < EpicsAtomicPtrT > > (void);
|
||||
template void measure < OrdinaryIncr < int > > (void);
|
||||
template void measure < OrdinaryIncr < size_t > > (void);
|
||||
template void measure < AtomicIncr < int > > (void);
|
||||
template void measure < AtomicIncr < size_t > > (void);
|
||||
template void measure < AtomicCmpAndSwap < int > > (void);
|
||||
template void measure < AtomicCmpAndSwap < size_t > > (void);
|
||||
template void measure < AtomicCmpAndSwap < EpicsAtomicPtrT > > (void);
|
||||
|
||||
#ifdef _MSC_VER
|
||||
# pragma warning ( pop )
|
||||
#endif
|
||||
|
||||
|
||||
MAIN ( epicsAtomicPerform )
|
||||
{
|
||||
testPlan ( 0 );
|
||||
|
||||
@@ -217,6 +217,38 @@ void testCAS ()
|
||||
"proper number of CAS test thread not set iterations" );
|
||||
}
|
||||
|
||||
// template instances, needed for vxWorks 5.5.2
|
||||
|
||||
#ifdef _MSC_VER
|
||||
# pragma warning ( push )
|
||||
# pragma warning ( disable:4660 )
|
||||
#endif
|
||||
|
||||
template void incr < int > (void *);
|
||||
template void decr < int > (void *);
|
||||
template void incr < size_t > (void *);
|
||||
template void decr < size_t > (void *);
|
||||
template void add < int > (void *);
|
||||
template void sub < int > (void *);
|
||||
template void add < size_t > (void *);
|
||||
template void sub < size_t > (void *);
|
||||
template void cas < int > (void *);
|
||||
template void cas < size_t > (void *);
|
||||
template void cas < EpicsAtomicPtrT > (void *);
|
||||
|
||||
template void testIncrDecr < int > (void);
|
||||
template void testIncrDecr < size_t > (void);
|
||||
template void testAddSub < int > (void);
|
||||
template void testAddSub < size_t > (void);
|
||||
template void testCAS < int > (void);
|
||||
template void testCAS < size_t > (void);
|
||||
template void testCAS < EpicsAtomicPtrT > (void);
|
||||
|
||||
#ifdef _MSC_VER
|
||||
# pragma warning ( pop )
|
||||
#endif
|
||||
|
||||
|
||||
MAIN ( epicsAtomicTest )
|
||||
{
|
||||
|
||||
|
||||
Reference in New Issue
Block a user