EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

2002  2003  2004  2005  <20062007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 2002  2003  2004  2005  <20062007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: epics regression tests on AMD64 running RHEL Linux 4.0
From: "Ernest L. Williams Jr." <[email protected]>
To: [email protected]
Cc: [email protected]
Date: Tue, 11 Jul 2006 22:55:49 -0400
Hi,


Looks like the AMD64 Linux platform has now passed all of the epics
regression tests. 

I have tested on the EPICS R3.14.8.2 with most of the CA related patches
and debugging efforts from Jeff Hill and Kay Kasemir.

Thanks to Jeff Hill and Andrei Liyu for helping with an issue with
epicsTime and aitTimeStamp (Mantis #266).

Can you recommend any other tests?

What does the preliminary schedule for EPICS R3.14.9 look like?

A new maintenance release of vxWorks 6.x (i.e. vxWorks 6.3.1) should be
released near the end of July.  
I will test the 6.3.1 release of vxWorks with EPICS R3.14.X as well.



Results of epics Regression tests on AMD64 below:

CPU: Two Dual Core AMD Opteron(tm) Processor 280
OS: Red Hat Enterprise Linux WS release 4 (Nahant Update 3)
Kernel: 2.6.9-34.0.1.ELsmp
Compiler: gcc version 3.4.5 20051201 (Red Hat 3.4.5-2)
EPICS_HOST_ARCH: linux-x86_64
Libraries: native 64-bit mode

==================================================================================
(1) epicsAlgorithmTest

[williams@dragon linux-x86_64-debug]$ epicsAlgorithmTest
epicsMin, epicsMax and epicsSwap tested OK.
[williams@dragon linux-x86_64-debug]$
==================================================================================


==================================================================================
(2) epicsEventTestHost

[williams@dragon linux-x86_64-debug]$ epicsEventTestHost
epicsEventWaitWithTimeout (   1.000000 ) tmo delay err   0.002352 sec
epicsEventWaitWithTimeout (   0.500000 ) tmo delay err   0.001845 sec
epicsEventWaitWithTimeout (   0.250000 ) tmo delay err   0.001964 sec
epicsEventWaitWithTimeout (   0.125000 ) tmo delay err   0.001971 sec
epicsEventWaitWithTimeout (   0.062500 ) tmo delay err   0.001483 sec
epicsEventWaitWithTimeout (   0.031250 ) tmo delay err   0.001734 sec
epicsEventWaitWithTimeout (   0.015625 ) tmo delay err   0.001388 sec
epicsEventWaitWithTimeout (   0.007812 ) tmo delay err   0.001146 sec
epicsEventWaitWithTimeout (   0.003906 ) tmo delay err   0.001080 sec
epicsEventWaitWithTimeout (   0.001953 ) tmo delay err   0.001036 sec
epicsEventWaitWithTimeout (   0.000977 ) tmo delay err   0.001009 sec
epicsEventWaitWithTimeout (   0.000488 ) tmo delay err   0.001500 sec
epicsEventWaitWithTimeout (   0.000244 ) tmo delay err   0.001744 sec
epicsEventWaitWithTimeout (   0.000122 ) tmo delay err   0.001868 sec
epicsEventWaitWithTimeout (   0.000061 ) tmo delay err   0.001932 sec
epicsEventWaitWithTimeout (   0.000031 ) tmo delay err   0.001952 sec
epicsEventWaitWithTimeout (   0.000015 ) tmo delay err   0.001998 sec
epicsEventWaitWithTimeout (   0.000008 ) tmo delay err   0.001951 sec
epicsEventWaitWithTimeout (   0.000004 ) tmo delay err   0.001986 sec
epicsEventWaitWithTimeout (   0.000002 ) tmo delay err   0.000003 sec
epicsEventWaitWithTimeout (   0.000000 ) tmo delay err   0.000006 sec
Average error 0.001521 sec
calling epicsEventWaitWithTimeout(event,2.0) time 1152670051
calling epicsEventTryWait(event) time 1152670053
calling epicsEventSignal() time 1152670053
calling epicsEventWaitWithTimeout(event,2.0) time 1152670053
calling epicsEventSignal() time 1152670053
calling epicsEventTryWait(event) time 1152670053
created producer 0 id 0x5082a0 time 1152670053
created producer 1 id 0x508630 time 1152670053
consumer 0x507ed0 starting time 1152670053
producer 0x5082a0 starting time 1152670053
producer 0x5082a0 sending
producer 0x508630 starting time 1152670053
producer 0x508630 sending
producer 0x5082a0 sending
producer 0x508630 sending
consumer message from 0x5082a0
consumer message from 0x508630
consumer message from 0x5082a0
consumer message from 0x508630
producer 0x5082a0 sending
producer 0x508630 sending
consumer message from 0x5082a0
consumer message from 0x508630
producer 0x5082a0 sending
producer 0x508630 sending
producer 0x5082a0 sending
consumer message from 0x5082a0
consumer message from 0x508630
consumer message from 0x5082a0
producer 0x508630 sending
consumer message from 0x508630
semTest setting quit time 1152670058
producer 0x5082a0 returning time 1152670058
consumer 0x507ed0 returning time 1152670058
producer 0x508630 returning time 1152670058
semTest returning time 1152670061
main terminating
[williams@dragon linux-x86_64-debug]$
==========================================================================================

==========================================================================================
(3) epicsExceptionTestHost

[williams@dragon linux-x86_64-debug]$ epicsExceptionTestHost
Test Complete.
[williams@dragon linux-x86_64-debug]$
===========================================================================================


===========================================================================================
(4) epicsExitTestHost

[williams@dragon linux-x86_64-debug]$ epicsExitTestHost
thread threadA starting
thread threadA waiting for atExit
thread threadB starting
thread threadB waiting for atExit
main calling epicsExit
thread threadB terminating
thread threadA terminating
[williams@dragon linux-x86_64-debug]$
=================================================================================================


=================================================================================================
(5) epicsMathTestHost

[williams@dragon linux-x86_64-debug]$ epicsMathTestHost
a 0.000000e+00 b 0.000000e+00 c nan isnan true isinf false
a 1.000000e+300 b 1.000000e-300 c inf isnan false isinf true
a -1.000000e+300 b 1.000000e-300 c -inf isnan false isinf true
a 0.000000e+00 b 1.000000e+00 c 0.000000e+00 isnan false isinf false
a 1.000000e+300 b 1.000000e+300 c 1.000000e+00 isnan false isinf false
[williams@dragon linux-x86_64-debug]$
=================================================================================================


=================================================================================================
(6) epicsMessageQueueTestHost

[williams@dragon linux-x86_64-debug]$ epicsMessageQueueTestHost
Simple single-thread tests.
Should have 1 used -- Message Queue Used:1  Slots:4
Should have 2 used -- Message Queue Used:2  Slots:4
Should have 3 used -- Message Queue Used:3  Slots:4
Should have 4 used -- Message Queue Used:4  Slots:4
Test sender timeout.
Should have 1 used -- Message Queue Used:1  Slots:4
Should have 2 used -- Message Queue Used:2  Slots:4
Should have 3 used -- Message Queue Used:3  Slots:4
Should have 4 used -- Message Queue Used:4  Slots:4
Test receiver with timeout.
Single receiver with invalid size, single sender tests.
Single receiver, single sender tests.
Systems with priority-based scheduler should send only
4 or 5 messages (sender priority > receiver priority).
Sent 5 messages.
Systems with strict priority-based scheduler should send
10 messages (sender priority < receiver priority).
Sent 5 messages.
All systems should send 10 messages (sender pauses
after sending each message).
Sent 10 messages.
Single receiver, multiple sender tests.
The following test takes 5 minutes to run and has succeeded
if nothing appears between here....
......and here.
Sender 1 -- 5877 messages
Sender 2 -- 5833 messages
Sender 3 -- 5918 messages
Sender 4 -- 5851 messages
[williams@dragon linux-x86_64-debug]$
===========================================================================




============================================================================
(7) epicsMutexTestHost

[williams@dragon linux-x86_64-debug]$ epicsMutexTestHost
One lock pair completes in 0.056820 micro sec
One double recursive lock pair completes in 0.127820 micro sec
One quad recursive lock pair completes in 0.257610 micro sec
calling epicsMutexLock(mutex) time 1152671076
calling epicsMutexTryLock(mutex) time 1152671076
epicsMutexId 0x5031a0 source ../epicsMutexTest.cpp line 264
calling epicsMutexUnlock() time 1152671076
calling epicsMutexUnlock() time 1152671076
epicsMutexId 0x5031a0 source ../epicsMutexTest.cpp line 264
semTest created mutexThread 0 id 0x5042f0 time 1152671076
semTest created mutexThread 1 id 0x504580 time 1152671076
mutexThread 0 starting time 1152671076
mutexThread 0 epicsMutexLock time 1152671076
mutexThread 1 starting time 1152671076
mutexThread 1 epicsMutexLock time 1152671077
mutexThread 0 epicsMutexLock time 1152671077
mutexThread 1 epicsMutexLock time 1152671078
mutexThread 0 epicsMutexLock time 1152671078
mutexThread 1 epicsMutexLock time 1152671079
mutexThread 0 epicsMutexLock time 1152671079
mutexThread 1 epicsMutexLock time 1152671080
mutexThread 0 epicsMutexLock time 1152671080
mutexThread 1 epicsMutexLock time 1152671081
semTest setting quit time 1152671081
mutexThread 0 returning time 1152671081
mutexThread 1 returning time 1152671082
main terminating
[williams@dragon linux-x86_64-debug]$
=================================================================================


==============================================================================
(8) epicsOkToBlockTestHost

[williams@dragon linux-x86_64-debug]$ epicsOkToBlockTestHost
thread threadA isOkToBlock 0
thread threadB isOkToBlock 1
thread threadA epicsThreadIsOkToBlock 0
thread threadB epicsThreadIsOkToBlock 1
main terminating
[williams@dragon linux-x86_64-debug]$
==============================================================================


=============================================================================
(9) epicsStdioTestHost

[williams@dragon linux-x86_64-debug]$ epicsStdioTestHost
at start buffer |*******************|
size 10 rtn 12 value 10 buffer |value is |
size 10 rtn 10 value 10 buffer |value:  1|
size 10 rtn 2 value 10 buffer |10|
at start buffer |*******************|
size 10 rtn 12 value 10 buffer |value is |
size 10 rtn 10 value 10 buffer |value:  1|
size 10 rtn 2 value 10 buffer |10|

Test epicsSetThreadStdout/epicsGetStdout stdout 0x3f2df2e8c0
epicsGetStdout 0x3f2df2e8c0
This is first line of sample report
This is second and last line of sample report
at end stdout 0x3f2df2e8c0 epicsGetStdout 0x3f2df2e8c0
[williams@dragon linux-x86_64-debug]$
================================================================================


================================================================================
(10) epicsStringTestHost

[williams@dragon linux-x86_64-debug]$ epicsStringTestHost
String comparison tests completed.
[williams@dragon linux-x86_64-debug]$
===============================================================================


Note: (11) must be run as root.
===============================================================================
(11) epicsThreadPriorityTestHost

[root@dragon linux-x86_64-debug]# epicsThreadPriorityTestHost
Seems to support strict priority scheduling
[root@dragon linux-x86_64-debug]#
==============================================================================



==============================================================================
(12) epicsThreadPrivateTestHost

[williams@dragon linux-x86_64-debug]$ epicsThreadPrivateTestHost
It takes 0.016760 micro sec to call epicsThreadPrivateGet()
[williams@dragon linux-x86_64-debug]$
==============================================================================



===============================================================================
(13)  epicsThreadTestHost

[williams@dragon linux-x86_64-debug]$ epicsThreadTestHost
epicsThreadSetPriority called by non epics thread
epicsThreadSetPriority called by non epics thread
testPriority main error expected from epicsThreadSetPriority
    id 0x5041b0 old 0 new 0
testPriority thread
    id 0x504db0 old 50 new 99
It takes 0.016900 micro sec to call epicsThreadGetIdSelf ()
Estimating sleep quantum..........done
Estimating sleep quantum..........done
The epicsThreadSleepQuantum() call returns 0.010000 sec.
This doesnt match the quantum estimate of 0.002316 sec within 10%.
threadTest starting
threadTest created 0 myThread 0x506500
startPriority 50 minPriority 0 maxPriority 99
threadTest created 1 myThread 0x506a50
threadFunc 0 starting argvalue 0x506a10
threadFunc 1 starting argvalue 0x506f60
            NAME     EPICS ID   PTHREAD ID   OSIPRI  OSSPRI  STATE
          _main_     0x5041b0            0      0       0       OK
          errlog     0x506370   1074006368     10       0       OK
           task1     0x506bf0   1074813280     51       0       OK
           task0     0x5066a0   1074542944     50       0       OK
threadFunc 1 stopping argvalue 0x506f60
threadFunc 0 stopping argvalue 0x506a10
epicsThreadTest returning
main terminating
[williams@dragon linux-x86_64-debug]$
==========================================================================================



=======================================================================================
(14) epicsTimerTestHost

[williams@dragon linux-x86_64-debug]$ epicsTimerTestHost
delay error > 0.5 %, delay = 0.6 s, error = -3.244 ms (0.540667 %)
delay error > 0.5 %, delay = 0.5 s, error = -3.243 ms (0.648600 %)
delay error > 0.5 %, delay = 0.4 s, error = -3.241 ms (0.810250 %)
delay error > 0.5 %, delay = 0.3 s, error = -3.238 ms (1.079333 %)
delay error > 0.5 %, delay = 0.2 s, error = -3.235 ms (1.617500 %)
delay error > 0.5 %, delay = 0.1 s, error = -3.231 ms (3.231000 %)
average timer delay error -3.264360 ms
test complete
[williams@dragon linux-x86_64-debug]$
========================================================================================




=========================================================================================
(15) epicsTimeTestHost

[williams@dragon linux-x86_64-debug]$ epicsTimeTestHost
epicsTime Test (100 loops)
========================

Time per call to epicsTime::getCurrent() (100000 calls) =  1.801 usec

The following should be your local time
displayed using four different internal representations:

epicsTimeStamp = Tue Jul 11 22:36:00 2006
 5829000 nSec
local time zone struct tm = Tue Jul 11 22:36:00 2006
 0.005829
struct timespec = Tue Jul 11 22:36:00 2006
 0.005829
UTC struct tm = Wed Jul 12 02:36:00 2006
 0.005829
epicsTime: Tue Jul 11 2006 22:36:00.005829000
epicsTime: revision "@(#) EPICS 3.14.8.2-SNS1, Common Utilities Library
Jun 29 2006"

 ... now at loop  10
 ... now at loop  20
 ... now at loop  30
 ... now at loop  40
 ... now at loop  50
 ... now at loop  60
 ... now at loop  70
 ... now at loop  80
 ... now at loop  90
epicsTime test complete. Summary: 0 errors found in 0 out of 100 loops.
[williams@dragon linux-x86_64-debug]$
====================================================================================




Thanks,
Ernest L. Williams Jr.
SNS Control Systems Group
ORNL


Navigate by Date:
Prev: RE: alarm hook Liyu, Andrei
Next: CA client (on IOC) question Ralph Lange
Index: 2002  2003  2004  2005  <20062007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: RE: seq debugger Jeff Hill
Next: CA client (on IOC) question Ralph Lange
Index: 2002  2003  2004  2005  <20062007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 02 Feb 2012 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·