2009-10-08 17:26:30 -04:00
# include <config.h>
# include <stdio.h>
# include <stdlib.h>
# include <unistd.h>
# include <string.h>
# include <sys/types.h>
# include <fcntl.h>
# include "internal.h"
# include "testutils.h"
# include "storage_conf.h"
# include "testutilsqemu.h"
2011-04-25 00:25:10 +02:00
static int
testCompareXMLToXMLFiles ( const char * inxml , const char * outxml )
{
char * inXmlData = NULL ;
char * outXmlData = NULL ;
2009-10-08 17:26:30 -04:00
char * actual = NULL ;
int ret = - 1 ;
virStoragePoolDefPtr dev = NULL ;
2011-04-25 00:25:10 +02:00
if ( virtTestLoadFile ( inxml , & inXmlData ) < 0 )
2009-10-08 17:26:30 -04:00
goto fail ;
2011-04-25 00:25:10 +02:00
if ( virtTestLoadFile ( outxml , & outXmlData ) < 0 )
2009-10-08 17:26:30 -04:00
goto fail ;
2010-02-10 11:42:56 +00:00
if ( ! ( dev = virStoragePoolDefParseString ( inXmlData ) ) )
2009-10-08 17:26:30 -04:00
goto fail ;
2010-02-10 11:42:56 +00:00
if ( ! ( actual = virStoragePoolDefFormat ( dev ) ) )
2009-10-08 17:26:30 -04:00
goto fail ;
if ( STRNEQ ( outXmlData , actual ) ) {
virtTestDifference ( stderr , outXmlData , actual ) ;
goto fail ;
}
ret = 0 ;
fail :
2012-02-02 16:16:43 -07:00
VIR_FREE ( inXmlData ) ;
VIR_FREE ( outXmlData ) ;
VIR_FREE ( actual ) ;
2009-10-08 17:26:30 -04:00
virStoragePoolDefFree ( dev ) ;
return ret ;
}
2011-04-25 00:25:10 +02:00
static int
testCompareXMLToXMLHelper ( const void * data )
{
int result = - 1 ;
char * inxml = NULL ;
char * outxml = NULL ;
if ( virAsprintf ( & inxml , " %s/storagepoolxml2xmlin/%s.xml " ,
abs_srcdir , ( const char * ) data ) < 0 | |
virAsprintf ( & outxml , " %s/storagepoolxml2xmlout/%s.xml " ,
abs_srcdir , ( const char * ) data ) < 0 ) {
goto cleanup ;
}
result = testCompareXMLToXMLFiles ( inxml , outxml ) ;
2009-10-08 17:26:30 -04:00
2011-04-25 00:25:10 +02:00
cleanup :
2012-02-02 16:16:43 -07:00
VIR_FREE ( inxml ) ;
VIR_FREE ( outxml ) ;
2011-04-25 00:25:10 +02:00
return result ;
}
2009-10-08 17:26:30 -04:00
static int
2011-04-29 10:21:20 -06:00
mymain ( void )
2009-10-08 17:26:30 -04:00
{
int ret = 0 ;
# define DO_TEST(name) \
if ( virtTestRun ( " Storage Pool XML-2-XML " name , \
1 , testCompareXMLToXMLHelper , ( name ) ) < 0 ) \
ret = - 1
DO_TEST ( " pool-dir " ) ;
DO_TEST ( " pool-fs " ) ;
DO_TEST ( " pool-logical " ) ;
DO_TEST ( " pool-logical-create " ) ;
DO_TEST ( " pool-disk " ) ;
DO_TEST ( " pool-iscsi " ) ;
DO_TEST ( " pool-iscsi-auth " ) ;
DO_TEST ( " pool-netfs " ) ;
DO_TEST ( " pool-scsi " ) ;
DO_TEST ( " pool-mpath " ) ;
2010-06-07 16:47:37 -04:00
DO_TEST ( " pool-iscsi-multiiqn " ) ;
2010-08-17 12:44:27 -05:00
DO_TEST ( " pool-iscsi-vendor-product " ) ;
2012-07-18 20:06:58 +01:00
DO_TEST ( " pool-sheepdog " ) ;
2009-10-08 17:26:30 -04:00
2012-03-22 12:33:35 +01:00
return ret = = 0 ? EXIT_SUCCESS : EXIT_FAILURE ;
2009-10-08 17:26:30 -04:00
}
VIRT_TEST_MAIN ( mymain )