X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=test%2Fcommand_ut.c;h=926573a39543c816281a879922ce9ca4c83dd3b1;hb=91785f70b9b7ebfd1a2da4772a8268b36f58fa3d;hp=b6b6976616156cbcb29a972cc1f6d7c2d39f7b79;hpb=fe9ca3d3287185e388de55904420cc7915e4a3b1;p=oweals%2Fu-boot.git diff --git a/test/command_ut.c b/test/command_ut.c index b6b6976616..926573a395 100644 --- a/test/command_ut.c +++ b/test/command_ut.c @@ -7,6 +7,9 @@ #define DEBUG #include +#ifdef CONFIG_SANDBOX +#include +#endif static const char test_cmd[] = "setenv list 1\n setenv list ${list}2; " "setenv list ${list}3\0" @@ -58,7 +61,26 @@ static int do_ut_cmd(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) "setenv list ${list}3", strlen("setenv list 1"), 0); assert(!strcmp("1", getenv("list"))); + assert(run_command("false", 0) == 1); + assert(run_command("echo", 0) == 0); + assert(run_command_list("false", -1, 0) == 1); + assert(run_command_list("echo", -1, 0) == 0); + + run_command("setenv foo 'setenv monty 1; setenv python 2'", 0); + run_command("run foo", 0); + assert(getenv("monty") != NULL); + assert(!strcmp("1", getenv("monty"))); + assert(getenv("python") != NULL); + assert(!strcmp("2", getenv("python"))); + #ifdef CONFIG_SYS_HUSH_PARSER + run_command("setenv foo 'setenv black 1\nsetenv adder 2'", 0); + run_command("run foo", 0); + assert(getenv("black") != NULL); + assert(!strcmp("1", getenv("black"))); + assert(getenv("adder") != NULL); + assert(!strcmp("2", getenv("adder"))); + /* Test the 'test' command */ #define HUSH_TEST(name, expr, expected_result) \ @@ -156,15 +178,21 @@ static int do_ut_cmd(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) setenv("ut_var_test", NULL); #ifdef CONFIG_SANDBOX - /* - * File existence - * This assume U-Boot sandbox is run from the U-Boot build directory - */ - HUSH_TEST(e, "-e host - u-boot", y); - HUSH_TEST(e, "-e host - creating_this_file_breaks_uboot_unit_test", n); + /* File existence */ + HUSH_TEST(e, "-e hostfs - creating_this_file_breaks_uboot_unit_test", n); + run_command("sb save hostfs - creating_this_file_breaks_uboot_unit_test 0 1", 0); + HUSH_TEST(e, "-e hostfs - creating_this_file_breaks_uboot_unit_test", y); + /* Perhaps this could be replaced by an "rm" shell command one day */ + assert(!os_unlink("creating_this_file_breaks_uboot_unit_test")); + HUSH_TEST(e, "-e hostfs - creating_this_file_breaks_uboot_unit_test", n); #endif #endif + assert(run_command("", 0) == 0); + assert(run_command(" ", 0) == 0); + + assert(run_command("'", 0) == 1); + printf("%s: Everything went swimmingly\n", __func__); return 0; }