Project

General

Profile

User story #126

Updated by André Neto almost 10 years ago

Implement requirement MARTe-EX-F-1.1.12 based on the original MARTe implementation

Note: In order to support fast multi-threading applications it is important for framework developers to guarantee simple atomic operations without having to require to operating system semaphores.

Note: Add 64 bit native support

Note: Use _intrinsic_ in Visual Studio C++ compiler

h1. Source code files modified

* Source/Core/L0Portability/Architecture/x86_cl/AtomicA.h
* Source/Core/L0Portability/Architecture/x86_gcc/AtomicA.h
* Source/Core/L0Portability/Atomic.cpp
* Source/Core/L0Portability/Atomic.h
* Test/Core/L0Portability/AtomicTest.h
* Test/Core/L0Portability/AtomicTest.cpp
* Test/GTest/AtomicGTest.cpp


h1. Architecture & design review

*Date of the review:* 05/06/2015

*Person who did the review:* Andre' Neto

*Version of architecture & design document:* N/A. This is a support class and does not require formal design in UML.

*Result of review:* N/A

*List of non-conformities:* N/A

h1. Code and documentation review

*Date of the review:* 18/06/2015

*Person who did the review:* Ivan Herrero

*Result of review:* PASS

*List of non-conformities:* N/A

h1. Unit test review

*Date of the review:* 30/06/2015

*Person who did the review:* Andre Neto

*Result of coverage tests review:* PASS [100%]

*Result of functional tests review:* PASS [100%]

*Result of review:* FAIL

*List of non-conformities:* N/A
Manual review of file: Test/Core/L0Portability/AtomicTest.h
Line 57 should read @return true if the testValue is successfully incremented by one.
Line 65 should read @return true if the testValue is successfully decremented by one.
Line 69 should read @return true if when the testValue is 0, it can be successfully set to one.
Line 75 should read @return true if the testValue can be successfully exchanged with a dummy value (1234).
Line 81 should read @return true if the testValue can be successfully added to a dummy value (10).
Line 87 should read @return true if the testValue can be successfully subtracted from a dummy value (10).

Manual review of file: Test/GTest/AtomicGTest.cpp
Boundary conditions for *all the types* should be checked, e.g. for int32 the following tests should be performed testValue = 0x7fffffff, testValue = 0, testValue=-1, testValue=0x80000000, testValue=0xffffffff, testValue=1234, testValue=1233, testValue=1235, testValue=10, testValue=9, testValue=11

Back