2008-01-29 21:15:54 +03:00
# include <config.h>
2007-12-07 13:08:06 +03:00
2006-09-21 13:15:33 +04:00
# include <stdio.h>
# include <stdlib.h>
2011-11-19 01:21:54 +04:00
# include <sys/utsname.h>
2007-12-07 17:38:34 +03:00
2007-03-07 00:55:44 +03:00
# include "internal.h"
2011-07-08 01:53:41 +04:00
# include "testutils.h"
2012-12-12 20:27:01 +04:00
# include "vircommand.h"
2006-11-09 13:14:01 +03:00
2011-07-09 13:50:38 +04:00
static int
mymain ( void )
{
2006-09-21 13:15:33 +04:00
int id = 0 ;
2013-05-24 14:14:02 +04:00
bool ro = false ;
2006-09-21 13:15:33 +04:00
virConnectPtr conn ;
virDomainPtr dom ;
2011-07-08 01:53:41 +04:00
virCommandPtr cmd ;
2011-11-19 01:21:54 +04:00
struct utsname ut ;
2011-07-08 01:53:41 +04:00
2011-11-19 01:21:54 +04:00
/* Skip test if xend is not running. Calling xend on a non-xen
kernel causes some versions of xend to issue a crash report , so
we first probe uname results . */
uname ( & ut ) ;
if ( strstr ( ut . release , " xen " ) = = NULL )
return EXIT_AM_SKIP ;
2011-07-08 01:53:41 +04:00
cmd = virCommandNewArgList ( " /usr/sbin/xend " , " status " , NULL ) ;
2014-02-20 04:32:19 +04:00
if ( virCommandRun ( cmd , NULL ) < 0 ) {
2011-07-08 01:53:41 +04:00
virCommandFree ( cmd ) ;
return EXIT_AM_SKIP ;
}
virCommandFree ( cmd ) ;
2006-09-21 13:15:33 +04:00
2013-09-17 17:20:24 +04:00
virtTestQuiesceLibvirtErrors ( true ) ;
2006-11-09 13:14:01 +03:00
conn = virConnectOpen ( NULL ) ;
if ( conn = = NULL ) {
2013-05-24 14:14:02 +04:00
ro = true ;
2008-04-10 20:54:54 +04:00
conn = virConnectOpenReadOnly ( NULL ) ;
2006-11-09 13:14:01 +03:00
}
2006-09-21 13:15:33 +04:00
if ( conn = = NULL ) {
fprintf ( stderr , " First virConnectOpen() failed \n " ) ;
2011-07-09 13:50:38 +04:00
return EXIT_FAILURE ;
2006-09-21 13:15:33 +04:00
}
dom = virDomainLookupByID ( conn , id ) ;
if ( dom = = NULL ) {
fprintf ( stderr , " First lookup for domain %d failed \n " , id ) ;
2011-07-09 13:50:38 +04:00
return EXIT_FAILURE ;
2006-09-21 13:15:33 +04:00
}
virDomainFree ( dom ) ;
virConnectClose ( conn ) ;
2013-05-24 14:14:02 +04:00
if ( ro )
2008-04-10 20:54:54 +04:00
conn = virConnectOpenReadOnly ( NULL ) ;
2006-11-09 13:14:01 +03:00
else
2008-04-10 20:54:54 +04:00
conn = virConnectOpen ( NULL ) ;
2006-09-21 13:15:33 +04:00
if ( conn = = NULL ) {
fprintf ( stderr , " Second virConnectOpen() failed \n " ) ;
2011-07-09 13:50:38 +04:00
return EXIT_FAILURE ;
2006-09-21 13:15:33 +04:00
}
dom = virDomainLookupByID ( conn , id ) ;
if ( dom = = NULL ) {
fprintf ( stderr , " Second lookup for domain %d failed \n " , id ) ;
2011-07-09 13:50:38 +04:00
return EXIT_FAILURE ;
2006-09-21 13:15:33 +04:00
}
virDomainFree ( dom ) ;
virConnectClose ( conn ) ;
2008-02-05 22:27:37 +03:00
2011-07-09 13:50:38 +04:00
return EXIT_SUCCESS ;
2006-09-21 13:15:33 +04:00
}
2011-07-09 13:50:38 +04:00
VIRT_TEST_MAIN ( mymain )