2008-01-29 18:15:54 +00:00
# include <config.h>
2007-12-07 10:08:06 +00:00
2006-09-21 09:15:33 +00:00
# include <stdio.h>
# include <stdlib.h>
2011-11-18 14:21:54 -07:00
# include <sys/utsname.h>
2007-12-07 14:38:34 +00:00
2007-03-06 21:55:44 +00:00
# include "internal.h"
2011-07-07 15:53:41 -06:00
# include "testutils.h"
2012-12-12 16:27:01 +00:00
# include "vircommand.h"
2006-11-09 10:14:01 +00:00
2011-07-09 11:50:38 +02:00
static int
mymain ( void )
{
2006-09-21 09:15:33 +00:00
int id = 0 ;
2013-05-24 12:14:02 +02:00
bool ro = false ;
2006-09-21 09:15:33 +00:00
virConnectPtr conn ;
virDomainPtr dom ;
2011-07-07 15:53:41 -06:00
virCommandPtr cmd ;
2011-11-18 14:21:54 -07:00
struct utsname ut ;
2011-07-07 15:53:41 -06:00
2011-11-18 14:21:54 -07: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-07 15:53:41 -06:00
cmd = virCommandNewArgList ( " /usr/sbin/xend " , " status " , NULL ) ;
2014-02-19 17:32:19 -07:00
if ( virCommandRun ( cmd , NULL ) < 0 ) {
2011-07-07 15:53:41 -06:00
virCommandFree ( cmd ) ;
return EXIT_AM_SKIP ;
}
virCommandFree ( cmd ) ;
2006-09-21 09:15:33 +00:00
2013-09-17 15:20:24 +02:00
virtTestQuiesceLibvirtErrors ( true ) ;
2006-11-09 10:14:01 +00:00
conn = virConnectOpen ( NULL ) ;
if ( conn = = NULL ) {
2013-05-24 12:14:02 +02:00
ro = true ;
2008-04-10 16:54:54 +00:00
conn = virConnectOpenReadOnly ( NULL ) ;
2006-11-09 10:14:01 +00:00
}
2006-09-21 09:15:33 +00:00
if ( conn = = NULL ) {
fprintf ( stderr , " First virConnectOpen() failed \n " ) ;
2011-07-09 11:50:38 +02:00
return EXIT_FAILURE ;
2006-09-21 09:15:33 +00:00
}
dom = virDomainLookupByID ( conn , id ) ;
if ( dom = = NULL ) {
fprintf ( stderr , " First lookup for domain %d failed \n " , id ) ;
2011-07-09 11:50:38 +02:00
return EXIT_FAILURE ;
2006-09-21 09:15:33 +00:00
}
virDomainFree ( dom ) ;
virConnectClose ( conn ) ;
2013-05-24 12:14:02 +02:00
if ( ro )
2008-04-10 16:54:54 +00:00
conn = virConnectOpenReadOnly ( NULL ) ;
2006-11-09 10:14:01 +00:00
else
2008-04-10 16:54:54 +00:00
conn = virConnectOpen ( NULL ) ;
2006-09-21 09:15:33 +00:00
if ( conn = = NULL ) {
fprintf ( stderr , " Second virConnectOpen() failed \n " ) ;
2011-07-09 11:50:38 +02:00
return EXIT_FAILURE ;
2006-09-21 09:15:33 +00:00
}
dom = virDomainLookupByID ( conn , id ) ;
if ( dom = = NULL ) {
fprintf ( stderr , " Second lookup for domain %d failed \n " , id ) ;
2011-07-09 11:50:38 +02:00
return EXIT_FAILURE ;
2006-09-21 09:15:33 +00:00
}
virDomainFree ( dom ) ;
virConnectClose ( conn ) ;
2008-02-05 19:27:37 +00:00
2011-07-09 11:50:38 +02:00
return EXIT_SUCCESS ;
2006-09-21 09:15:33 +00:00
}
2011-07-09 11:50:38 +02:00
VIRT_TEST_MAIN ( mymain )