2013-09-17 23:39:09 +04:00
/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
/***
This file is part of systemd .
Copyright 2013 Dave Reisner
systemd 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.1 of the License , or
( at your option ) any later version .
systemd 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 systemd ; If not , see < http : //www.gnu.org/licenses/>.
* * */
# include "utf8.h"
# include "util.h"
2013-09-18 19:52:14 +04:00
static void test_utf8_is_printable ( void ) {
assert_se ( utf8_is_printable ( " ascii is valid \t unicode " , 22 ) ) ;
assert_se ( utf8_is_printable ( " \342 \204 \242 " , 3 ) ) ;
assert_se ( ! utf8_is_printable ( " \341 \204 " , 2 ) ) ;
}
2013-09-17 23:39:09 +04:00
static void test_utf8_is_valid ( void ) {
assert_se ( utf8_is_valid ( " ascii is valid unicode " ) ) ;
2013-09-18 20:12:04 +04:00
assert_se ( utf8_is_valid ( " \342 \204 \242 " ) ) ;
2013-09-17 23:39:09 +04:00
assert_se ( ! utf8_is_valid ( " \341 \204 " ) ) ;
}
2013-09-18 20:32:23 +04:00
static void test_ascii_is_valid ( void ) {
assert_se ( ascii_is_valid ( " alsdjf \t \v barr \n ba z " ) ) ;
assert_se ( ! ascii_is_valid ( " \342 \204 \242 " ) ) ;
assert_se ( ! ascii_is_valid ( " \341 \204 " ) ) ;
}
static void test_ascii_filter ( void ) {
char * f ;
f = ascii_filter ( " alsdjf \t \v barr \n ba z " ) ;
assert_se ( streq ( f , " alsdjf \t \v barr \n ba z " ) ) ;
free ( f ) ;
f = ascii_filter ( " \342 \204 \242 " ) ;
assert_se ( streq ( f , " " ) ) ;
free ( f ) ;
f = ascii_filter ( " foo \341 \204 bar " ) ;
assert_se ( streq ( f , " foobar " ) ) ;
free ( f ) ;
}
static void test_utf8_encoded_valid_unichar ( void ) {
assert_se ( utf8_encoded_valid_unichar ( " \342 \204 \242 " ) = = 3 ) ;
assert_se ( utf8_encoded_valid_unichar ( " \302 \256 " ) = = 2 ) ;
assert_se ( utf8_encoded_valid_unichar ( " a " ) = = 1 ) ;
assert_se ( utf8_encoded_valid_unichar ( " \341 \204 " ) < 0 ) ;
assert_se ( utf8_encoded_valid_unichar ( " \341 \204 \341 \204 " ) < 0 ) ;
}
2013-09-17 23:39:09 +04:00
int main ( int argc , char * argv [ ] ) {
test_utf8_is_valid ( ) ;
2013-09-18 19:52:14 +04:00
test_utf8_is_printable ( ) ;
2013-09-18 20:32:23 +04:00
test_ascii_is_valid ( ) ;
test_ascii_filter ( ) ;
test_utf8_encoded_valid_unichar ( ) ;
2013-09-18 19:52:14 +04:00
return 0 ;
2013-09-17 23:39:09 +04:00
}