2017-11-18 19:09:20 +03:00
/* SPDX-License-Identifier: LGPL-2.1+ */
2015-04-11 00:15:59 +03:00
/***
This file is part of systemd .
Copyright 2010 Lennart Poettering
Copyright 2013 Thomas H . P . Andersen
* * */
# include <stdbool.h>
2015-11-17 00:09:36 +03:00
# include <stdio.h>
2015-04-11 00:15:59 +03:00
2018-04-19 18:48:53 +03:00
# include "alloc-util.h"
2015-10-26 20:05:03 +03:00
# include "fd-util.h"
# include "fileio.h"
# include "log.h"
2015-04-11 00:15:59 +03:00
# include "macro.h"
2015-10-26 20:05:03 +03:00
# include "terminal-util.h"
2015-04-11 00:15:59 +03:00
# include "util.h"
static void test_default_term_for_tty ( void ) {
puts ( default_term_for_tty ( " /dev/tty23 " ) ) ;
puts ( default_term_for_tty ( " /dev/ttyS23 " ) ) ;
puts ( default_term_for_tty ( " /dev/tty0 " ) ) ;
puts ( default_term_for_tty ( " /dev/pty0 " ) ) ;
puts ( default_term_for_tty ( " /dev/pts/0 " ) ) ;
puts ( default_term_for_tty ( " /dev/console " ) ) ;
puts ( default_term_for_tty ( " tty23 " ) ) ;
puts ( default_term_for_tty ( " ttyS23 " ) ) ;
puts ( default_term_for_tty ( " tty0 " ) ) ;
puts ( default_term_for_tty ( " pty0 " ) ) ;
puts ( default_term_for_tty ( " pts/0 " ) ) ;
puts ( default_term_for_tty ( " console " ) ) ;
}
static void test_read_one_char ( void ) {
_cleanup_fclose_ FILE * file = NULL ;
char r ;
bool need_nl ;
char name [ ] = " /tmp/test-read_one_char.XXXXXX " ;
int fd ;
2016-09-13 09:20:38 +03:00
fd = mkostemp_safe ( name ) ;
2015-04-11 00:15:59 +03:00
assert_se ( fd > = 0 ) ;
file = fdopen ( fd , " r+ " ) ;
assert_se ( file ) ;
assert_se ( fputs ( " c \n " , file ) > = 0 ) ;
rewind ( file ) ;
assert_se ( read_one_char ( file , & r , 1000000 , & need_nl ) > = 0 ) ;
assert_se ( ! need_nl ) ;
assert_se ( r = = ' c ' ) ;
assert_se ( read_one_char ( file , & r , 1000000 , & need_nl ) < 0 ) ;
rewind ( file ) ;
assert_se ( fputs ( " foobar \n " , file ) > = 0 ) ;
rewind ( file ) ;
assert_se ( read_one_char ( file , & r , 1000000 , & need_nl ) < 0 ) ;
rewind ( file ) ;
assert_se ( fputs ( " \n " , file ) > = 0 ) ;
rewind ( file ) ;
assert_se ( read_one_char ( file , & r , 1000000 , & need_nl ) < 0 ) ;
unlink ( name ) ;
}
2018-04-19 18:48:53 +03:00
static void test_terminal_urlify ( void ) {
_cleanup_free_ char * formatted = NULL ;
assert_se ( terminal_urlify ( " https://www.freedesktop.org/wiki/Software/systemd/ " , " systemd homepage " , & formatted ) > = 0 ) ;
printf ( " Hey, considere visiting the %s right now! It is very good! \n " , formatted ) ;
formatted = mfree ( formatted ) ;
assert_se ( terminal_urlify_path ( " /etc/fstab " , " this link to your /etc/fstab " , & formatted ) > = 0 ) ;
printf ( " Or click on %s to have a look at it! \n " , formatted ) ;
}
2015-04-11 00:15:59 +03:00
int main ( int argc , char * argv [ ] ) {
log_parse_environment ( ) ;
log_open ( ) ;
test_default_term_for_tty ( ) ;
test_read_one_char ( ) ;
2018-04-19 18:48:53 +03:00
test_terminal_urlify ( ) ;
2015-04-11 00:15:59 +03:00
return 0 ;
}