[vlc-commits] commit: Also test config_chainDuplicate. ( Rémi Duraffort )
git at videolan.org
git at videolan.org
Tue Oct 5 19:50:11 CEST 2010
vlc | branch: master | Rémi Duraffort <ivoire at videolan.org> | Tue Oct 5 19:49:57 2010 +0200| [e8d9d1f3cf58c26aa28e668087414ebdc69e5070] | committer: Rémi Duraffort
Also test config_chainDuplicate.
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=e8d9d1f3cf58c26aa28e668087414ebdc69e5070
---
test/src/config/chain.c | 49 ++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 48 insertions(+), 1 deletions(-)
diff --git a/test/src/config/chain.c b/test/src/config/chain.c
index 4b8ada8..27f39d0 100644
--- a/test/src/config/chain.c
+++ b/test/src/config/chain.c
@@ -70,6 +70,7 @@ static void test_config_StringUnEscape()
}
}
+
typedef struct
{
const char *psz_name;
@@ -94,6 +95,9 @@ static const chain_sample_t chain_samples[] =
{ "éç€{a=b}", "éç€", NULL,
{ { "a", "b" },
{ NULL, NULL } } },
+ { "mod{listen=127.0.0.1:80}", "mod", NULL,
+ { { "listen", "127.0.0.1:80" },
+ { NULL, NULL } } },
{ "module:module2", "module", "module2", { { NULL, NULL } } },
{ "mod{çé=\"arg'\",bla='bip'}", "mod", NULL,
{ { "çé", "arg'" },
@@ -107,7 +111,6 @@ static const chain_sample_t chain_samples[] =
{ NULL, NULL, NULL, { { NULL, NULL } } }
};
-
static void test_config_ChainCreate()
{
for( int i = 0; chain_samples[i].psz_string; i++ )
@@ -134,6 +137,48 @@ static void test_config_ChainCreate()
}
}
+
+static const char *ppsz_string[] =
+{
+ "bla",
+ "module1{a=b, b=c}",
+ "a{re=\"errtetyegzrf\", b=c, vetrjtrjt=erte234tth:12}",
+ "module1{a=b, b=c}:std{lang=C}",
+ NULL
+};
+
+static void check_config_equality( config_chain_t *p_cfg1, config_chain_t *p_cfg2 )
+{
+ while(p_cfg1 && p_cfg2)
+ {
+ assert( !strcmp( p_cfg1->psz_name, p_cfg2->psz_name ) &&
+ !strcmp( p_cfg1->psz_value, p_cfg2->psz_value ) );
+
+ p_cfg1 = p_cfg1->p_next;
+ p_cfg2 = p_cfg2->p_next;
+ }
+ assert(!p_cfg1 && !p_cfg2);
+}
+
+static void test_config_ChainDuplicate()
+{
+ for( int i = 0; ppsz_string[i]; i++ )
+ {
+ char *psz_module;
+ config_chain_t *p_cfg;
+ char *psz_next = config_ChainCreate( &psz_module, &p_cfg, ppsz_string[i] );
+
+ config_chain_t *p_cfg_copy = config_ChainDuplicate( p_cfg );
+ check_config_equality(p_cfg, p_cfg_copy);
+
+ config_ChainDestroy( p_cfg_copy );
+ config_ChainDestroy( p_cfg );
+ free( psz_next );
+ free( psz_module );
+ }
+}
+
+
int main( void )
{
log( "Testing config chain escaping\n" );
@@ -142,6 +187,8 @@ int main( void )
test_config_StringUnEscape();
log( "Testing config_ChainCreate()\n" );
test_config_ChainCreate();
+ log( "Testing config_ChainDuplicate()\n" );
+ test_config_ChainDuplicate();
return 0;
}
More information about the vlc-commits
mailing list