2017-09-21 22:26:06 +03:00
/*
2015-03-06 14:54:53 +03:00
* Copyright ( C ) 2015 Red Hat , Inc .
*
2018-01-30 22:26:26 +03:00
* SPDX - License - Identifier : LGPL - 2.0 +
*
2015-03-06 14:54:53 +03:00
* This library is free software ; you can redistribute it and / or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation ; either
* version 2 of the License , or ( at your option ) any later version .
*
* This library is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the GNU
* Lesser General Public License for more details .
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library ; if not , write to the
* Free Software Foundation , Inc . , 59 Temple Place - Suite 330 ,
* Boston , MA 02111 - 1307 , USA .
*/
# include "config.h"
2015-05-05 01:08:49 +03:00
# include "libglnx.h"
2015-03-06 14:54:53 +03:00
# include "ostree-mutable-tree.h"
# include <glib.h>
# include <stdlib.h>
# include <gio/gio.h>
# include <string.h>
# include "ot-tool-util.h"
/*
gboolean
ot_parse_boolean ( const char * value ,
gboolean * out_parsed ,
GError * * error ) ;
gboolean
ot_parse_keyvalue ( const char * keyvalue ,
char * * out_key ,
char * * out_value ,
GError * * error ) ;
*/
static void
test_ot_parse_boolean ( void )
{
2016-12-02 21:45:04 +03:00
g_autoptr ( GError ) error = NULL ;
2015-03-06 14:54:53 +03:00
gboolean out = FALSE ;
g_assert_true ( ot_parse_boolean ( " yes " , & out , & error ) ) ;
g_assert_true ( out ) ;
out = FALSE ;
g_assert_true ( ot_parse_boolean ( " 1 " , & out , & error ) ) ;
g_assert_true ( out ) ;
out = FALSE ;
g_assert_true ( ot_parse_boolean ( " true " , & out , & error ) ) ;
g_assert_true ( out ) ;
g_assert_true ( ot_parse_boolean ( " false " , & out , & error ) ) ;
g_assert_false ( out ) ;
out = TRUE ;
g_assert_true ( ot_parse_boolean ( " no " , & out , & error ) ) ;
g_assert_false ( out ) ;
out = TRUE ;
g_assert_true ( ot_parse_boolean ( " 0 " , & out , & error ) ) ;
g_assert_false ( out ) ;
out = TRUE ;
g_assert_true ( ot_parse_boolean ( " none " , & out , & error ) ) ;
g_assert_false ( out ) ;
2016-12-02 21:45:04 +03:00
g_clear_error ( & error ) ;
2015-03-06 14:54:53 +03:00
g_assert_false ( ot_parse_boolean ( " FOO " , & out , & error ) ) ;
g_assert_error ( error , G_IO_ERROR , G_IO_ERROR_FAILED ) ;
2016-12-02 21:45:04 +03:00
g_clear_error ( & error ) ;
2015-03-06 14:54:53 +03:00
}
static void
test_ot_parse_keyvalue ( void )
{
2016-12-02 21:45:04 +03:00
g_autoptr ( GError ) error = NULL ;
2015-03-06 14:54:53 +03:00
char * keyvalue [ ] = { " foo=bar " , " a= " , " b=1231231 " } ;
char * key [ ] = { " foo " , " a " , " b " } ;
char * value [ ] = { " bar " , " " , " 1231231 " } ;
guint i ;
for ( i = 0 ; i < G_N_ELEMENTS ( keyvalue ) ; i + + )
{
2015-05-05 00:58:26 +03:00
g_autofree char * out_key = NULL ;
g_autofree char * out_value = NULL ;
2015-03-06 14:54:53 +03:00
g_assert_true ( ot_parse_keyvalue ( keyvalue [ i ] ,
& out_key ,
& out_value ,
& error ) ) ;
g_assert_cmpstr ( out_key , = = , key [ i ] ) ;
g_assert_cmpstr ( out_value , = = , value [ i ] ) ;
}
{
2015-05-05 00:58:26 +03:00
g_autofree char * out_key = NULL ;
g_autofree char * out_value = NULL ;
2015-03-06 14:54:53 +03:00
g_assert_false ( ot_parse_keyvalue ( " blabla " ,
& out_key ,
& out_value ,
& error ) ) ;
g_assert_error ( error , G_IO_ERROR , G_IO_ERROR_FAILED ) ;
2016-12-02 21:45:04 +03:00
g_clear_error ( & error ) ;
2015-03-06 14:54:53 +03:00
}
}
int main ( int argc , char * * argv )
{
g_test_init ( & argc , & argv , NULL ) ;
g_test_add_func ( " /ot-tool-util/parse-boolean " , test_ot_parse_boolean ) ;
g_test_add_func ( " /ot-tool-util/parse-keyvalue " , test_ot_parse_keyvalue ) ;
return g_test_run ( ) ;
}