Changeset 6498351 in rtems-testing


Ignore:
Timestamp:
Jun 17, 2009, 6:40:45 PM (10 years ago)
Author:
Joel Sherrill <joel.sherrill@…>
Branches:
4.11, 8895273c193787f84c4585a10f6d6aceb3b25dc4
Children:
ef35dfb
Parents:
9d2555e
Message:

2009-06-17 Joel Sherrill <joel.sherrill@…>

  • Explanations.txt: Add 33 explanations.
Location:
rtems-coverage
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • rtems-coverage/ChangeLog

    r9d2555e r6498351  
     12009-06-17      Joel Sherrill <joel.sherrill@OARcorp.com>
     2
     3        * Explanations.txt: Add 33 explanations.
     4
    152009-06-12      Joel Sherrill <joel.sherrill@OARcorp.com>
    26
  • rtems-coverage/Explanations.txt

    r9d2555e r6498351  
    6565to be reached from the APIs and if so, should be conditionalized as DEBUG.
    6666If it can be reached from the APIs, then it is a simple test case.
     67
     68coremsgflushwait.c:65
     69Dead Code?
     70This appears to be dead code and the routine may be able to be removed.
     71Verify this is the case and remove it.
    6772+++
    6873
     
    7075Simple Test Case
    7176pri ceiling, acquire when pri = ceiling
     77+++
     78
     79corespinlockwait.c:75
     80Simple Test Case (or unreachable SuperCore)
     81This is either a simple test case or a case where the SuperCore includes
     82functionality which is not promoted out yet via an API.  If this is code
     83which is not available via the API yet, then it should be conditionalized
     84and disabled.
    7285+++
    7386
     
    100113+++
    101114
     115regionextend.c:83
     116Code Restructuring
     117Rerun with my modifications
     118+++
     119
    102120regionresizesegment.c:83
    103121Simple Test Case
     
    110128+++
    111129
    112 heapgetinfo.c:70
    113130Simple Test Case
    114131The heap is corrupted.  The block's size does not match the next block's
    115132previous size backwards link.  This may make sense to add to the
    116133Heap Walk test.
     134+++
     135
     136heapresizeblock.c:158
     137Simple Test Case
     138looks like shrink block but so small the unused area gets freed
     139+++
     140
     141objectextendinformation.c:226
     142Simple Test Case
     143I think this is a case of allocating objects in unlimited mode
     144until you run out of memory.  Perhaps we are not running unlimited
     145for the coverage runs.  Or maybe coverage has a limit on how many Ids
     146it will create.
     147+++
     148
     149objectshrinkinformation.c:101
     150Talk To Chris
     151This code needs to be explained by Chris and possibly restructured.
     152I think this is possibly dead code where a branch case cannot actually
     153be taken because it is redundant.  But more than than that, I am not
     154100% sure the code is correct. I am unsure how the loop ensures that
     155all objects within an allocation block are verified as being free.
    117156+++
    118157
     
    139178+++
    140179
     180heapgetinfo.c:70
     181Simple Test Case
     182The heap is corrupted.  The block's size does not match the next block's
     183previous size backwards link.  This may make sense to add to the
     184Heap Walk test.
     185+++
     186
    141187ioregisterdriver.c:61
    142188Simple Test Case
     
    154200+++
    155201
    156 
    157202ioregisterdriver.c:84
    158203Simple Test Case
     
    175220+++
    176221
    177 coretodmsecstoticks.c:23
    178 Simple Test Case
    179 Need to disable inline/macro and test body
     222corespinlockwait.c:76
     223Simple Test Case
     224need a case for a timeout
    180225+++
    181226
     
    198243Simple Test Case
    199244(sys state trickery) shutdown while in shutdown state
     245+++
     246
     247threadcreateidle.c:59
     248Simple Test Case
     249This appears to be a case where the IDLE task stack size is explicitly
     250configured to be less than the minimum stack size and has to be increased.
     251It should be possible to make a minor configuration change to an existing
     252test to cover this one.
     253+++
     254
     255threadhandler.c:148
     256Code Modification
     257Given the current APIs, the switch cases with two arguments cannot be
     258executed.  Disable those as unused by any existing API and restructure
     259switch to an if.
    200260+++
    201261
     
    237297+++
    238298
    239 threadreset.c:63
     299threadinitialize.c:231
     300Simple Test Case
     301Add case with user extension which fails to allocate memory on create
     302+++
     303
     304threadinitialize.c:238
     305Simple Test Case
     306A user extension must return an error for the create case of an Floating
     307Point enabled task. 
     308+++
     309
     310threadhandler.c:163
     311Code Modification
     312See threadhandler.c:148.
     313+++
     314
     315threadreset.c:61
    240316Simple Test Case
    241317This is a case where a task is restarted with its per task watchdog
     
    244320+++
    245321
     322threadresume.c:65
     323Dead Code in Configuration
     324This code can only be exercised from ITRON so all suspend with nesting
     325count support should be disabled unless ITRON is enabled.  Do not
     326write a test for it.  Just disable all related functionality on the
     327ITRON enabled macro.
     328+++
     329
     330threadresume.c:68
     331Dead Code in Configuration
     332See threadresume.c:65
     333+++
     334
     335threadresume.c:71
     336Dead Code in Configuration
     337See threadresume.c:65
     338+++
     339
     340threadstackallocate.c:61
     341Simple Test Case
     342We do not have a test for having a user provided stack allocator. This
     343code is both the pass and fail to allocate case.
     344
     345NOTE: This code should probably be able to be disabled for Tiny/RTEMS.
     346+++
     347
     348threadstackfree.c:58
     349Simple Test Case
     350We do not have a test for having a user provided stack allocator. This
     351code is the deallocate path.
     352
     353NOTE: This code should probably be able to be disabled for Tiny/RTEMS.
     354+++
     355
     356iterateoverthreads.c:42
     357Simple Test Case
     358Need to call iterate over threads in a test where there is an API configured
     359which does not have threads.  Should be easy to add to sp54.
     360+++
     361
     362threadqenqueuepriority.c:92
     363Interrupt Synchronization
     364This case is where we are iterating to enqueue a thread into a priority
     365based thread queue but the thread we are looking at gets unblocked when
     366we flash interrupts.
     367+++
     368
     369threadqenqueuepriority.c:131
     370Simple Test Case
     371I think! this is a case where we enqueue by priority with a thread
     372priority that requires searching from last to first.  But there is
     373already a thread priority on the chain.  This priority will go before
     374any in the set.  So we search backwards and insert at the head.
     375+++
     376
     377regionextend.c:75
     378Simple Test Case, Possible Restructuring
     379possibly dead code from switch, change to if's
     380threadreset.c:63
     381Simple Test Case
     382This is a case where a task is restarted with its per task watchdog
     383timer active. This probably can be hit by having a task do a long
     384wake after and another thread restart it.
     385+++
     386
    246387corebarrierwait.c:64
    247388Simple Test Case
     
    281422
    282423chain.inl:300
    283 Simple Test Case
     424Simple Test Case or Minor Code Rework
     425This inlined case appears multiple times.
     426
    284427_POSIX_signals_Clear_signals:71 chain get when empty
     428
     429This is actually part of _Watchdog_Adjust_to_chain and it appears to be
     430dead because there is an explicit check for the chain being empty on the
     431loop but the _Chain_Get_unprotected also checks for empty.  So we never
     432get a case there _Chain_Get_unprotected returns NULL.  May be able to
     433rework the loop to repeated call get until it gets a NULL.
    285434+++
    286435
     
    301450
    302451threadqextractfifo.c:55
    303 HARD
    304 extract thread that isn't blocked on thread queue
     452Simple Test Case
     453extract thread that isn't blocked on thread queue.  Probably requires
     454bypassing APIs and going to SuperCode directly. Hard if API not bypassed.
    305455+++
    306456
    307457threadqextractpriority.c:64
    308 HARD
    309 extract thread that isn't blocked on thread queue
    310 +++
    311 
    312 heapresizeblock.c:158
    313 Simple Test Case
    314 looks like shrink block but so small the unused area gets freed
     458Simple Test Case
     459extract thread that isn't blocked on thread queue.  Probably requires
     460bypassing APIs and going to SuperCode directly. Hard if API not bypassed.
     461+++
     462
     463threadqfirstpriority.c:51
     464Simple Test Case
     465Ask for first priority on a thread queue with no tasks.  May require
     466bypassing APIs and going to SuperCode directly. Hard if API not bypassed.
     467+++
     468
     469threadqprocesstimeout.c:46
     470Interrupt Synchronization
     471This is processing a timeout on a thread that times out while it is in the
     472process of blocking on a thread queue.
     473+++
     474
     475threadqprocesstimeout.c:54
     476Interrupt Synchronization
     477This is the return code from threadqprocesstimeout.c:46.  Perhaps
     478restructuring this code will make it easier to combine these.  Hit the
     479normal path first and return.  Then fall into the unusual synchronization
     480path.
     481+++
     482
     483timespecdivide.c:44
     484Simple Test Case
     485Will probably have to bypass the APIs but this is a divide by zero case.
     486+++
     487
     488coretodmsecstoticks.c:23
     489Simple Test Case
     490TOD_MILLISECONDS_TO_TICKS is normally a macro.  Some test needs to undefine
     491the macro so this is executed.  Probably a simple matter of adding this to
     492an existing test in a place that does not impact a configuration table.
     493One line and eliminate 40 bytes.
     494+++
     495
     496coretodusectoticks.c:23
     497Simple Test Case
     498TOD_MICROSECONDS_TO_TICKS is normally a macro.  Some test needs to undefine
     499the macro so this is executed.  Probably a simple matter of adding this to
     500an existing test.   in a place that does not impact a configuration table.
     501One line and eliminate 28 bytes.
     502+++
     503
     504watchdogadjusttochain.c:42
     505Simple Test Case?
     506I think this is a case where there are multiple items on the chain which
     507are at the same time (0 delta).
     508+++
     509
     510watchdoginsert.c:52
     511Interrupt Synchronization
     512This is when a higher priority interrupt inserts a timer while a lower
     513priority interrupt is inserting one.
     514+++
     515
     516watchdogremove.c:41
     517Interrupt Synchronization
     518Remove a watchdog while it is being inserted.
     519+++
     520
     521watchdogremove.c:64
     522Interrupt Synchronization
     523Remove a watchdog while it is being removed.
     524+++
     525
     526watchdogreportchain.c:47
     527Simple Test Simple
     528Need to call report with NULL name.
     529+++
     530
     531userextremoveset.c:34
     532Simple Test Case
     533Remove a user extension set with a context switch extension.  Add to
     534existing extension test.
     535+++
     536
     537killinfo.c:211
     538Simple Test Case
     539Multiple threads interested but find high priority one first.
    315540+++
    316541
Note: See TracChangeset for help on using the changeset viewer.