User story #118
Updated by Ivan Herrero almost 10 years ago
Implement requirement MARTe-EX-D-1.3.2 based on the original MARTe implementation
Note: The development of multi-thread real-time applications usually requires that shared resources are protected using barriers, so that the access to the shared resource is blocked until a given event occurs. When this event occurs, all the threads are allowed to concurrently interact with the shared resource.
h1. Source code files modified
* Source/Core/L0Portability/EventSem.cpp
* Source/Core/L0Portability/EventSem.h
* Source/Core/L0Portability/OperatingSystem/Linux/EventSemOS.h
* Source/Core/L0Portability/OperatingSystem/Windows/EventSemOS.h
* Test/Core/L0Portability/EventSemTest.cpp
* Test/Core/L0Portability/EventSemTest.h
* Test/GTest/EventSemGTest.cpp
h1. Architecture & design review
*Date of the review:* 12/06/2015
*Person who did the review:* André Neto
*Version of architecture & design document:* N/A. As per the original MARTe implementation, this is a support function 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:* 25/06/2015
*Person who did the review:* Ivan Herrero
*Result of review:* SUCCESS
*List of non-conformities:* N/A
h1. Unit test review
*Date of the review:* 02/07/2015
*Person who did the review:* Ivan Herrero
*Result of coverage tests review:* FAIL
*Result of functional tests review:* FAIL
*Result of review:* FAIL
*List of non-conformities:*
* Test/Core/L0Portability/EventSemTest.h
It lacks tests for default constructor and for destructor.
The method MultiThreadedTestWaitCallback has two comments as documentation.
The methods MultiThreadedTestWaitCallback and PosterThreadCallback do not have any @brief tag.
The test TestWaitSimple naming is not consistent (method WaitSimple does not exist).
The same apply to the others TestWait* methods and for TestPost*.
The methods ResetWait, Post, and Reset, do not have its own test method.
This test class has an attribute named eventSem which is recycled between test procedures. It should not be recycled, otherwise previous executions of other test procedures could mask errors (the test class is actually sharing the state of an EventSem instance between test procedures, when each test should receive a fresh testing data set).
* Test/Core/L0Portability/EventSemTest.cpp
The file description's date have an incorrect format.
* Test/GTest/EventSemGTest.cpp
It does not follow the structure of the code template.
* Class EventSem
The test procedure EventSemTest::TestClose fails.
Note: The development of multi-thread real-time applications usually requires that shared resources are protected using barriers, so that the access to the shared resource is blocked until a given event occurs. When this event occurs, all the threads are allowed to concurrently interact with the shared resource.
h1. Source code files modified
* Source/Core/L0Portability/EventSem.cpp
* Source/Core/L0Portability/EventSem.h
* Source/Core/L0Portability/OperatingSystem/Linux/EventSemOS.h
* Source/Core/L0Portability/OperatingSystem/Windows/EventSemOS.h
* Test/Core/L0Portability/EventSemTest.cpp
* Test/Core/L0Portability/EventSemTest.h
* Test/GTest/EventSemGTest.cpp
h1. Architecture & design review
*Date of the review:* 12/06/2015
*Person who did the review:* André Neto
*Version of architecture & design document:* N/A. As per the original MARTe implementation, this is a support function 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:* 25/06/2015
*Person who did the review:* Ivan Herrero
*Result of review:* SUCCESS
*List of non-conformities:* N/A
h1. Unit test review
*Date of the review:* 02/07/2015
*Person who did the review:* Ivan Herrero
*Result of coverage tests review:* FAIL
*Result of functional tests review:* FAIL
*Result of review:* FAIL
*List of non-conformities:*
* Test/Core/L0Portability/EventSemTest.h
It lacks tests for default constructor and for destructor.
The method MultiThreadedTestWaitCallback has two comments as documentation.
The methods MultiThreadedTestWaitCallback and PosterThreadCallback do not have any @brief tag.
The test TestWaitSimple naming is not consistent (method WaitSimple does not exist).
The same apply to the others TestWait* methods and for TestPost*.
The methods ResetWait, Post, and Reset, do not have its own test method.
This test class has an attribute named eventSem which is recycled between test procedures. It should not be recycled, otherwise previous executions of other test procedures could mask errors (the test class is actually sharing the state of an EventSem instance between test procedures, when each test should receive a fresh testing data set).
* Test/Core/L0Portability/EventSemTest.cpp
The file description's date have an incorrect format.
* Test/GTest/EventSemGTest.cpp
It does not follow the structure of the code template.
* Class EventSem
The test procedure EventSemTest::TestClose fails.