test.c 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. #include "et.h" /* ET: embedded test */
  2. /* includes for the CUT... */
  3. #include "qf_port.h"
  4. #include "qassert.h" /* QP embedded systems-friendly assertions */
  5. #ifdef Q_SPY /* software tracing enabled? */
  6. #include "qs_port.h" /* QS/C port from the port directory */
  7. #else
  8. #include "qs_dummy.h" /* QS/C dummy (inactive) interface */
  9. #endif
  10. enum { RX_SIZE = 8 };
  11. static uint8_t qsBuf[100]; /* buffer for QS-TX channel */
  12. static uint8_t qsRxBuf[RX_SIZE]; /* buffer for QS-RX channel */
  13. void setup(void) {
  14. }
  15. void teardown(void) {
  16. }
  17. /* test group --------------------------------------------------------------*/
  18. TEST_GROUP("QS/RX") {
  19. QS_initBuf(qsBuf, sizeof(qsBuf));
  20. TEST("QS-RX initialization") {
  21. QS_rxInitBuf(qsRxBuf, RX_SIZE);
  22. VERIFY(RX_SIZE - 1 == QS_rxGetNfree());
  23. }
  24. TEST("QS-RX putting 3") {
  25. for (uint8_t n = 0U; n < 3U; ++n) {
  26. VERIFY(QS_RX_PUT(n + 1U));
  27. }
  28. VERIFY(RX_SIZE - 1 - 3 == QS_rxGetNfree());
  29. }
  30. TEST("QS-RX QS_rxParse") {
  31. QS_rxParse();
  32. VERIFY(RX_SIZE - 1 == QS_rxGetNfree());
  33. }
  34. TEST("QS-RX putting 6") {
  35. for (uint8_t n = 0U; n < 6U; ++n) {
  36. VERIFY(QS_RX_PUT(n + 1U));
  37. }
  38. VERIFY(RX_SIZE - 1 - 6 == QS_rxGetNfree());
  39. }
  40. TEST("QS-RX putting 3 more") {
  41. VERIFY(QS_RX_PUT(0x7U));
  42. VERIFY(false == QS_RX_PUT(0x8U));
  43. VERIFY(false == QS_RX_PUT(0x9U));
  44. VERIFY(0 == QS_rxGetNfree());
  45. }
  46. } /* TEST_GROUP() */
  47. /* =========================================================================*/
  48. /* dependencies for the CUT ... */
  49. uint_fast8_t QF_intLock_;
  50. /*..........................................................................*/
  51. void QF_poolInit(void * const poolSto, uint_fast32_t const poolSize,
  52. uint_fast16_t const evtSize)
  53. {
  54. (void)poolSto;
  55. (void)poolSize;
  56. (void)evtSize;
  57. }
  58. /*..........................................................................*/
  59. uint_fast16_t QF_poolGetMaxBlockSize(void) {
  60. return 0U;
  61. }
  62. /*..........................................................................*/
  63. void QActive_publish_(QEvt const * const e,
  64. void const * const sender, uint_fast8_t const qs_id)
  65. {
  66. (void)e;
  67. (void)sender;
  68. (void)qs_id;
  69. }
  70. /*..........................................................................*/
  71. void QTimeEvt_tick_(uint_fast8_t const tickRate, void const * const sender) {
  72. (void)tickRate;
  73. (void)sender;
  74. }
  75. /*..........................................................................*/
  76. QEvt *QF_newX_(uint_fast16_t const evtSize,
  77. uint_fast16_t const margin, enum_t const sig)
  78. {
  79. (void)evtSize;
  80. (void)margin;
  81. (void)sig;
  82. return (QEvt *)0;
  83. }
  84. /*..........................................................................*/
  85. /** @static @public @memberof QF */
  86. void QF_gc(QEvt const * const e) {
  87. (void)e;
  88. }
  89. /*..........................................................................*/
  90. /** @static @private @memberof QF */
  91. QActive *QActive_registry_[QF_MAX_ACTIVE + 1U];
  92. /*..........................................................................*/
  93. Q_NORETURN Q_onAssert(char const * const module, int_t const location) {
  94. ET_fail_("Q_onAssert", module, location);
  95. for (;;) { /* explicitly make it "noreturn" */
  96. }
  97. }
  98. /*--------------------------------------------------------------------------*/
  99. #ifdef Q_SPY
  100. void QS_onCleanup(void) {
  101. }
  102. /*..........................................................................*/
  103. void QS_onReset(void) {
  104. }
  105. /*..........................................................................*/
  106. void QS_onFlush(void) {
  107. }
  108. /*..........................................................................*/
  109. QSTimeCtr QS_onGetTime(void) {
  110. return (QSTimeCtr)0U;
  111. }
  112. /*..........................................................................*/
  113. void QS_onCommand(uint8_t cmdId, uint32_t param1,
  114. uint32_t param2, uint32_t param3)
  115. {
  116. (void)cmdId;
  117. (void)param1;
  118. (void)param2;
  119. (void)param3;
  120. }
  121. #endif /* Q_SPY */