diff --git a/userspace/include/unit/args.h b/userspace/include/unit/args.h index f2413fec8..e02cd60a4 100644 --- a/userspace/include/unit/args.h +++ b/userspace/include/unit/args.h @@ -44,6 +44,7 @@ struct unit_fw_args { bool no_color; int thread_count; bool nvtest; + const char *binary_name; const char *unit_name; const char *unit_load_path; diff --git a/userspace/src/args.c b/userspace/src/args.c index 79fec0767..79eb83340 100644 --- a/userspace/src/args.c +++ b/userspace/src/args.c @@ -102,6 +102,15 @@ int core_parse_args(struct unit_fw *fw, int argc, char **argv) memset(args, 0, sizeof(*args)); set_arg_defaults(args); + args->binary_name = strrchr(argv[0], '/'); + if (args->binary_name == NULL) { + /* no slash, so use the whole name */ + args->binary_name = argv[0]; + } else { + /* move past the slash */ + args->binary_name++; + } + fw->args = args; while (1) { diff --git a/userspace/src/exec.c b/userspace/src/exec.c index 9f8e38508..8c9233518 100644 --- a/userspace/src/exec.c +++ b/userspace/src/exec.c @@ -83,21 +83,9 @@ static void *core_exec_module(void *module_param) core_msg(module->fw, "Running %s.%s\n", module->name, t->name); - if (args(module->fw)->nvtest) { - /* special prints for NVTEST fw in GVS */ - printf("[%s: %s.%s]\n", - "start", - module->name, t->name); - } test_status = t->fn(module, g, t->args); - if (args(module->fw)->nvtest) { - /* special prints for NVTEST fw in GVS */ - printf("[%s: %s.%s]\n", - test_status == UNIT_SUCCESS ? "pass" : "fail", - module->name, t->name); - } if (test_status != UNIT_SUCCESS) core_msg_color(module->fw, C_RED, " Unit error! Test %s.%s FAILED!\n", @@ -183,6 +171,10 @@ int core_exec(struct unit_fw *fw) struct unit_module **modules; int err = 0; + if (args(fw)->nvtest) { + /* special prints for NVTEST fw in GVS */ + printf("[start: %s]\n", args(fw)->binary_name); + } core_vbs(fw, 1, "Using %d threads\n", fw->args->thread_count); sem_init(&unit_thread_semaphore, 0, fw->args->thread_count); @@ -215,5 +207,12 @@ int core_exec(struct unit_fw *fw) } } + if (args(fw)->nvtest) { + /* special prints for NVTEST fw in GVS */ + printf("[%s: %s]\n", + fw->results->nr_tests == fw->results->nr_passing ? + "pass" : "fail", + args(fw)->binary_name); + } return 0; }