Exemple #1
0
static void
finalize_chibach() {
  die_unless_initialized();

  debug( "Terminating chibach..." );

  maybe_finalize_openflow_switch_interface();

  finalize_messenger();
  finalize_stat();
  finalize_timer();
  chibach_started = false;
  unlink_pid( get_chibach_pid(), get_chibach_name() );

  unset_chibach_home();
  unset_chibach_tmp();

  xfree( chibach_name );
  chibach_name = NULL;

  xfree( chibach_log );
  chibach_log = NULL;

  initialized = false;
}
Exemple #2
0
static void
test_delete_timer_event() {
  init_timer();

  will_return_count( mock_clock_gettime, 0, -1 );

  char user_data_1[] = "1";
  char user_data_2[] = "2";

  struct itimerspec interval;
  interval.it_value.tv_sec = 1;
  interval.it_value.tv_nsec = 0;
  interval.it_interval.tv_sec = 1;
  interval.it_interval.tv_nsec = 0;
  assert_true( add_timer_event_callback( &interval, mock_timer_event_callback, user_data_1 ) );
  interval.it_value.tv_sec = 2;
  interval.it_interval.tv_sec = 2;
  assert_true( add_timer_event_callback( &interval, mock_timer_event_callback, user_data_2 ) );

  delete_timer_event( mock_timer_event_callback, user_data_1 );

  timer_callback_info *callback = find_timer_callback( mock_timer_event_callback );
  assert_true( callback != NULL );
  assert_true( callback->user_data == user_data_2 );

  delete_timer_event( mock_timer_event_callback, user_data_2 );
  assert_true( find_timer_callback( mock_timer_event_callback ) == NULL );

  finalize_timer();
}
Exemple #3
0
static void
test_timer_event_callback() {
  init_timer();

  will_return_count( mock_clock_gettime, 0, -1 );

  char user_data[] = "It's time!!!";
  struct itimerspec interval;
  interval.it_value.tv_sec = 1;
  interval.it_value.tv_nsec = 1000;
  interval.it_interval.tv_sec = 2;
  interval.it_interval.tv_nsec = 2000;
  assert_true( add_timer_event_callback( &interval, mock_timer_event_callback, user_data ) );

  timer_callback_info *callback = find_timer_callback( mock_timer_event_callback );
  assert_true( callback != NULL );
  assert_true( callback->function == mock_timer_event_callback );
  assert_string_equal( callback->user_data, "It's time!!!" );
  assert_int_equal( callback->interval.tv_sec, 2 );
  assert_int_equal( callback->interval.tv_nsec, 2000 );

  delete_timer_event( mock_timer_event_callback, user_data );
  assert_true( find_timer_callback( mock_timer_event_callback ) == NULL );

  finalize_timer();
}
Exemple #4
0
static void
test_clock_gettime_fail_einval() {
  init_timer();

  char user_data[] = "It's time!!!";
  will_return_count( mock_clock_gettime, -1, -1 );
  assert_false( add_periodic_event_callback( 1, mock_timer_event_callback, user_data ) );

  finalize_timer();
}
Exemple #5
0
static void
test_add_timer_event_callback_fail_with_invalid_timespec() {
  init_timer();

  will_return_count( mock_clock_gettime, 0, -1 );

  char user_data[] = "It's time!!!";
  struct itimerspec interval;
  interval.it_value.tv_sec = 0;
  interval.it_value.tv_nsec = 0;
  interval.it_interval.tv_sec = 0;
  interval.it_interval.tv_nsec = 0;
  assert_false( add_timer_event_callback( &interval, mock_timer_event_callback, user_data ) );

  finalize_timer();
}
Exemple #6
0
static void
test_periodic_event_callback() {
  init_timer();

  char user_data[] = "It's time!!!";
  will_return_count( mock_clock_gettime, 0, -1 );
  assert_true( add_periodic_event_callback( 1, mock_timer_event_callback, user_data ) );

  timer_callback_info *callback = find_timer_callback( mock_timer_event_callback );
  assert_true( callback != NULL );
  assert_true( callback->function == mock_timer_event_callback );
  assert_string_equal( callback->user_data, "It's time!!!" );
  assert_int_equal( callback->interval.tv_sec, 1 );
  assert_int_equal( callback->interval.tv_nsec, 0 );

  delete_timer_event( mock_timer_event_callback, user_data );
  assert_true( find_timer_callback( mock_timer_event_callback ) == NULL );

  finalize_timer();
}