[LTP] [PATCH 4/6] lib: extend PATH as part of test setup

Cyril Hrubis
2017-10-10T15:18:52Z

Hi!
> +static void add_paths(void)
> +{
> + char *old_path = getenv("PATH");
> + const char *start_dir;
> + char *new_path;
> + int new_path_size;
> +
> + start_dir = tst_get_startwd();
> +
> + /* ".:" + "$start_dir" + '\0' */
> + new_path_size = 2 + strlen(start_dir) + 1;
> + if (old_path)
> + /* ":" + "$old_path" */
> + new_path_size += 1 + strlen(old_path);
> +
> + new_path = SAFE_MALLOC(new_path_size);
> + strcpy(new_path, ".:");
> + strcat(new_path, start_dir);
> +
> + if (old_path) {
> + strcat(new_path, ":");
> + strcat(new_path, old_path);
> + }

I do not like the strcat() function much, I would have probably handled
these with asprintf();

if (old_path)
SAFE_ASPRINTF(&new_path, "%s::%s", old_path, start_dir);
else
SAFE_ASPRINTF(&new_path, "::%s", start_dir);

The rest of the patchset looks good.

BTW, we should also drop the note about setting $PATH from the
documentation once this is merged.

> + SAFE_SETENV("PATH", new_path, 1);
> + free(new_path);
> +}
> +
> static void testrun(void)
> {
> unsigned int i = 0;
> unsigned long long stop_time = 0;
> int cont = 1;
>
> + add_paths();
> do_test_setup();
>
> if (duration > 0)
> --
> 1.8.3.1
>
>
> --
> Mailing list info: https://lists.linux.it/listinfo/ltp

--
Cyril Hrubis
chrubis@suse.cz