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 93 57 should read @brief Tests @return true if the increment function on numbers on testValue is successfully incremented by one.
Line 65 should read @return true if the boundary conditions (0xff.. 0x00... 0x80... 0x7f..) of testValue is successfully decremented by one.
Line 69 should read @return true if when the type being tested testValue is 0, it can be successfully set to one.
Line 99 75 should read @brief Tests @return true if the increment function on numbers on testValue can be successfully exchanged with a dummy value (1234).
Line 81 should read @return true if the boundary conditions (0xff.. 0x00... 0x80... 0x7f..) 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 the type being tested file: Test/GTest/AtomicGTest.cpp
The coding style was not applied to Boundary conditions for *all the file.
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
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 93 57 should read @brief Tests @return true if the increment function on numbers on testValue is successfully incremented by one.
Line 65 should read @return true if the boundary conditions (0xff.. 0x00... 0x80... 0x7f..) of testValue is successfully decremented by one.
Line 69 should read @return true if when the type being tested testValue is 0, it can be successfully set to one.
Line 99 75 should read @brief Tests @return true if the increment function on numbers on testValue can be successfully exchanged with a dummy value (1234).
Line 81 should read @return true if the boundary conditions (0xff.. 0x00... 0x80... 0x7f..) 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 the type being tested file: Test/GTest/AtomicGTest.cpp
The coding style was not applied to Boundary conditions for *all the file.
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