2007-11-26 15:03:34 +03:00
# include "config.h"
2007-07-19 01:34:22 +04:00
# include <stdio.h>
2007-11-26 15:03:34 +03:00
# include <stdlib.h>
# include <unistd.h>
2007-07-19 01:34:22 +04:00
# include <string.h>
# include <sys/types.h>
# include <fcntl.h>
2007-11-26 15:03:34 +03:00
# ifdef WITH_QEMU
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"
2007-07-19 01:34:22 +04:00
# include "testutils.h"
# include "qemu_conf.h"
static char * progname ;
2007-11-14 13:35:58 +03:00
static char * abs_top_srcdir ;
2008-01-14 17:04:33 +03:00
static struct qemud_driver driver ;
2007-07-19 01:34:22 +04:00
# define MAX_FILE 4096
static int testCompareXMLToArgvFiles ( const char * xml , const char * cmd ) {
char xmlData [ MAX_FILE ] ;
char argvData [ MAX_FILE ] ;
char * xmlPtr = & ( xmlData [ 0 ] ) ;
char * expectargv = & ( argvData [ 0 ] ) ;
char * actualargv = NULL ;
char * * argv = NULL ;
char * * tmp = NULL ;
int ret = - 1 , len ;
2007-07-31 18:27:12 +04:00
struct qemud_vm_def * vmdef = NULL ;
2007-07-19 01:34:22 +04:00
struct qemud_vm vm ;
if ( virtTestLoadFile ( xml , & xmlPtr , MAX_FILE ) < 0 )
goto fail ;
if ( virtTestLoadFile ( cmd , & expectargv , MAX_FILE ) < 0 )
goto fail ;
if ( ! ( vmdef = qemudParseVMDef ( NULL , & driver , xmlData , " test " ) ) )
goto fail ;
vm . def = vmdef ;
vm . pid = - 1 ;
vm . id = - 1 ;
2007-09-22 01:20:32 +04:00
vm . qemuVersion = 0 * 1000 * 100 + ( 8 * 1000 ) + 1 ;
vm . qemuCmdFlags = QEMUD_CMD_FLAG_VNC_COLON |
QEMUD_CMD_FLAG_NO_REBOOT ;
2007-10-19 12:29:13 +04:00
vm . migrateFrom [ 0 ] = ' \0 ' ;
2007-09-22 01:20:32 +04:00
2007-07-19 01:34:22 +04:00
vmdef - > vncActivePort = vmdef - > vncPort ;
if ( qemudBuildCommandLine ( NULL , & driver , & vm , & argv ) < 0 )
goto fail ;
tmp = argv ;
len = 0 ;
while ( * tmp ) {
len + = strlen ( * tmp ) + 1 ;
tmp + + ;
}
2007-12-12 00:57:29 +03:00
actualargv = malloc ( sizeof ( * actualargv ) * len ) ;
2007-07-19 01:34:22 +04:00
actualargv [ 0 ] = ' \0 ' ;
tmp = argv ;
len = 0 ;
while ( * tmp ) {
if ( actualargv [ 0 ] )
strcat ( actualargv , " " ) ;
strcat ( actualargv , * tmp ) ;
tmp + + ;
}
if ( strcmp ( expectargv , actualargv ) ) {
if ( getenv ( " DEBUG_TESTS " ) ) {
printf ( " Expect %4d '%s' \n " , ( int ) strlen ( expectargv ) , expectargv ) ;
printf ( " Actual %4d '%s' \n " , ( int ) strlen ( actualargv ) , actualargv ) ;
}
goto fail ;
}
ret = 0 ;
fail :
free ( actualargv ) ;
if ( argv ) {
tmp = argv ;
while ( * tmp ) {
free ( * tmp ) ;
tmp + + ;
}
free ( argv ) ;
}
2007-09-14 02:06:54 +04:00
if ( vmdef )
qemudFreeVMDef ( vmdef ) ;
2007-07-19 01:34:22 +04:00
return ret ;
}
static int testCompareXMLToArgvHelper ( const void * data ) {
char xml [ PATH_MAX ] ;
char args [ PATH_MAX ] ;
2007-11-14 13:35:58 +03:00
snprintf ( xml , PATH_MAX , " %s/tests/qemuxml2argvdata/qemuxml2argv-%s.xml " ,
abs_top_srcdir , ( const char * ) data ) ;
snprintf ( args , PATH_MAX , " %s/tests/qemuxml2argvdata/qemuxml2argv-%s.args " ,
abs_top_srcdir , ( const char * ) data ) ;
2007-07-19 01:34:22 +04:00
return testCompareXMLToArgvFiles ( xml , args ) ;
}
int
main ( int argc , char * * argv )
{
int ret = 0 ;
progname = argv [ 0 ] ;
if ( argc > 1 ) {
fprintf ( stderr , " Usage: %s \n " , progname ) ;
exit ( EXIT_FAILURE ) ;
}
2007-11-14 13:35:58 +03:00
abs_top_srcdir = getenv ( " abs_top_srcdir " ) ;
if ( ! abs_top_srcdir )
return 1 ;
2007-07-19 01:34:22 +04:00
if ( virtTestRun ( " QEMU XML-2-ARGV minimal " ,
1 , testCompareXMLToArgvHelper , " minimal " ) < 0 )
ret = - 1 ;
if ( virtTestRun ( " QEMU XML-2-ARGV Boot CDROM " ,
1 , testCompareXMLToArgvHelper , " boot-cdrom " ) < 0 )
ret = - 1 ;
if ( virtTestRun ( " QEMU XML-2-ARGV Boot Network " ,
1 , testCompareXMLToArgvHelper , " boot-network " ) < 0 )
ret = - 1 ;
if ( virtTestRun ( " QEMU XML-2-ARGV Boot Floppy " ,
1 , testCompareXMLToArgvHelper , " boot-floppy " ) < 0 )
ret = - 1 ;
if ( virtTestRun ( " QEMU XML-2-ARGV Clock UTC " ,
1 , testCompareXMLToArgvHelper , " clock-utc " ) < 0 )
ret = - 1 ;
if ( virtTestRun ( " QEMU XML-2-ARGV Clock Localtime " ,
1 , testCompareXMLToArgvHelper , " clock-localtime " ) < 0 )
ret = - 1 ;
if ( virtTestRun ( " QEMU XML-2-ARGV Disk CDROM " ,
1 , testCompareXMLToArgvHelper , " disk-cdrom " ) < 0 )
ret = - 1 ;
if ( virtTestRun ( " QEMU XML-2-ARGV Disk Floppy " ,
1 , testCompareXMLToArgvHelper , " disk-floppy " ) < 0 )
ret = - 1 ;
if ( virtTestRun ( " QEMU XML-2-ARGV Disk Many " ,
1 , testCompareXMLToArgvHelper , " disk-many " ) < 0 )
ret = - 1 ;
2007-07-24 18:30:05 +04:00
if ( virtTestRun ( " QEMU XML-2-ARGV Graphics VNC " ,
2007-07-19 01:34:22 +04:00
1 , testCompareXMLToArgvHelper , " graphics-vnc " ) < 0 )
ret = - 1 ;
2007-07-24 18:30:05 +04:00
if ( virtTestRun ( " QEMU XML-2-ARGV Graphics SDL " ,
2007-07-19 01:34:22 +04:00
1 , testCompareXMLToArgvHelper , " graphics-sdl " ) < 0 )
ret = - 1 ;
if ( virtTestRun ( " QEMU XML-2-ARGV Input USB Mouse " ,
1 , testCompareXMLToArgvHelper , " input-usbmouse " ) < 0 )
ret = - 1 ;
if ( virtTestRun ( " QEMU XML-2-ARGV Input USB Tablet " ,
1 , testCompareXMLToArgvHelper , " input-usbtablet " ) < 0 )
ret = - 1 ;
if ( virtTestRun ( " QEMU XML-2-ARGV Misc ACPI " ,
1 , testCompareXMLToArgvHelper , " misc-acpi " ) < 0 )
ret = - 1 ;
if ( virtTestRun ( " QEMU XML-2-ARGV Misc No Reboot " ,
1 , testCompareXMLToArgvHelper , " misc-no-reboot " ) < 0 )
ret = - 1 ;
if ( virtTestRun ( " QEMU XML-2-ARGV Net User " ,
1 , testCompareXMLToArgvHelper , " net-user " ) < 0 )
ret = - 1 ;
exit ( ret = = 0 ? EXIT_SUCCESS : EXIT_FAILURE ) ;
}
2007-11-26 15:03:34 +03:00
# else
int main ( void ) { exit ( 77 ) ; /* means 'test skipped' for automake */ }
# endif /* WITH_QEMU */
2007-07-19 01:34:22 +04:00
/*
* Local variables :
* indent - tabs - mode : nil
* c - indent - level : 4
* c - basic - offset : 4
* tab - width : 4
* End :
*/