#include "util.h"
#include "specifier.h"
+#include "strv.h"
+
+static void test_specifier_printf(void) {
+ char *w;
-int main(int argc, char *argv[]) {
const Specifier table[] = {
{ 'a', specifier_string, (char*) "AAAA" },
{ 'b', specifier_string, (char*) "BBBB" },
{ 0, NULL, NULL }
};
+ w = specifier_printf("xxx a=%a b=%b yyy", table, NULL);
+ printf("<%s>\n", w);
+ free(w);
+}
+
+static void test_foreach_word_quoted(void) {
char *w, *state;
size_t l;
const char test[] = "test a b c 'd' e '' '' hhh '' ''";
-
printf("<%s>\n", test);
-
FOREACH_WORD_QUOTED(w, l, test, state) {
char *t;
printf("<%s>\n", t);
free(t);
}
+}
+
+static void test_strv_join(void) {
+ char *r;
+
+ const char * const input_table_multiple[] = {
+ "one",
+ "two",
+ "three",
+ NULL
+ };
+ const char * const input_table_one[] = {
+ "one",
+ NULL
+ };
+ const char * const input_table_none[] = {
+ NULL
+ };
+
+ r = strv_join((char **)input_table_multiple, ", ");
+ assert_se(streq(r, "one, two, three"));
+ puts(r);
+ free(r);
+
+ r = strv_join((char **)input_table_multiple, ";");
+ assert_se(streq(r, "one;two;three"));
+ puts(r);
+ free(r);
+ r = strv_join((char **)input_table_multiple, NULL);
+ assert_se(streq(r, "one two three"));
+ puts(r);
+ free(r);
+
+ r = strv_join((char **)input_table_one, ", ");
+ assert_se(streq(r, "one"));
+ puts(r);
+ free(r);
+
+ r = strv_join((char **)input_table_none, ", ");
+ assert_se(streq(r, ""));
+ puts(r);
+ free(r);
+}
+
+static void test_default_term_for_tty(void) {
printf("%s\n", default_term_for_tty("/dev/tty23"));
printf("%s\n", default_term_for_tty("/dev/ttyS23"));
printf("%s\n", default_term_for_tty("/dev/tty0"));
printf("%s\n", default_term_for_tty("pty0"));
printf("%s\n", default_term_for_tty("pts/0"));
printf("%s\n", default_term_for_tty("console"));
+}
- w = specifier_printf("xxx a=%a b=%b yyy", table, NULL);
- printf("<%s>\n", w);
- free(w);
+int main(int argc, char *argv[]) {
+ test_default_term_for_tty();
+ test_foreach_word_quoted();
+ test_specifier_printf();
+ test_strv_join();
return 0;
}