/* This test case fails since decrement_value() doesn't assert on a NULL
 * pointer. */
void decrement_value_fail(void **state) {
    expect_assert_failure(decrement_value(NULL));
}
Beispiel #2
0
/*----------------------------------------------------------------------------*/
static int spin_handler(void *data, event_t evt, int param1, void *param2)
{
  (void) data; //Prevent unused warning
  (void) param1;
  (void) param2;
  switch(evt)
  {
  case IDLE_EVENT:
    if(timeout_riched(&spin_data.timeout, sys_tick_count()))
    {
      timeout_set(&spin_data.timeout, CURSOR_TIME, sys_tick_count());
      spin_data.cursor_active = !spin_data.cursor_active;
      draw_cursor();
    }

    if(spin_data.active_key == KEY_UP && timeout_riched(&spin_data.key_timeout, sys_tick_count()))
    {
      if(!increment_value())
        spin_data.active_key = 0;
      else
        timeout_set(&spin_data.key_timeout, KEY_REPEAT_TIME, sys_tick_count());
    }

    if(spin_data.active_key == KEY_DOWN && timeout_riched(&spin_data.key_timeout, sys_tick_count()))
    {
      if(!decrement_value())
        spin_data.active_key = 0;
      else
        timeout_set(&spin_data.key_timeout, KEY_REPEAT_TIME, sys_tick_count());
    }
    break;

  case MODE_SET_EVENT:
    if(!param1) //Mode exit
      return 0;
    display();
    break;

  case KEY_PRESS_EVENT:
    if(param1 == KEY_UP)
    {
      if(increment_value())
      {
        spin_data.active_key = KEY_UP;
        timeout_set(&spin_data.key_timeout, KEY_DELAY_TIME, sys_tick_count());
      }
    }

    if(param1 == KEY_DOWN)
    {
      if(decrement_value())
      {
        spin_data.active_key = KEY_DOWN;
        timeout_set(&spin_data.key_timeout, KEY_DELAY_TIME, sys_tick_count());
      }
    }

    if(param1 == KEY_STOP || param1 == KEY_MENU)
    {
      start_work_menu();
    }

    if(param1 == KEY_OK)
    {
      *spin_data.value = value;
      pop_event_handler();
    }
    break;

  case KEY_RELEASE_EVENT:
    spin_data.active_key = 0;
    break;

  default:
    break;
  }
  return 0;
}