2010-04-02 21:28:28 +04:00
# include <config.h>
# include <unistd.h>
# include <sys/types.h>
# include <fcntl.h>
# include "internal.h"
# include "testutils.h"
2012-12-13 22:13:21 +04:00
# include "virxml.h"
2012-12-13 19:49:48 +04:00
# include "virthread.h"
2010-04-02 21:28:28 +04:00
# include "nwfilter_params.h"
# include "nwfilter_conf.h"
# include "testutilsqemu.h"
2013-04-03 14:36:23 +04:00
# include "virstring.h"
2010-04-02 21:28:28 +04:00
2013-06-07 19:10:28 +04:00
# define VIR_FROM_THIS VIR_FROM_NONE
2011-04-25 02:25:10 +04:00
static int
testCompareXMLToXMLFiles ( const char * inxml , const char * outxml ,
bool expect_error )
{
2010-04-02 21:28:28 +04:00
char * actual = NULL ;
int ret = - 1 ;
virNWFilterDefPtr dev = NULL ;
2010-11-29 16:11:53 +03:00
virResetLastError ( ) ;
2010-04-02 21:28:28 +04:00
2015-04-23 18:10:15 +03:00
if ( ! ( dev = virNWFilterDefParseFile ( inxml ) ) ) {
2013-09-25 18:26:58 +04:00
if ( expect_error ) {
virResetLastError ( ) ;
goto done ;
}
2010-10-14 04:11:25 +04:00
goto fail ;
}
2010-04-05 20:34:55 +04:00
if ( ! ( actual = virNWFilterDefFormat ( dev ) ) )
2010-04-02 21:28:28 +04:00
goto fail ;
2016-05-26 18:01:53 +03:00
if ( virTestCompareToFile ( actual , outxml ) < 0 )
2010-04-02 21:28:28 +04:00
goto fail ;
2013-09-25 18:26:58 +04:00
done :
2010-04-02 21:28:28 +04:00
ret = 0 ;
fail :
2012-02-03 03:16:43 +04:00
VIR_FREE ( actual ) ;
2010-04-02 21:28:28 +04:00
virNWFilterDefFree ( dev ) ;
return ret ;
}
2010-10-14 04:11:25 +04:00
typedef struct test_parms {
const char * name ;
bool expect_warning ;
} test_parms ;
2011-04-25 02:25:10 +04:00
static int
testCompareXMLToXMLHelper ( const void * data )
{
int result = - 1 ;
2010-10-14 04:11:25 +04:00
const test_parms * tp = data ;
2011-04-25 02:25:10 +04:00
char * inxml = NULL ;
char * outxml = NULL ;
2019-10-22 16:26:14 +03:00
inxml = g_strdup_printf ( " %s/nwfilterxml2xmlin/%s.xml " , abs_srcdir , tp - > name ) ;
outxml = g_strdup_printf ( " %s/nwfilterxml2xmlout/%s.xml " , abs_srcdir , tp - > name ) ;
2011-04-25 02:25:10 +04:00
result = testCompareXMLToXMLFiles ( inxml , outxml , tp - > expect_warning ) ;
2010-04-02 21:28:28 +04:00
2012-02-03 03:16:43 +04:00
VIR_FREE ( inxml ) ;
VIR_FREE ( outxml ) ;
2011-04-25 02:25:10 +04:00
return result ;
}
2010-04-02 21:28:28 +04:00
static int
2011-04-29 20:21:20 +04:00
mymain ( void )
2010-04-02 21:28:28 +04:00
{
int ret = 0 ;
2017-11-03 15:09:47 +03:00
# define DO_TEST(NAME, EXPECT_WARN) \
do { \
test_parms tp = { \
. name = NAME , \
. expect_warning = EXPECT_WARN , \
} ; \
if ( virTestRun ( " NWFilter XML-2-XML " NAME , \
testCompareXMLToXMLHelper , ( & tp ) ) < 0 ) \
ret = - 1 ; \
2010-10-14 04:11:25 +04:00
} while ( 0 )
2020-10-07 15:45:55 +03:00
DO_TEST ( " mac-test-invalid " , true ) ;
DO_TEST ( " vlan-test-invalid " , true ) ;
2011-11-23 00:12:03 +04:00
DO_TEST ( " stp-test " , false ) ;
2020-10-07 15:45:55 +03:00
DO_TEST ( " arp-test-invalid " , true ) ;
DO_TEST ( " rarp-test-invalid " , true ) ;
DO_TEST ( " ip-test-invalid " , true ) ;
DO_TEST ( " ipv6-test-invalid " , true ) ;
DO_TEST ( " tcp-test-invalid " , true ) ;
DO_TEST ( " udp-test-invalid " , true ) ;
DO_TEST ( " icmp-test-invalid " , true ) ;
2010-10-14 04:11:25 +04:00
DO_TEST ( " igmp-test " , false ) ;
2020-10-07 15:45:55 +03:00
DO_TEST ( " sctp-test-invalid " , true ) ;
2010-10-14 04:11:25 +04:00
DO_TEST ( " udplite-test " , false ) ;
DO_TEST ( " esp-test " , false ) ;
DO_TEST ( " ah-test " , false ) ;
DO_TEST ( " all-test " , false ) ;
2020-10-07 15:45:55 +03:00
DO_TEST ( " tcp-ipv6-test-invalid " , true ) ;
DO_TEST ( " udp-ipv6-test-invalid " , true ) ;
DO_TEST ( " icmpv6-test-invalid " , true ) ;
DO_TEST ( " sctp-ipv6-test-invalid " , true ) ;
DO_TEST ( " udplite-ipv6-test-invalid " , true ) ;
DO_TEST ( " esp-ipv6-test-invalid " , true ) ;
DO_TEST ( " ah-ipv6-test-invalid " , true ) ;
DO_TEST ( " all-ipv6-test-invalid " , true ) ;
2010-10-14 04:11:25 +04:00
DO_TEST ( " ref-test " , false ) ;
DO_TEST ( " ref-rule-test " , false ) ;
DO_TEST ( " ipt-no-macspoof-test " , false ) ;
DO_TEST ( " icmp-direction-test " , false ) ;
DO_TEST ( " icmp-direction2-test " , false ) ;
DO_TEST ( " icmp-direction3-test " , false ) ;
DO_TEST ( " conntrack-test " , false ) ;
2020-10-07 15:45:55 +03:00
DO_TEST ( " hex-data-test-invalid " , true ) ;
2010-10-14 04:11:25 +04:00
2020-10-07 15:45:55 +03:00
DO_TEST ( " comment-test-invalid " , true ) ;
2010-10-14 04:11:25 +04:00
DO_TEST ( " example-1 " , false ) ;
DO_TEST ( " example-2 " , false ) ;
2010-10-07 14:43:35 +04:00
2020-10-07 15:45:55 +03:00
DO_TEST ( " chain_prefixtest1-invalid " , true ) ; /* derived from arp-test */
2011-11-18 20:58:18 +04:00
2011-11-18 20:58:18 +04:00
DO_TEST ( " attr-value-test " , false ) ;
2012-01-11 15:42:37 +04:00
DO_TEST ( " iter-test1 " , false ) ;
DO_TEST ( " iter-test2 " , false ) ;
DO_TEST ( " iter-test3 " , false ) ;
2011-11-18 20:58:18 +04:00
2012-05-21 14:26:34 +04:00
DO_TEST ( " ipset-test " , false ) ;
2014-03-17 13:38:38 +04:00
return ret = = 0 ? EXIT_SUCCESS : EXIT_FAILURE ;
2010-04-02 21:28:28 +04:00
}
2017-03-29 17:45:42 +03:00
VIR_TEST_MAIN ( mymain )