diff --git a/src/tests/snapshot.c b/src/tests/snapshot.c index ed5643a7ab..1b7d7ab448 100644 --- a/src/tests/snapshot.c +++ b/src/tests/snapshot.c @@ -32,23 +32,28 @@ static void try_to_remove(void) { struct lxc_container *c; + c = lxc_container_new(RESTNAME, NULL); if (c) { c->snapshot_destroy_all(c); if (c->is_defined(c)) c->destroy(c); + lxc_container_put(c); } + c = lxc_container_new(MYNAME2, NULL); if (c) { c->destroy_with_snapshots(c); lxc_container_put(c); } + c = lxc_container_new(MYNAME, NULL); if (c) { c->snapshot_destroy_all(c); if (c->is_defined(c)) c->destroy(c); + lxc_container_put(c); } } @@ -66,6 +71,7 @@ int main(int argc, char *argv[]) template = argv[1]; try_to_remove(); + c = lxc_container_new(MYNAME, NULL); if (!c) { fprintf(stderr, "%s: %d: failed to load first container\n", __FILE__, __LINE__); @@ -76,15 +82,19 @@ int main(int argc, char *argv[]) fprintf(stderr, "%d: %s thought it was defined\n", __LINE__, MYNAME); (void) c->destroy_with_snapshots(c); } + if (!c->set_config_item(c, "lxc.net.0.type", "empty")) { fprintf(stderr, "%s: %d: failed to set network type\n", __FILE__, __LINE__); goto err; } + c->save_config(c, NULL); + if (!c->createl(c, template, NULL, NULL, 0, NULL)) { fprintf(stderr, "%s: %d: failed to create %s container\n", __FILE__, __LINE__, template); goto err; } + c->load_config(c, NULL); if (c->snapshot(c, NULL) != 0) { @@ -110,13 +120,14 @@ int main(int argc, char *argv[]) fprintf(stderr, "%s: %d: failed listing containers\n", __FILE__, __LINE__); goto err; } + if (strcmp(s->name, "snap0") != 0) { fprintf(stderr, "%s: %d: snapshot had bad name\n", __FILE__, __LINE__); goto err; } - for (i=0; isnapshot_restore(c, "snap0", RESTNAME)) { @@ -152,13 +163,14 @@ int main(int argc, char *argv[]) fprintf(stderr, "%s: %d: failed listing containers\n", __FILE__, __LINE__); goto err; } + if (strcmp(s->name, "snap0") != 0) { fprintf(stderr, "%s: %d: snapshot had bad name\n", __FILE__, __LINE__); goto err; } - for (i=0; isnapshot_restore(c2, "snap0", NULL)) { @@ -177,6 +189,7 @@ int main(int argc, char *argv[]) printf("All tests passed\n"); exit(0); + err: lxc_container_put(c); try_to_remove();