[eglib] Add more tests for the g_shell_parse
authorMiguel de Icaza <miguel@gnome.org>
Sun, 9 Jan 2011 04:08:15 +0000 (23:08 -0500)
committerMiguel de Icaza <miguel@gnome.org>
Sun, 9 Jan 2011 04:10:27 +0000 (23:10 -0500)
eglib/test/shell.c

index c55e27c6300897087d6076178a08dadcc5631ce3..4715f1ca7e812877771e013585f24acc9f3f73fa 100644 (file)
@@ -55,7 +55,7 @@ test_shell_argv1 ()
        if (!ret)
                return FAILED ("11. It should return TRUE");
        if (argc != 2)
-               return FAILED ("12. argc was %d", argc);
+               return FAILED ("12. argc was %d expected 2", argc);
        if (strcmp (argv [0], "hola"))
                return FAILED ("13. argv[0] was %s", argv [0]);
        if (strcmp (argv [1], "bola"))
@@ -72,7 +72,7 @@ test_shell_argv1 ()
        if (!ret)
                return FAILED ("16. It should return TRUE");
        if (argc != 3)
-               return FAILED ("17. argc was %d", argc);
+               return FAILED ("17. argc was %d expected 3", argc);
        if (strcmp (argv [0], "hola"))
                return FAILED ("18. argv[0] was %s", argv [0]);
        if (strcmp (argv [1], ""))
@@ -85,6 +85,19 @@ test_shell_argv1 ()
        g_strfreev (argv);
        argv = NULL;
        argc = 0;
+       error = NULL;
+       ret = g_shell_parse_argv ("hola'' bola", &argc, &argv, &error);
+       if (!ret)
+               return FAILED ("21. It should return TRUE");
+       if (argc != 2)
+               return FAILED ("22. argc was %d expected 2", argc);
+       if (strcmp (argv [0], "hola"))
+               return FAILED ("23. argv[0] was %s", argv [0]);
+       if (strcmp (argv [1], "bola"))
+               return FAILED ("24. argv[2] was %s", argv [1]);
+       if (error != NULL)
+               return FAILED ("25. error is not null");
+       
        return OK;
 }
 
@@ -103,7 +116,7 @@ test_shell_argv2 ()
        if (!ret)
                return FAILED ("1. It should return TRUE");
        if (argc != 2)
-               return FAILED ("2. argc was %d", argc);
+               return FAILED ("2. argc was %d expected 2", argc);
        if (strcmp (argv [0], "hola"))
                return FAILED ("3. argv[0] was %s", argv [0]);
        if (strcmp (argv [1], "bola"))
@@ -119,7 +132,7 @@ test_shell_argv2 ()
        if (!ret)
                return FAILED ("6. It should return TRUE");
        if (argc != 3)
-               return FAILED ("7. argc was %d", argc);
+               return FAILED ("7. argc was %d expected 3", argc);
        if (strcmp (argv [0], "hola"))
                return FAILED ("8. argv[0] was %s", argv [0]);
        if (strcmp (argv [1], ""))
@@ -137,7 +150,7 @@ test_shell_argv2 ()
        if (!ret)
                return FAILED ("10. It should return TRUE");
        if (argc != 3)
-               return FAILED ("11. argc was %d", argc);
+               return FAILED ("11. argc was %d expected 3", argc);
        if (strcmp (argv [0], "hola"))
                return FAILED ("12. argv[0] was %s", argv [0]);
        if (strcmp (argv [1], "\t"))
@@ -155,7 +168,7 @@ test_shell_argv2 ()
        if (!ret)
                return FAILED ("16. It should return TRUE");
        if (argc != 3)
-               return FAILED ("17. argc was %d", argc);
+               return FAILED ("17. argc was %d expected 3", argc);
        if (strcmp (argv [0], "hola"))
                return FAILED ("18. argv[0] was %s", argv [0]);
        if (strcmp (argv [1], "\t"))
@@ -184,7 +197,7 @@ test_shell_argv3 ()
        if (ret)
                return FAILED ("1. It should return FALSE");
        if (argc != 0)
-               return FAILED ("2. argc was %d", argc);
+               return FAILED ("2. argc was %d expected 0", argc);
        if (argv != NULL)
                return FAILED ("3. argv[0] was %s", argv [0]);
        if (error == NULL)
@@ -197,7 +210,7 @@ test_shell_argv3 ()
        if (!ret)
                return FAILED ("5. It should return TRUE");
        if (argc != 2)
-               return FAILED ("6. argc was %d", argc);
+               return FAILED ("6. argc was %d expected 2", argc);
        if (strcmp (argv [0], "hola"))
                return FAILED ("18. argv[0] was %s", argv [0]);
        if (strcmp (argv [1], "\"bola"))
@@ -212,7 +225,7 @@ test_shell_argv3 ()
        if (!ret)
                return FAILED ("9. It should return TRUE. %s", error->message);
        if (argc != 2)
-               return FAILED ("10. argc was %d", argc);
+               return FAILED ("10. argc was %d expected 2", argc);
        if (strcmp (argv [0], "hola"))
                return FAILED ("11. argv[0] was %s", argv [0]);
        if (strcmp (argv [1], "\n\\'bola"))
@@ -243,7 +256,7 @@ test_shell_argv4 ()
        if (!ret)
                return FAILED ("1. It should return TRUE");
        if (argc != 3)
-               return FAILED ("2. argc was %d", argc);
+               return FAILED ("2. argc was %d expected 3", argc);
        if (argv == NULL)
                return FAILED ("3. argv[0] was NULL");
        if (error != NULL)
@@ -259,6 +272,37 @@ test_shell_argv4 ()
        return OK;
 }
 
+// This is https://bugzilla.novell.com/show_bug.cgi?id=655896
+RESULT
+test_shell_argv5 ()
+{
+       GError *error;
+       gint argc;
+       gchar **argv;
+       gboolean ret;
+       char *str = "echo \"foo\",\"bar\"";
+
+       argv = NULL;
+       argc = 0;
+       error = NULL;
+       ret = g_shell_parse_argv (str, &argc, &argv, &error);
+       if (!ret)
+               return FAILED ("1. It should return TRUE");
+       if (argc != 2)
+               return FAILED ("2. argc was %d expected 2", argc);
+       if (argv == NULL)
+               return FAILED ("3. argv[0] was NULL");
+       if (error != NULL)
+               return FAILED ("4. error was set");
+
+       if (strcmp (argv [0], "echo"))
+               return FAILED ("5. Expected echo got %s", argv [0]);
+       if (strcmp (argv [1], "foo,bar"))
+               return FAILED ("6. Expected foo,bar, got: %s", argv [1]);
+       
+       return OK;
+}
+
 RESULT
 test_quote ()
 {
@@ -274,10 +318,11 @@ test_quote ()
 }
 
 static Test shell_tests [] = {
-       {"g_shell_parse_argv1", test_shell_argv1},
-       {"g_shell_parse_argv2", test_shell_argv2},
-       {"g_shell_parse_argv3", test_shell_argv3},
-       {"g_shell_parse_argv4", test_shell_argv4},
+       {"test_shell_argv1", test_shell_argv1},
+       {"test_shell_argv2", test_shell_argv2},
+       {"test_shell_argv3", test_shell_argv3},
+       {"test_shell_argv4", test_shell_argv4},
+       {"test_shell_argv5", test_shell_argv5},
        {"g_shell_quote", test_quote},
        {NULL, NULL}
 };