2008-01-29 21:15:54 +03:00
# include <config.h>
2006-08-25 01:46:28 +04:00
# include <stdio.h>
# include <string.h>
# include <unistd.h>
2007-11-26 15:03:34 +03:00
Wed Dec 5 13:48:00 UTC 2007 Richard W.M. Jones <rjones@redhat.com>
* python/libvir.c, python/libvirt_wrap.h, qemud/qemud.c,
qemud/remote.c, src/internal.h, src/openvz_conf.c,
src/openvz_driver.c, src/proxy_internal.h, src/qemu_conf.c,
src/qemu_driver.c, src/remote_internal.h, src/test.h, src/util.c,
src/xen_unified.c, src/xen_unified.h, tests/nodeinfotest.c,
tests/qemuxml2argvtest.c, tests/qemuxml2xmltest.c, tests/reconnect.c,
tests/sexpr2xmltest.c, tests/virshtest.c, tests/xencapstest.c,
tests/xmconfigtest.c, tests/xml2sexprtest.c:
Change #include <> to #include "" for local includes.
Removed many includes from src/internal.h and put them in
the C files which actually use them.
Removed <ansidecl.h> - unused.
Added a comment around __func__.
Removed a clashing redefinition of VERSION symbol.
All limits (PATH_MAX etc) now done in src/internal.h, so we
don't need to include those headers in other files.
2007-12-05 16:56:22 +03:00
# include "internal.h"
2006-08-25 01:46:28 +04:00
# include "xml.h"
# include "testutils.h"
static char * progname ;
2007-11-14 13:35:58 +03:00
static char * abs_top_srcdir ;
2006-08-25 01:46:28 +04:00
# define MAX_FILE 4096
static int testFilterLine ( char * buffer ,
2008-04-10 20:54:54 +04:00
const char * toRemove ) {
2006-08-25 01:46:28 +04:00
char * start ;
char * end ;
if ( ! ( start = strstr ( buffer , toRemove ) ) )
return - 1 ;
if ( ! ( end = strstr ( start + 1 , " \n " ) ) ) {
* start = ' \0 ' ;
} else {
memmove ( start , end , strlen ( end ) + 1 ) ;
}
return 0 ;
}
2007-11-14 13:35:58 +03:00
static int testCompareOutput ( const char * expect_rel , const char * filter ,
const char * const argv [ ] ) {
2006-08-25 01:46:28 +04:00
char expectData [ MAX_FILE ] ;
char actualData [ MAX_FILE ] ;
char * expectPtr = & ( expectData [ 0 ] ) ;
char * actualPtr = & ( actualData [ 0 ] ) ;
2007-11-14 13:35:58 +03:00
char expect [ PATH_MAX ] ;
snprintf ( expect , sizeof expect - 1 , " %s/tests/%s " , abs_top_srcdir , expect_rel ) ;
2006-08-25 01:46:28 +04:00
if ( virtTestLoadFile ( expect , & expectPtr , MAX_FILE ) < 0 )
return - 1 ;
if ( virtTestCaptureProgramOutput ( argv , & actualPtr , MAX_FILE ) < 0 )
return - 1 ;
if ( filter )
if ( testFilterLine ( actualData , filter ) < 0 )
return - 1 ;
if ( getenv ( " DEBUG_TESTS " ) ) {
2006-09-14 19:34:50 +04:00
printf ( " Expect %d '%s' \n " , ( int ) strlen ( expectData ) , expectData ) ;
printf ( " Actual %d '%s' \n " , ( int ) strlen ( actualData ) , actualData ) ;
2006-08-25 01:46:28 +04:00
}
if ( strcmp ( expectData , actualData ) )
return - 1 ;
return 0 ;
}
# define VIRSH_DEFAULT ".. / src / virsh", \
" --connect " , \
" test:///default "
static char * custom_uri ;
# define VIRSH_CUSTOM ".. / src / virsh", \
" --connect " , \
custom_uri
2007-07-19 01:08:22 +04:00
static int testCompareListDefault ( const void * data ATTRIBUTE_UNUSED ) {
2006-08-25 01:46:28 +04:00
const char * const argv [ ] = {
VIRSH_DEFAULT ,
" list " ,
NULL
} ;
return testCompareOutput ( " virshdata/list-default.txt " ,
2008-04-10 20:54:54 +04:00
NULL ,
argv ) ;
2006-08-25 01:46:28 +04:00
}
2007-07-19 01:08:22 +04:00
static int testCompareListCustom ( const void * data ATTRIBUTE_UNUSED ) {
2006-08-25 01:46:28 +04:00
const char * const argv [ ] = {
VIRSH_CUSTOM ,
" list " ,
NULL
} ;
return testCompareOutput ( " virshdata/list-custom.txt " ,
2008-04-10 20:54:54 +04:00
NULL ,
argv ) ;
2006-08-25 01:46:28 +04:00
}
2007-07-19 01:08:22 +04:00
static int testCompareNodeinfoDefault ( const void * data ATTRIBUTE_UNUSED ) {
2006-08-25 01:46:28 +04:00
const char * const argv [ ] = {
VIRSH_DEFAULT ,
" nodeinfo " ,
NULL
} ;
return testCompareOutput ( " virshdata/nodeinfo-default.txt " ,
2008-04-10 20:54:54 +04:00
NULL ,
argv ) ;
2006-08-25 01:46:28 +04:00
}
2007-07-19 01:08:22 +04:00
static int testCompareNodeinfoCustom ( const void * data ATTRIBUTE_UNUSED ) {
2006-08-25 01:46:28 +04:00
const char * const argv [ ] = {
VIRSH_CUSTOM ,
" nodeinfo " ,
NULL
} ;
return testCompareOutput ( " virshdata/nodeinfo-custom.txt " ,
2008-04-10 20:54:54 +04:00
NULL ,
argv ) ;
2006-08-25 01:46:28 +04:00
}
2007-07-19 01:08:22 +04:00
static int testCompareDominfoByID ( const void * data ATTRIBUTE_UNUSED ) {
2006-08-25 01:46:28 +04:00
const char * const argv [ ] = {
VIRSH_CUSTOM ,
" dominfo " ,
2007-01-26 16:10:28 +03:00
" 2 " ,
2006-08-25 01:46:28 +04:00
NULL
} ;
return testCompareOutput ( " virshdata/dominfo-fc4.txt " ,
2008-04-10 20:54:54 +04:00
" \n CPU time: " ,
argv ) ;
2006-08-25 01:46:28 +04:00
}
2007-07-19 01:08:22 +04:00
static int testCompareDominfoByUUID ( const void * data ATTRIBUTE_UNUSED ) {
2006-08-25 01:46:28 +04:00
const char * const argv [ ] = {
VIRSH_CUSTOM ,
" dominfo " ,
" ef861801-45b9-11cb-88e3-afbfe5370493 " ,
NULL
} ;
return testCompareOutput ( " virshdata/dominfo-fc4.txt " ,
2008-04-10 20:54:54 +04:00
" \n CPU time: " ,
argv ) ;
2006-08-25 01:46:28 +04:00
}
2007-07-19 01:08:22 +04:00
static int testCompareDominfoByName ( const void * data ATTRIBUTE_UNUSED ) {
2006-08-25 01:46:28 +04:00
const char * const argv [ ] = {
VIRSH_CUSTOM ,
" dominfo " ,
" fc4 " ,
NULL
} ;
return testCompareOutput ( " virshdata/dominfo-fc4.txt " ,
2008-04-10 20:54:54 +04:00
" \n CPU time: " ,
argv ) ;
2006-08-25 01:46:28 +04:00
}
2007-07-19 01:08:22 +04:00
static int testCompareDomuuidByID ( const void * data ATTRIBUTE_UNUSED ) {
2006-08-25 01:46:28 +04:00
const char * const argv [ ] = {
VIRSH_CUSTOM ,
" domuuid " ,
2007-01-26 16:10:28 +03:00
" 2 " ,
2006-08-25 01:46:28 +04:00
NULL
} ;
return testCompareOutput ( " virshdata/domuuid-fc4.txt " ,
2008-04-10 20:54:54 +04:00
NULL ,
argv ) ;
2006-08-25 01:46:28 +04:00
}
2007-07-19 01:08:22 +04:00
static int testCompareDomuuidByName ( const void * data ATTRIBUTE_UNUSED ) {
2006-08-25 01:46:28 +04:00
const char * const argv [ ] = {
VIRSH_CUSTOM ,
" domuuid " ,
" fc4 " ,
NULL
} ;
return testCompareOutput ( " virshdata/domuuid-fc4.txt " ,
2008-04-10 20:54:54 +04:00
NULL ,
argv ) ;
2006-08-25 01:46:28 +04:00
}
2007-07-19 01:08:22 +04:00
static int testCompareDomidByName ( const void * data ATTRIBUTE_UNUSED ) {
2006-08-25 01:46:28 +04:00
const char * const argv [ ] = {
VIRSH_CUSTOM ,
" domid " ,
" fc4 " ,
NULL
} ;
return testCompareOutput ( " virshdata/domid-fc4.txt " ,
2008-04-10 20:54:54 +04:00
NULL ,
argv ) ;
2006-08-25 01:46:28 +04:00
}
2007-07-19 01:08:22 +04:00
static int testCompareDomidByUUID ( const void * data ATTRIBUTE_UNUSED ) {
2006-08-25 01:46:28 +04:00
const char * const argv [ ] = {
VIRSH_CUSTOM ,
" domid " ,
" ef861801-45b9-11cb-88e3-afbfe5370493 " ,
NULL
} ;
return testCompareOutput ( " virshdata/domid-fc4.txt " ,
2008-04-10 20:54:54 +04:00
NULL ,
argv ) ;
2006-08-25 01:46:28 +04:00
}
2007-07-19 01:08:22 +04:00
static int testCompareDomnameByID ( const void * data ATTRIBUTE_UNUSED ) {
2006-08-25 01:46:28 +04:00
const char * const argv [ ] = {
VIRSH_CUSTOM ,
" domname " ,
2007-01-26 16:10:28 +03:00
" 2 " ,
2006-08-25 01:46:28 +04:00
NULL
} ;
return testCompareOutput ( " virshdata/domname-fc4.txt " ,
2008-04-10 20:54:54 +04:00
NULL ,
argv ) ;
2006-08-25 01:46:28 +04:00
}
2007-07-19 01:08:22 +04:00
static int testCompareDomnameByUUID ( const void * data ATTRIBUTE_UNUSED ) {
2006-08-25 01:46:28 +04:00
const char * const argv [ ] = {
VIRSH_CUSTOM ,
" domname " ,
" ef861801-45b9-11cb-88e3-afbfe5370493 " ,
NULL
} ;
return testCompareOutput ( " virshdata/domname-fc4.txt " ,
2008-04-10 20:54:54 +04:00
NULL ,
argv ) ;
2006-08-25 01:46:28 +04:00
}
2007-07-19 01:08:22 +04:00
static int testCompareDomstateByID ( const void * data ATTRIBUTE_UNUSED ) {
2006-08-25 01:46:28 +04:00
const char * const argv [ ] = {
VIRSH_CUSTOM ,
" domstate " ,
2007-01-26 16:10:28 +03:00
" 2 " ,
2006-08-25 01:46:28 +04:00
NULL
} ;
return testCompareOutput ( " virshdata/domstate-fc4.txt " ,
2008-04-10 20:54:54 +04:00
NULL ,
argv ) ;
2006-08-25 01:46:28 +04:00
}
2007-07-19 01:08:22 +04:00
static int testCompareDomstateByUUID ( const void * data ATTRIBUTE_UNUSED ) {
2006-08-25 01:46:28 +04:00
const char * const argv [ ] = {
VIRSH_CUSTOM ,
" domstate " ,
" ef861801-45b9-11cb-88e3-afbfe5370493 " ,
NULL
} ;
return testCompareOutput ( " virshdata/domstate-fc4.txt " ,
2008-04-10 20:54:54 +04:00
NULL ,
argv ) ;
2006-08-25 01:46:28 +04:00
}
2007-07-19 01:08:22 +04:00
static int testCompareDomstateByName ( const void * data ATTRIBUTE_UNUSED ) {
2006-08-25 01:46:28 +04:00
const char * const argv [ ] = {
VIRSH_CUSTOM ,
" domstate " ,
" fc4 " ,
NULL
} ;
return testCompareOutput ( " virshdata/domstate-fc4.txt " ,
2008-04-10 20:54:54 +04:00
NULL ,
argv ) ;
2006-08-25 01:46:28 +04:00
}
int
main ( int argc , char * * argv )
{
int ret = 0 ;
char buffer [ PATH_MAX ] ;
2007-11-14 13:35:58 +03:00
abs_top_srcdir = getenv ( " abs_top_srcdir " ) ;
if ( ! abs_top_srcdir )
2006-08-25 01:46:28 +04:00
return 1 ;
2007-11-14 13:35:58 +03:00
snprintf ( buffer , PATH_MAX - 1 , " test://%s/docs/testnode.xml " , abs_top_srcdir ) ;
2006-08-25 01:46:28 +04:00
buffer [ PATH_MAX - 1 ] = ' \0 ' ;
progname = argv [ 0 ] ;
custom_uri = buffer ;
2008-02-05 22:27:37 +03:00
2006-08-25 01:46:28 +04:00
if ( argc > 1 ) {
2008-02-05 22:27:37 +03:00
fprintf ( stderr , " Usage: %s \n " , progname ) ;
2006-08-25 01:46:28 +04:00
exit ( EXIT_FAILURE ) ;
}
2008-02-05 22:27:37 +03:00
2006-08-25 01:46:28 +04:00
if ( virtTestRun ( " virsh list (default) " ,
2008-04-10 20:54:54 +04:00
1 , testCompareListDefault , NULL ) ! = 0 )
2006-08-25 01:46:28 +04:00
ret = - 1 ;
if ( virtTestRun ( " virsh list (custom) " ,
2008-04-10 20:54:54 +04:00
1 , testCompareListCustom , NULL ) ! = 0 )
2006-08-25 01:46:28 +04:00
ret = - 1 ;
if ( virtTestRun ( " virsh nodeinfo (default) " ,
2008-04-10 20:54:54 +04:00
1 , testCompareNodeinfoDefault , NULL ) ! = 0 )
2006-08-25 01:46:28 +04:00
ret = - 1 ;
if ( virtTestRun ( " virsh nodeinfo (custom) " ,
2008-04-10 20:54:54 +04:00
1 , testCompareNodeinfoCustom , NULL ) ! = 0 )
2006-08-25 01:46:28 +04:00
ret = - 1 ;
if ( virtTestRun ( " virsh dominfo (by id) " ,
2008-04-10 20:54:54 +04:00
1 , testCompareDominfoByID , NULL ) ! = 0 )
2006-08-25 01:46:28 +04:00
ret = - 1 ;
if ( virtTestRun ( " virsh dominfo (by uuid) " ,
2008-04-10 20:54:54 +04:00
1 , testCompareDominfoByUUID , NULL ) ! = 0 )
2006-08-25 01:46:28 +04:00
ret = - 1 ;
if ( virtTestRun ( " virsh dominfo (by name) " ,
2008-04-10 20:54:54 +04:00
1 , testCompareDominfoByName , NULL ) ! = 0 )
2006-08-25 01:46:28 +04:00
ret = - 1 ;
if ( virtTestRun ( " virsh domid (by name) " ,
2008-04-10 20:54:54 +04:00
1 , testCompareDomidByName , NULL ) ! = 0 )
2006-08-25 01:46:28 +04:00
ret = - 1 ;
if ( virtTestRun ( " virsh domid (by uuid) " ,
2008-04-10 20:54:54 +04:00
1 , testCompareDomidByUUID , NULL ) ! = 0 )
2006-08-25 01:46:28 +04:00
ret = - 1 ;
if ( virtTestRun ( " virsh domuuid (by id) " ,
2008-04-10 20:54:54 +04:00
1 , testCompareDomuuidByID , NULL ) ! = 0 )
2006-08-25 01:46:28 +04:00
ret = - 1 ;
if ( virtTestRun ( " virsh domuuid (by name) " ,
2008-04-10 20:54:54 +04:00
1 , testCompareDomuuidByName , NULL ) ! = 0 )
2006-08-25 01:46:28 +04:00
ret = - 1 ;
if ( virtTestRun ( " virsh domname (by id) " ,
2008-04-10 20:54:54 +04:00
1 , testCompareDomnameByID , NULL ) ! = 0 )
2006-08-25 01:46:28 +04:00
ret = - 1 ;
if ( virtTestRun ( " virsh domname (by uuid) " ,
2008-04-10 20:54:54 +04:00
1 , testCompareDomnameByUUID , NULL ) ! = 0 )
2006-08-25 01:46:28 +04:00
ret = - 1 ;
if ( virtTestRun ( " virsh domstate (by id) " ,
2008-04-10 20:54:54 +04:00
1 , testCompareDomstateByID , NULL ) ! = 0 )
2006-08-25 01:46:28 +04:00
ret = - 1 ;
if ( virtTestRun ( " virsh domstate (by uuid) " ,
2008-04-10 20:54:54 +04:00
1 , testCompareDomstateByUUID , NULL ) ! = 0 )
2006-08-25 01:46:28 +04:00
ret = - 1 ;
if ( virtTestRun ( " virsh domstate (by name) " ,
2008-04-10 20:54:54 +04:00
1 , testCompareDomstateByName , NULL ) ! = 0 )
2006-08-25 01:46:28 +04:00
ret = - 1 ;
exit ( ret = = 0 ? EXIT_SUCCESS : EXIT_FAILURE ) ;
}