void
tearDown(void) {
  struct table_features *f;
  struct table_property *p;
  struct next_table_id *n;
  struct oxm_id *o;
  struct experimenter_data *e;

  TEST_ASSERT_NOT_NULL(dpmgr);
  TEST_ASSERT_NOT_NULL(bridge);
  TEST_ASSERT_NOT_NULL(flowdb);

  /*
   * Inline expansion from outside dpmgr.
   *
   * Stolen form: src/agent/ofp_table_features_handler.c
   */
  while ((f = TAILQ_FIRST(&features_list)) != NULL) {
    while ((p = TAILQ_FIRST(&f->table_property_list)) != NULL) {
      instruction_list_entry_free(&p->instruction_list);

      /* next_table_id_list_entry_free(&p->next_table_id_list); */
      while ((n = TAILQ_FIRST(&p->next_table_id_list)) != NULL) {
        TAILQ_REMOVE(&p->next_table_id_list, n, entry);
        free(n);
      }

      action_list_entry_free(&p->action_list);

      /* oxm_id_list_entry_free(&p->oxm_id_list); */
      while ((o = TAILQ_FIRST(&p->oxm_id_list)) != NULL) {
        TAILQ_REMOVE(&p->oxm_id_list, o, entry);
        free(o);
      }

      /* experimenter_data_list_entry_free(&p->experimenter_data_list); */
      while ((e = TAILQ_FIRST(&p->experimenter_data_list)) != NULL) {
        TAILQ_REMOVE(&p->experimenter_data_list, e, entry);
        free(e);
      }

      TAILQ_REMOVE(&f->table_property_list, p, entry);
      free(p);
    }
    TAILQ_REMOVE(&features_list, f, entry);
    free(f);
  }
  TAILQ_INIT(&features_list);

  TEST_ASSERT_TRUE(LAGOPUS_RESULT_OK == dpmgr_bridge_delete(dpmgr,
                   bridge_name));
  dpmgr_free(dpmgr);

  flowdb = NULL;
  bridge = NULL;
  dpmgr = NULL;
}
Beispiel #2
0
void
tearDown(void) {
  TEST_ASSERT_NOT_NULL(dpmgr);
  TEST_ASSERT_NOT_NULL(bridge);
  TEST_ASSERT_TRUE(LAGOPUS_RESULT_OK == dpmgr_bridge_delete(dpmgr,
                   bridge_name));
  dpmgr_free(dpmgr);
  bridge = NULL;
  dpmgr = NULL;
}
Beispiel #3
0
void
tearDown(void) {
  TEST_ASSERT_NOT_NULL(dpmgr);
  TEST_ASSERT_NOT_NULL(bridge);
  TEST_ASSERT_NOT_NULL(flowdb);
  TEST_ASSERT_NOT_NULL(ports);
  TEST_ASSERT_NOT_NULL(group_table);

  TEST_ASSERT_TRUE(LAGOPUS_RESULT_OK == dpmgr_bridge_delete(dpmgr, bridge_name));
  ports_free(ports);
  group_table_free(group_table);
  dpmgr_free(dpmgr);

  ports = NULL;
  group_table = NULL;
  flowdb = NULL;
  bridge = NULL;
  dpmgr = NULL;
}