60#include "Mock_rkhsm.h"
61#include "Mock_rkhsma.h"
63#include "Mock_rkhport.h"
64#include "Mock_rkhassert.h"
65#include "Mock_rkhtrc_out.h"
66#include "Mock_rkhtrc_stream.h"
67#include "Mock_rkhtrc_filter.h"
74static RKHROM RKH_ROM_T base = {0, 0,
"receiver"};
78static RKH_ST_T state = {{RKH_BASIC,
"state"}};
79static RKH_ST_T pseudoState = {{RKH_CHOICE,
"pseudoState"}};
85expectU8(rui8_t expectData)
87 chk = (rui8_t)(chk + expectData);
91 rkh_trc_put_Expect((rui8_t)(expectData ^
RKH_XOR));
95 rkh_trc_put_Expect(expectData);
100expectHeader(rui8_t evtId, rui8_t nSeq, rui32_t tStamp,
int isCritical)
104 rkh_enter_critical_Expect();
108 rkh_trc_getts_ExpectAndReturn(tStamp);
109 expectU8((rui8_t)tStamp);
110 expectU8((rui8_t)(tStamp >> 8));
111 expectU8((rui8_t)(tStamp >> 16));
112 expectU8((rui8_t)(tStamp >> 24));
116expectObjectAddress(
void *obj)
120 value = (rui32_t)obj;
121 expectU8((rui8_t)value);
122 expectU8((rui8_t)(value >> 8));
123 expectU8((rui8_t)(value >> 16));
124 expectU8((rui8_t)(value >> 24));
128expectString(
const char *str)
132 for (p = str; *p !=
'\0'; ++p)
134 expectU8((rui8_t)*p);
136 expectU8((rui8_t)
'\0');
140expectTrailer(
int isCritical)
142 chk = (rui8_t)(~chk + 1);
145 rkh_trc_put_IgnoreArg_b();
148 rkh_exit_critical_Expect();
153expectU32(rui32_t value)
155 expectU8((rui8_t)value);
156 expectU8((rui8_t)(value >> 8));
157 expectU8((rui8_t)(value >> 16));
158 expectU8((rui8_t)(value >> 24));
162expectU16(rui16_t value)
164 expectU8((rui8_t)value);
165 expectU8((rui8_t)(value >> 8));
172 rkh_trcStream_init_Expect();
179 Mock_rkhassert_Init();
180 Mock_rkhtrc_out_Init();
181 Mock_rkhtrc_stream_Init();
182 Mock_rkhtrc_filter_Init();
184 receiver.
sm.romrkh = &base;
195 Mock_rkhsma_Verify();
197 Mock_rkhport_Verify();
198 Mock_rkhassert_Verify();
199 Mock_rkhtrc_out_Verify();
200 Mock_rkhtrc_stream_Verify();
201 Mock_rkhtrc_filter_Verify();
202 Mock_rkhsm_Destroy();
203 Mock_rkhsma_Destroy();
205 Mock_rkhport_Destroy();
206 Mock_rkhassert_Destroy();
207 Mock_rkhtrc_out_Destroy();
208 Mock_rkhtrc_stream_Destroy();
209 Mock_rkhtrc_filter_Destroy();
219test_InsertRecordHeader(
void)
221 rkh_trc_put_Expect(8);
222 rkh_trc_put_Expect(0);
224 rkh_trc_getts_ExpectAndReturn(0x01234567);
225 rkh_trc_put_Expect(0x67);
226 rkh_trc_put_Expect(0x45);
227 rkh_trc_put_Expect(0x23);
228 rkh_trc_put_Expect(0x01);
234test_InsertRecordEnd(
void)
239 checksum = (rui8_t)(~checksum + 1);
240 rkh_trc_put_Expect(checksum);
247test_InsertU8Value(
void)
251 rkh_trc_put_Expect(value);
256test_InsertEscapedValues(
void)
260 rkh_trc_put_Expect((rui8_t)(value ^
RKH_XOR));
266 rkh_trc_put_Expect((rui8_t)(value ^
RKH_XOR));
272test_InsertU16Value(
void)
274 rui16_t value = 0x1234;
276 rkh_trc_put_Expect(0x34);
277 rkh_trc_put_Expect(0x12);
282test_InsertU32Value(
void)
284 rui32_t value = 0x12345678;
286 rkh_trc_put_Expect(0x78);
287 rkh_trc_put_Expect(0x56);
288 rkh_trc_put_Expect(0x34);
289 rkh_trc_put_Expect(0x12);
296test_InsertString(
void)
298 const char *expected =
"Hello world!";
301 for (p = expected; *p !=
'\0'; ++p)
303 rkh_trc_put_Expect(*p);
305 rkh_trc_put_Expect(
'\0');
311test_InsertObject(
void)
314 const char *objName =
"obj";
316 expectHeader(evtId, 0, 0x12345678, 1);
317 expectObjectAddress(&obj);
318 expectString(objName);
320 rkh_trc_flush_Expect();
326test_InsertSignal(
void)
330 const char *signalName =
"buttonPressed";
332 expectHeader(evtId, 0, 0x12345678, 1);
334 expectString(signalName);
336 rkh_trc_flush_Expect();
345 expectObjectAddress(&receiver);
346 expectString(receiver.
sm.romrkh->name);
348 rkh_trc_flush_Expect();
354test_InsertState(
void)
358 state.
base.name =
"state";
361 expectObjectAddress(&receiver);
362 expectObjectAddress(&state);
363 expectString(
"state");
365 rkh_trc_flush_Expect();
371test_InsertRecord(
void)
376test_InsertFwkEpoolRecord(
void)
379 const char *poolName =
"ep0";
383 expectString(poolName);
385 rkh_trc_flush_Expect();
387 RKH_TR_FWK_EPOOL(poolId, poolName);
391test_InsertFwkActorRecord(
void)
394 const char *actorName =
"Actor";
397 expectObjectAddress(&actor);
398 expectString(actorName);
400 rkh_trc_flush_Expect();
402 RKH_TR_FWK_ACTOR(&actor, actorName);
406test_InsertSmaActivateRecord(
void)
409 rkh_trc_symFil_isoff_ExpectAndReturn(RKHFilterSma,
RKH_GET_PRIO(&receiver),
412 expectObjectAddress(&receiver);
421test_InsertSmaGetRecord(
void)
423 rui8_t nElem = 4, nMin = 2;
426 rkh_trc_symFil_isoff_ExpectAndReturn(RKHFilterSma,
RKH_GET_PRIO(&receiver),
428 rkh_trc_symFil_isoff_ExpectAndReturn(RKHFilterSignal, event.
e,
RKH_TRUE);
430 expectObjectAddress(&receiver);
432 expectU8(event.
pool);
433 expectU8(event.
nref);
438 RKH_TR_SMA_GET(&receiver, &event, event.
pool, event.
nref, nElem, nMin);
442test_InsertSmaPostFifoRecord(
void)
444 rui8_t nElem = 4, nMin = 2;
447 rkh_trc_symFil_isoff_ExpectAndReturn(RKHFilterSma,
RKH_GET_PRIO(&receiver),
449 rkh_trc_symFil_isoff_ExpectAndReturn(RKHFilterSignal, event.
e,
RKH_TRUE);
451 expectObjectAddress(&receiver);
453 expectObjectAddress(&sender);
454 expectU8(event.
pool);
455 expectU8(event.
nref);
460 RKH_TR_SMA_FIFO(&receiver, &event, &sender, event.
pool, event.
nref, nElem,
465test_InsertSmaPostLifoRecord(
void)
467 rui8_t nElem = 4, nMin = 2;
470 rkh_trc_symFil_isoff_ExpectAndReturn(RKHFilterSma,
RKH_GET_PRIO(&receiver),
472 rkh_trc_symFil_isoff_ExpectAndReturn(RKHFilterSignal, event.
e,
RKH_TRUE);
474 expectObjectAddress(&receiver);
476 expectObjectAddress(&sender);
477 expectU8(event.
pool);
478 expectU8(event.
nref);
483 RKH_TR_SMA_LIFO(&receiver, &event, &sender, event.
pool, event.
nref, nElem,
488test_InsertFwkAeRecord(
void)
494 expectU8(event.
pool - 1);
495 expectU8(event.
nref);
498 expectObjectAddress(&receiver);
501 RKH_TR_FWK_AE(16, &event, 5, 2, &receiver);
505test_InsertFwkGcrRecord(
void)
510 expectU8(event.
pool - 1);
511 expectU8(event.
nref);
514 expectObjectAddress(&receiver);
517 RKH_TR_FWK_GCR(&event, 5, 2, &receiver);
521test_InsertFwkEpregRecord(
void)
531 RKH_TR_FWK_EPREG(1, 128, 32, 4);
535test_InsertFwkStateRecord(
void)
538 expectObjectAddress(&receiver);
539 expectObjectAddress(&state);
540 expectString(state.
base.name);
542 rkh_trc_flush_Expect();
544 RKH_TR_FWK_STATE(&receiver, &state);
548test_InsertFwkPseudoStateRecord(
void)
551 expectObjectAddress(&receiver);
552 expectObjectAddress(&pseudoState);
553 expectString(pseudoState.
base.name);
555 rkh_trc_flush_Expect();
557 RKH_TR_FWK_PSTATE(&receiver, &pseudoState);
561test_InsertDispatchRecordWithInvalidSignal(
void)
566 rkh_trc_symFil_isoff_ExpectAndReturn(RKHFilterSma,
RKH_GET_PRIO(&receiver),
569 expectObjectAddress(&receiver);
571 expectObjectAddress(&state);
574 RKH_TR_SM_DCH(&receiver, &event, &state);
#define RKH_TRUE
Standard define.
#define RKH_COMPLETION_EVENT
This macro is used to indicate the completion event.
#define RKH_GET_PRIO(_ao)
Retrieves the priority number of an registered active object (SMA).
#define RKH_TE_FWK_PSTATE
Defines the trace records.
void rkh_trc_obj(RKH_TE_ID_T tre, rui8_t *obj, const char *obj_name)
Output object symbol record.
void rkh_trc_begin(RKH_TE_ID_T eid)
Store the trace record header in the stream.
void rkh_trc_ao(void *ao)
Output active object (AO) symbol record.
void rkh_trc_end(void)
Terminate the recorded trace event.
void rkh_trc_str(const char *s)
Store a string terminated in '\0' into the current trace event buffer without format information.
void rkh_trc_u8(rui8_t d)
Store a 8-bit data into the current trace event buffer without format information.
void rkh_trc_init(void)
Initializes the RKH's trace record service.
void rkh_trc_sig(RKH_SIG_T sig, const char *sig_name)
Output signal symbol record.
void rkh_trc_u16(rui16_t d)
Store a 16-bit data into the current trace event buffer without format information.
void rkh_trc_state(void *ao, rui8_t *state)
Output state symbol record.
void rkh_trc_u32(rui32_t d)
Store a 32-bit data into the current trace event buffer without format information.
Represents events without parameters.
RKH_SIG_T e
Signal of the event instance.
rui8_t nref
Attribute of dynamic events.
rui8_t pool
Attribute of dynamic events (0 for static event).
Describes the SMA (active object in UML).
RKH_SM_T sm
State machine.
Describes the common properties of regular states (basic, composite, and submachine).
RKH_BASE_T base
Maintains the basic information of state.