16
16
* limitations under the License.
17
17
*/
18
18
19
- #include " TestEventTriggerHandler.h"
20
-
21
- #include " SoftwareDiagnostics.h"
19
+ #include " GenericEventManagementTestEventTriggerHandler.h"
22
20
23
21
#include < app/clusters/general-diagnostics-server/general-diagnostics-server.h>
24
- #include < platform/CHIPDeviceLayer .h>
22
+ #include < platform/GeneralFaults .h>
25
23
26
24
namespace chip {
27
- namespace DeviceLayer {
28
- namespace Infineon {
29
- namespace CYW30739 {
25
+ namespace app {
30
26
27
+ using namespace chip ::DeviceLayer;
31
28
using namespace chip ::app::Clusters;
32
29
33
- CHIP_ERROR TestEventTriggerHandler::HandleEventTrigger (uint64_t eventTrigger)
34
- {
35
- switch (eventTrigger)
36
- {
37
- case kFillUpEventLoggingBuffer :
38
- return HandleFillUpEventLoggingBufferEventTriger ();
39
- default :
40
- return CHIP_ERROR_INVALID_ARGUMENT;
41
- }
42
- }
43
-
44
- CHIP_ERROR TestEventTriggerHandler::HandleFillUpEventLoggingBufferEventTriger ()
30
+ CHIP_ERROR GenericEventManagementTestEventTriggerHandler::HandleFillUpEventLoggingBufferEventTriger ()
45
31
{
46
32
/* Create a fake hardware fault list. */
47
33
GeneralFaults<kMaxHardwareFaults > hardwareFaults;
@@ -58,23 +44,29 @@ CHIP_ERROR TestEventTriggerHandler::HandleFillUpEventLoggingBufferEventTriger()
58
44
GeneralDiagnosticsServer::Instance ().OnHardwareFaultsDetect (hardwareFaults, hardwareFaults);
59
45
}
60
46
61
- /* Create a fake fault message. */
62
- constexpr uint64_t kEncodingOverhead = 0x40 ;
63
- constexpr uint64_t kMaxEventLoggingInfoSize = CHIP_DEVICE_CONFIG_EVENT_LOGGING_INFO_BUFFER_SIZE - kEncodingOverhead ;
64
- static char recordString[kMaxEventLoggingInfoSize + 1 ];
65
- memset (recordString, 0x55 , kMaxEventLoggingInfoSize );
66
- recordString[kMaxEventLoggingInfoSize ] = ' \0 ' ;
47
+ /* Fill up the info logging buffer. */
48
+ FillUpEventLoggingBufferWithFakeSoftwareFault (CHIP_DEVICE_CONFIG_EVENT_LOGGING_INFO_BUFFER_SIZE);
67
49
68
- /* Fill up the info logging buffer by a software fault. */
69
- OnSoftwareFaultEventHandler (recordString);
70
-
71
- /* Fill up the debug logging buffer by a software fault. */
72
- OnSoftwareFaultEventHandler (recordString);
50
+ /* Fill up the debug logging buffer. */
51
+ FillUpEventLoggingBufferWithFakeSoftwareFault (CHIP_DEVICE_CONFIG_EVENT_LOGGING_DEBUG_BUFFER_SIZE);
73
52
74
53
return CHIP_NO_ERROR;
75
54
}
76
55
77
- } // namespace CYW30739
78
- } // namespace Infineon
79
- } // namespace DeviceLayer
56
+ void GenericEventManagementTestEventTriggerHandler::FillUpEventLoggingBufferWithFakeSoftwareFault (size_t bufferSize)
57
+ {
58
+ /* Create a fake fault message. */
59
+ constexpr size_t kEncodingOverhead = 0x40 ;
60
+ const size_t recordSize = bufferSize - kEncodingOverhead ;
61
+ char * recordBuffer = static_cast <char *>(Platform::MemoryAlloc (recordSize));
62
+ VerifyOrReturn (recordBuffer != nullptr );
63
+ std::unique_ptr<char , decltype (&Platform::MemoryFree)> recordString (recordBuffer, &Platform::MemoryFree);
64
+ memset (recordString.get (), 0x55 , recordSize);
65
+ recordString.get ()[recordSize - 1 ] = ' \0 ' ;
66
+
67
+ /* Fill up the logging buffer by a software fault. */
68
+ TriggerSoftwareFaultEvent (recordString.get ());
69
+ }
70
+
71
+ } // namespace app
80
72
} // namespace chip
0 commit comments