diff options
author | Ewan Mellor <ewan@xensource.com> | 2006-12-15 11:00:04 +0000 |
---|---|---|
committer | Ewan Mellor <ewan@xensource.com> | 2006-12-15 11:00:04 +0000 |
commit | 7bdf0f5b26adf2d42131ac25a48384242d5bb5f5 (patch) | |
tree | e6084083101150d1d17e1b14e4eb6aed028ad4ed | |
parent | 160ed4756b5c4be2b144f30b0e6ad221494cfdce (diff) | |
download | xen-7bdf0f5b26adf2d42131ac25a48384242d5bb5f5.tar.gz xen-7bdf0f5b26adf2d42131ac25a48384242d5bb5f5.tar.bz2 xen-7bdf0f5b26adf2d42131ac25a48384242d5bb5f5.zip |
Added a test for xen_vm_get_power_state.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
-rw-r--r-- | tools/libxen/test/test_bindings.c | 58 |
1 files changed, 49 insertions, 9 deletions
diff --git a/tools/libxen/test/test_bindings.c b/tools/libxen/test/test_bindings.c index 1fd06648a2..1e10ef4223 100644 --- a/tools/libxen/test/test_bindings.c +++ b/tools/libxen/test/test_bindings.c @@ -58,7 +58,8 @@ typedef struct } xen_comms; -static void create_new_vm(xen_session *session); +static xen_vm create_new_vm(xen_session *session); +static void print_vm_power_state(xen_session *session, xen_vm vm); static size_t @@ -244,7 +245,7 @@ int main(int argc, char **argv) xen_string_string_map_free(versions); - create_new_vm(session); + xen_vm new_vm = create_new_vm(session); if (!session->ok) { /* Error has been logged, just clean up. */ @@ -252,6 +253,16 @@ int main(int argc, char **argv) return 1; } + print_vm_power_state(session, new_vm); + if (!session->ok) + { + /* Error has been logged, just clean up. */ + xen_vm_free(new_vm); + CLEANUP; + return 1; + } + + xen_vm_free(new_vm); CLEANUP; return 0; @@ -264,7 +275,7 @@ int main(int argc, char **argv) * allocation patterns can be used, as long as the allocation and free are * paired correctly. */ -static void create_new_vm(xen_session *session) +static xen_vm create_new_vm(xen_session *session) { xen_cpu_feature_set *empty_cpu_feature_set = xen_cpu_feature_set_alloc(0); @@ -313,7 +324,7 @@ static void create_new_vm(xen_session *session) { fprintf(stderr, "VM creation failed.\n"); print_error(session); - return; + return NULL; } @@ -327,7 +338,7 @@ static void create_new_vm(xen_session *session) fprintf(stderr, "SR lookup failed.\n"); print_error(session); xen_vm_free(vm); - return; + return NULL; } xen_sr_record_opt sr_record = @@ -354,7 +365,7 @@ static void create_new_vm(xen_session *session) xen_sr_set_free(srs); xen_vm_free(vm); - return; + return NULL; } @@ -384,7 +395,7 @@ static void create_new_vm(xen_session *session) xen_vdi_free(vdi0); xen_sr_set_free(srs); xen_vm_free(vm); - return; + return NULL; } char *vm_uuid; @@ -407,7 +418,7 @@ static void create_new_vm(xen_session *session) xen_vdi_free(vdi0); xen_sr_set_free(srs); xen_vm_free(vm); - return; + return NULL; } fprintf(stderr, @@ -420,5 +431,34 @@ static void create_new_vm(xen_session *session) xen_vbd_free(vbd0); xen_vdi_free(vdi0); xen_sr_set_free(srs); - xen_vm_free(vm); + + return vm; +} + + +/** + * Print the power state for the given VM. + */ +static void print_vm_power_state(xen_session *session, xen_vm vm) +{ + char *vm_uuid; + enum xen_vm_power_state power_state; + + if (!xen_vm_get_uuid(session, &vm_uuid, vm)) + { + print_error(session); + return; + } + + if (!xen_vm_get_power_state(session, &power_state, vm)) + { + xen_uuid_free(vm_uuid); + print_error(session); + return; + } + + printf("VM %s power state is %s.\n", vm_uuid, + xen_vm_power_state_to_string(power_state)); + + xen_uuid_free(vm_uuid); } |