From 288a74cce597f81d3ba01d8a5ca7d2ba5b654b7e Mon Sep 17 00:00:00 2001 From: Ronny Chevalier Date: Fri, 10 Apr 2015 23:15:59 +0200 Subject: shared: add terminal-util.[ch] --- src/test/test-ellipsize.c | 1 + src/test/test-process-util.c | 1 + src/test/test-strip-tab-ansi.c | 1 + src/test/test-terminal-util.c | 84 ++++++++++++++++++++++++++++++++++++++++++ src/test/test-util.c | 49 ------------------------ 5 files changed, 87 insertions(+), 49 deletions(-) create mode 100644 src/test/test-terminal-util.c (limited to 'src/test') diff --git a/src/test/test-ellipsize.c b/src/test/test-ellipsize.c index 6a2f9aa943..27df9089c3 100644 --- a/src/test/test-ellipsize.c +++ b/src/test/test-ellipsize.c @@ -22,6 +22,7 @@ #include #include "util.h" +#include "terminal-util.h" #include "def.h" static void test_one(const char *p) { diff --git a/src/test/test-process-util.c b/src/test/test-process-util.c index a17ef144fc..1de100cdae 100644 --- a/src/test/test-process-util.c +++ b/src/test/test-process-util.c @@ -28,6 +28,7 @@ #include "util.h" #include "macro.h" #include "virt.h" +#include "terminal-util.h" static void test_get_process_comm(void) { struct stat st; diff --git a/src/test/test-strip-tab-ansi.c b/src/test/test-strip-tab-ansi.c index 5016906ad0..358454842a 100644 --- a/src/test/test-strip-tab-ansi.c +++ b/src/test/test-strip-tab-ansi.c @@ -22,6 +22,7 @@ #include #include "util.h" +#include "terminal-util.h" int main(int argc, char *argv[]) { char *p; diff --git a/src/test/test-terminal-util.c b/src/test/test-terminal-util.c new file mode 100644 index 0000000000..d81fdb9923 --- /dev/null +++ b/src/test/test-terminal-util.c @@ -0,0 +1,84 @@ +/*** + This file is part of systemd. + + Copyright 2010 Lennart Poettering + Copyright 2013 Thomas H.P. Andersen + + 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 . +***/ + +#include +#include + +#include "terminal-util.h" +#include "macro.h" +#include "util.h" +#include "log.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; + + fd = mkostemp_safe(name, O_RDWR|O_CLOEXEC); + 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); +} + +int main(int argc, char *argv[]) { + log_parse_environment(); + log_open(); + + test_default_term_for_tty(); + test_read_one_char(); + + return 0; +} diff --git a/src/test/test-util.c b/src/test/test-util.c index bfd4df946d..fdb772ddda 100644 --- a/src/test/test-util.c +++ b/src/test/test-util.c @@ -522,21 +522,6 @@ static void test_foreach_word_quoted(void) { true); } -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_memdup_multiply(void) { int org[] = {1, 2, 3}; int *dup; @@ -981,38 +966,6 @@ static void test_readlink_and_make_absolute(void) { assert_se(rm_rf(tempdir, REMOVE_ROOT|REMOVE_PHYSICAL) >= 0); } -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; - - fd = mkostemp_safe(name, O_RDWR|O_CLOEXEC); - 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); -} - static void test_ignore_signals(void) { assert_se(ignore_signals(SIGINT, -1) >= 0); assert_se(kill(getpid(), SIGINT) >= 0); @@ -1525,7 +1478,6 @@ int main(int argc, char *argv[]) { test_cunescape(); test_foreach_word(); test_foreach_word_quoted(); - test_default_term_for_tty(); test_memdup_multiply(); test_hostname_is_valid(); test_u64log2(); @@ -1552,7 +1504,6 @@ int main(int argc, char *argv[]) { test_close_nointr(); test_unlink_noerrno(); test_readlink_and_make_absolute(); - test_read_one_char(); test_ignore_signals(); test_strshorten(); test_strjoina(); -- cgit v1.2.3-54-g00ecf