From af8edee16aa30c47d889aa4e855ad8cea75ee7b2 Mon Sep 17 00:00:00 2001 From: Alex Kotov Date: Wed, 2 Dec 2020 01:59:53 +0500 Subject: [PATCH] Add more tests for command line parser --- tests/test_cmdline.c | 169 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 169 insertions(+) diff --git a/tests/test_cmdline.c b/tests/test_cmdline.c index 8873fa7..bfb0852 100644 --- a/tests/test_cmdline.c +++ b/tests/test_cmdline.c @@ -92,5 +92,174 @@ int main() assert(argv[index] == KERNAUX_NULL); } + //========================================================================== + + assert(kernaux_cmdline_parse( + " foo bar", + error_msg, + &argc, + argv, + buffer, + ARGV_COUNT_MAX, + ARG_SIZE_MAX + )); + + assert(strcmp(error_msg, "") == 0); + assert(argc == 2); + assert(strcmp(argv[0], "foo") == 0); + assert(strcmp(argv[1], "bar") == 0); + + for (unsigned int index = argc; index < ARGV_COUNT_MAX; ++index) { + assert(argv[index] == KERNAUX_NULL); + } + + //========================================================================== + + assert(kernaux_cmdline_parse( + "foo bar ", + error_msg, + &argc, + argv, + buffer, + ARGV_COUNT_MAX, + ARG_SIZE_MAX + )); + + assert(strcmp(error_msg, "") == 0); + assert(argc == 2); + assert(strcmp(argv[0], "foo") == 0); + assert(strcmp(argv[1], "bar") == 0); + + for (unsigned int index = argc; index < ARGV_COUNT_MAX; ++index) { + assert(argv[index] == KERNAUX_NULL); + } + + //========================================================================== + + assert(kernaux_cmdline_parse( + " foo bar ", + error_msg, + &argc, + argv, + buffer, + ARGV_COUNT_MAX, + ARG_SIZE_MAX + )); + + assert(strcmp(error_msg, "") == 0); + assert(argc == 2); + assert(strcmp(argv[0], "foo") == 0); + assert(strcmp(argv[1], "bar") == 0); + + for (unsigned int index = argc; index < ARGV_COUNT_MAX; ++index) { + assert(argv[index] == KERNAUX_NULL); + } + + //========================================================================== + + assert(kernaux_cmdline_parse( + "foo bar", + error_msg, + &argc, + argv, + buffer, + ARGV_COUNT_MAX, + ARG_SIZE_MAX + )); + + assert(strcmp(error_msg, "") == 0); + assert(argc == 2); + assert(strcmp(argv[0], "foo") == 0); + assert(strcmp(argv[1], "bar") == 0); + + for (unsigned int index = argc; index < ARGV_COUNT_MAX; ++index) { + assert(argv[index] == KERNAUX_NULL); + } + + //========================================================================== + + assert(kernaux_cmdline_parse( + " foo bar", + error_msg, + &argc, + argv, + buffer, + ARGV_COUNT_MAX, + ARG_SIZE_MAX + )); + + assert(strcmp(error_msg, "") == 0); + assert(argc == 2); + assert(strcmp(argv[0], "foo") == 0); + assert(strcmp(argv[1], "bar") == 0); + + for (unsigned int index = argc; index < ARGV_COUNT_MAX; ++index) { + assert(argv[index] == KERNAUX_NULL); + } + + //========================================================================== + + assert(kernaux_cmdline_parse( + "foo bar ", + error_msg, + &argc, + argv, + buffer, + ARGV_COUNT_MAX, + ARG_SIZE_MAX + )); + + assert(strcmp(error_msg, "") == 0); + assert(argc == 2); + assert(strcmp(argv[0], "foo") == 0); + assert(strcmp(argv[1], "bar") == 0); + + for (unsigned int index = argc; index < ARGV_COUNT_MAX; ++index) { + assert(argv[index] == KERNAUX_NULL); + } + + //========================================================================== + + assert(kernaux_cmdline_parse( + " foo bar ", + error_msg, + &argc, + argv, + buffer, + ARGV_COUNT_MAX, + ARG_SIZE_MAX + )); + + assert(strcmp(error_msg, "") == 0); + assert(argc == 2); + assert(strcmp(argv[0], "foo") == 0); + assert(strcmp(argv[1], "bar") == 0); + + for (unsigned int index = argc; index < ARGV_COUNT_MAX; ++index) { + assert(argv[index] == KERNAUX_NULL); + } + + //========================================================================== + + assert(kernaux_cmdline_parse( + "foo bar car", + error_msg, + &argc, + argv, + buffer, + ARGV_COUNT_MAX, + ARG_SIZE_MAX + )); + + assert(strcmp(error_msg, "") == 0); + assert(argc == 3); + assert(strcmp(argv[0], "foo") == 0); + assert(strcmp(argv[1], "bar") == 0); + assert(strcmp(argv[2], "car") == 0); + + for (unsigned int index = argc; index < ARGV_COUNT_MAX; ++index) { + assert(argv[index] == KERNAUX_NULL); + } + return 0; }