diff --git a/lib/strutils.c b/lib/strutils.c index bfe2cd0b..325e18c2 100644 --- a/lib/strutils.c +++ b/lib/strutils.c @@ -46,6 +46,13 @@ double strtod_or_err(const char *str, const char *errmesg) #ifdef TEST_PROGRAM int main(int argc, char *argv[]) { - return EXIT_FAILURE; + if (argc < 2) { + error(EXIT_FAILURE, 0, "no arguments"); + } else if (argc < 3) { + printf("%ld\n", strtol_or_err(argv[1], "strtol_or_err")); + } else { + printf("%lf\n", strtod_or_err(argv[2], "strtod_or_err")); + } + return EXIT_SUCCESS; } #endif /* TEST_PROGRAM */ diff --git a/testsuite/Makefile.am b/testsuite/Makefile.am index 3f795323..62acfa64 100644 --- a/testsuite/Makefile.am +++ b/testsuite/Makefile.am @@ -34,6 +34,7 @@ EXTRA_DIST = \ global-conf.exp \ free.test/free.exp \ kill.test/kill.exp \ + lib.test/strutils.exp \ pgrep.test/pgrep.exp \ pkill.test/pkill.exp \ pmap.test/pmap.exp \ diff --git a/testsuite/lib.test/strutils.exp b/testsuite/lib.test/strutils.exp new file mode 100644 index 00000000..7afa8f78 --- /dev/null +++ b/testsuite/lib.test/strutils.exp @@ -0,0 +1,25 @@ +# +# Testsuite for lib/strutils program +# + +set teststr "${topdir}lib/test_strutils" + +set test "without argument" +spawn $teststr +expect_pass "$test" "test_strutils: no arguments" + +set test "test long" +spawn $teststr 1 +expect_pass "$test" "1" + +set test "test long fail" +spawn $teststr fail +expect_pass "$test" "test_strutils: strtol_or_err: \'fail\'" + +set test "test double" +spawn $teststr dummy 1.1 +expect_pass "$test" "1.100000" + +set test "test double fail" +spawn $teststr dummy fail +expect_pass "$test" "test_strutils: strtod_or_err: \'fail\'"