[PATCH i-g-t v2 3/5] runner/settings: Add function to set IGT_RUNNER_DATA environment variable
Naladala, Ramanaidu
Ramanaidu.naladala at intel.com
Tue Feb 18 21:14:36 UTC 2025
On 1/16/2025 6:06 PM, Kamil Konieczny wrote:
> Hi Naladala,
> On 2025-01-08 at 01:36:12 +0530, Naladala Ramanaidu wrote:
>> Introduced set_runner_datadir() to set the IGT_RUNNER_DATA environment
>> variable. This function uses absolute_path() to convert the relative
>> path "../share/igt-gpu-tools" to an absolute path.
>> Update the
>> runner/runner code to call set_runner_datadir() and handle errors
>> appropriately.
> Please do not translate code into words, is it there in a patch itself.
> imho here the most important part is description why we need it and
> what problem you try to resolve.
Sure Kamil. Thanks for the review. I will update the commit message.
>
>> v2: Fix review comments. (Kamil)
>>
>> Signed-off-by: Naladala Ramanaidu<ramanaidu.naladala at intel.com>
>> ---
>> runner/runner.c | 8 ++++++++
>> runner/settings.c | 9 +++++++++
>> runner/settings.h | 1 +
>> 3 files changed, 18 insertions(+)
>>
>> diff --git a/runner/runner.c b/runner/runner.c
>> index 4855ad641..950eb5662 100644
>> --- a/runner/runner.c
>> +++ b/runner/runner.c
>> @@ -12,8 +12,13 @@ int main(int argc, char **argv)
>> struct job_list job_list;
>> struct execute_state state;
>> int exitcode = 0;
>> + int data_flag = 0;
>>
>> init_settings(&settings);
>> + data_flag = set_runner_datadir();
>> + if (data_flag)
>> + fprintf(stderr, "Data dir path not set\n");
> Why an error? You could check if './data' path is present
> but this imho should be done in init_settings(), not here.
Sure. I will move this to init_setting(). Error message is required to
understand the test failure.
env variable is not permanent it will be cleared before stop igt_runner
execution.
>
>> +
>> init_job_list(&job_list);
>>
>> if (!parse_options(argc, argv, &settings)) {
>> @@ -49,6 +54,9 @@ int main(int argc, char **argv)
>> exitcode = 1;
>> }
>>
>> + if (!data_flag)
>> + unsetenv("IGT_RUNNER_DATA");
>> +
>> printf("Done.\n");
>> return exitcode;
>> }
>> diff --git a/runner/settings.c b/runner/settings.c
>> index bea0c3059..c8220be32 100644
>> --- a/runner/settings.c
>> +++ b/runner/settings.c
>> @@ -589,6 +589,15 @@ char *absolute_path(const char *path)
>> return result;
>> }
>>
>> +int set_runner_datadir(void)
> The only user of this function is in runner.c
> so why do you need it here?
>
>> +{
>> + const char *datapath = "../share/igt-gpu-tools";
>> + char *abpath;
>> +
>> + abpath = absolute_path(datapath);
>> + return setenv("IGT_RUNNER_DATA", abpath, 1);
> Why are you setting this var here? It could be set by a user
> so why are you overwriting it in that case?
>
> imho you do not need this function but maybe I am missing something?
>
> Regards,
> Kamil
Hi Kamil,
This env variable is not set by the user. In previously, image files
path is hard coded
and when we ran test from different locations causing test fail. This
env variable is
set by the runner and useful to get the absolute path of the image
directory on
runtime. This env variable will set by igt_runner and cleared env
variable before
runner complete the test execution.
>
>> +}
>> +
>> static char *bin_path(char *fname)
>> {
>> char *path, *p;
>> diff --git a/runner/settings.h b/runner/settings.h
>> index 7e6cd11e2..5926817b6 100644
>> --- a/runner/settings.h
>> +++ b/runner/settings.h
>> @@ -150,5 +150,6 @@ bool serialize_settings(struct settings *settings);
>>
>> bool read_settings_from_file(struct settings *settings, FILE* f);
>> bool read_settings_from_dir(struct settings *settings, int dirfd);
>> +int set_runner_datadir(void);
>>
>> #endif
>> --
>> 2.43.0
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/igt-dev/attachments/20250219/7dd40e4f/attachment.htm>
More information about the igt-dev
mailing list