event-test.cpp 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. #include "test_common.h"
  2. extern PikaEventListener* g_pika_device_event_listener;
  3. #if PIKA_EVENT_ENABLE
  4. TEST(event, gpio) {
  5. /* init */
  6. PikaObj* pikaMain = newRootObj("pikaMain", New_PikaMain);
  7. /* run */
  8. pikaVM_runSingleFile(pikaMain, "../../examples/TemplateDevice/gpio_cb.py");
  9. #define EVENT_SIGAL_IO_RISING_EDGE 0x01
  10. #define EVENT_SIGAL_IO_FALLING_EDGE 0x02
  11. #define GPIO_PA8_EVENT_ID 0x08
  12. /* simulate run in the call back */
  13. pks_eventLisener_sendSignal(g_pika_device_event_listener, GPIO_PA8_EVENT_ID,
  14. EVENT_SIGAL_IO_RISING_EDGE);
  15. pks_eventLisener_sendSignal(g_pika_device_event_listener, GPIO_PA8_EVENT_ID,
  16. EVENT_SIGAL_IO_FALLING_EDGE);
  17. /* collect */
  18. /* assert */
  19. EXPECT_STREQ(log_buff[1], "get rising edge!\r\n");
  20. EXPECT_STREQ(log_buff[0], "get falling edge!\r\n");
  21. /* deinit */
  22. obj_deinit(pikaMain);
  23. EXPECT_EQ(pikaMemNow(), 0);
  24. }
  25. TEST(event, remove_regist) {
  26. /* init */
  27. PikaObj* pikaMain = newRootObj("pikaMain", New_PikaMain);
  28. /* run */
  29. pks_eventLisener_init(&g_pika_device_event_listener);
  30. PikaObj* testobj = newNormalObj(New_TinyObj);
  31. pks_eventLicener_registEvent(g_pika_device_event_listener, 0, testobj);
  32. EXPECT_EQ(testobj->refcnt, 2);
  33. pks_eventLicener_removeEvent(g_pika_device_event_listener, 0);
  34. EXPECT_EQ(testobj->refcnt, 1);
  35. /* deinit */
  36. obj_deinit(pikaMain);
  37. obj_deinit(testobj);
  38. pks_eventLisener_deinit(&g_pika_device_event_listener);
  39. EXPECT_EQ(pikaMemNow(), 0);
  40. }
  41. #endif