+
+ var_Destroy( p_libvlc, "bla" );
+}
+
+static void test_creation_and_type( libvlc_int_t *p_libvlc )
+{
+ int i_type;
+ vlc_value_t val;
+ val.i_int = 4212;
+
+ var_Create( p_libvlc, "bla", VLC_VAR_INTEGER );
+ assert( var_Type( p_libvlc, "bla" ) == (VLC_VAR_INTEGER) );
+
+ assert( var_Create( p_libvlc, "bla", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT ) == VLC_SUCCESS );
+ assert( var_Type( p_libvlc, "bla" ) == (VLC_VAR_INTEGER) );
+
+ assert( var_Create( p_libvlc, "bla", VLC_VAR_INTEGER | VLC_VAR_ISCOMMAND ) == VLC_SUCCESS );
+ assert( var_Type( p_libvlc, "bla" ) == (VLC_VAR_INTEGER | VLC_VAR_ISCOMMAND) );
+
+ var_Change( p_libvlc, "bla", VLC_VAR_SETMIN, &val, NULL );
+ assert( var_Type( p_libvlc, "bla" ) == (VLC_VAR_INTEGER | VLC_VAR_ISCOMMAND | VLC_VAR_HASMIN) );
+
+ var_Change( p_libvlc, "bla", VLC_VAR_SETMAX, &val, NULL );
+ assert( var_Type( p_libvlc, "bla" ) == (VLC_VAR_INTEGER | VLC_VAR_ISCOMMAND | VLC_VAR_HASMIN | VLC_VAR_HASMAX) );
+
+ var_Change( p_libvlc, "bla", VLC_VAR_SETSTEP, &val, NULL );
+ assert( var_Type( p_libvlc, "bla" ) == (VLC_VAR_INTEGER | VLC_VAR_ISCOMMAND | VLC_VAR_HASMIN | VLC_VAR_HASMAX | VLC_VAR_HASSTEP) );
+
+ var_Destroy( p_libvlc, "bla" );
+ var_Destroy( p_libvlc, "bla" );
+ var_Destroy( p_libvlc, "bla" );
+ assert( var_Get( p_libvlc, "bla", &val ) == VLC_ENOVAR );
+
+ var_Create( p_libvlc, "bla", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT );
+ assert( var_Type( p_libvlc, "bla" ) == (VLC_VAR_INTEGER) );
+
+ assert( var_Create( p_libvlc, "bla", VLC_VAR_INTEGER | VLC_VAR_ISCOMMAND ) == VLC_SUCCESS );
+ assert( var_Type( p_libvlc, "bla" ) == (VLC_VAR_INTEGER | VLC_VAR_ISCOMMAND) );
+
+ assert( var_Create( p_libvlc, "bla", VLC_VAR_INTEGER | VLC_VAR_ISCOMMAND | VLC_VAR_HASCHOICE ) == VLC_SUCCESS );
+ assert( var_Type( p_libvlc, "bla" ) == (VLC_VAR_INTEGER | VLC_VAR_ISCOMMAND | VLC_VAR_HASCHOICE) );
+
+ var_Destroy( p_libvlc, "bla" );
+ var_Destroy( p_libvlc, "bla" );
+ var_Destroy( p_libvlc, "bla" );
+ assert( var_Get( p_libvlc, "bla", &val ) == VLC_ENOVAR );
+
+ var_Create( p_libvlc, "bla", VLC_VAR_INTEGER );
+ var_Change( p_libvlc, "bla", VLC_VAR_SETMIN, &val, NULL );
+ assert( var_Create( p_libvlc, "bla", VLC_VAR_INTEGER | VLC_VAR_ISCOMMAND ) == VLC_SUCCESS );
+ assert( var_Type( p_libvlc, "bla" ) == (VLC_VAR_INTEGER | VLC_VAR_ISCOMMAND | VLC_VAR_HASMIN) );
+ assert( var_Create( p_libvlc, "bla", VLC_VAR_INTEGER | VLC_VAR_HASCHOICE ) == VLC_SUCCESS );
+ assert( var_Type( p_libvlc, "bla" ) == (VLC_VAR_INTEGER | VLC_VAR_ISCOMMAND | VLC_VAR_HASMIN | VLC_VAR_HASCHOICE) );
+
+ var_Destroy( p_libvlc, "bla" );
+ var_Destroy( p_libvlc, "bla" );
+ var_Destroy( p_libvlc, "bla" );
+ assert( var_Get( p_libvlc, "bla", &val ) == VLC_ENOVAR );
+
+ var_Create( p_libvlc, "bla", VLC_VAR_INTEGER );
+ var_Change( p_libvlc, "bla", VLC_VAR_SETMAX, &val, NULL );
+ var_Change( p_libvlc, "bla", VLC_VAR_SETSTEP, &val, NULL );
+ assert( var_Create( p_libvlc, "bla", VLC_VAR_INTEGER | VLC_VAR_ISCOMMAND ) == VLC_SUCCESS );
+ assert( var_Type( p_libvlc, "bla" ) == (VLC_VAR_INTEGER | VLC_VAR_ISCOMMAND | VLC_VAR_HASMAX | VLC_VAR_HASSTEP) );
+ assert( var_Create( p_libvlc, "bla", VLC_VAR_INTEGER | VLC_VAR_HASCHOICE ) == VLC_SUCCESS );
+ assert( var_Type( p_libvlc, "bla" ) == (VLC_VAR_INTEGER | VLC_VAR_ISCOMMAND | VLC_VAR_HASMAX | VLC_VAR_HASSTEP | VLC_VAR_HASCHOICE) );
+