<!DOCTYPE html><html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body>
    <p>Hi Kamil,</p>
    <div class="moz-cite-prefix">On 4/4/2025 8:51 PM, Kamil Konieczny
      wrote:<br>
    </div>
    <blockquote type="cite" cite="mid:20250404152138.nxtjl54vgvewe6dg@kamilkon-DESK.igk.intel.com">
      <pre wrap="" class="moz-quote-pre">Hi Naladala,
On 2025-03-26 at 02:31:44 +0530, Naladala Ramanaidu wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">Add environment variable to obtain absolute path for PNG files
at runtime.

v2: Fix review comments. (Kamil)
v3: Fix review comments. (kamil)
V4: Fix review comments. (kamil)

Signed-off-by: Naladala Ramanaidu <a class="moz-txt-link-rfc2396E" href="mailto:ramanaidu.naladala@intel.com"><ramanaidu.naladala@intel.com></a>
---
 runner/settings.c | 22 ++++++++++++++++++++++
 runner/settings.h |  1 +
 2 files changed, 23 insertions(+)

diff --git a/runner/settings.c b/runner/settings.c
index 1ccf345d9..94c95f26e 100644
--- a/runner/settings.c
+++ b/runner/settings.c
@@ -612,6 +612,21 @@ char *absolute_path(const char *path)
        return result;
 }
 
+int set_tests_datadir(void)
+{
+       const char *datapath = "../share/igt-gpu-tools";
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Hmm, maybe try also a build folder for local runs?

../build/data
../../build/data</pre>
    </blockquote>
    for local runs image paths are handled/exported by meson. In meson
    imgdir will create the path for image directory.<br>
    imho, igt_runner change not required for build/data directory.
    <blockquote type="cite" cite="mid:20250404152138.nxtjl54vgvewe6dg@kamilkon-DESK.igk.intel.com">
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+  char *abpath;
+
+       abpath = absolute_path(datapath);
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Make sure abpath is not NULL before using it.</pre>
    </blockquote>
    Sure i will change and float next rev.
    <blockquote type="cite" cite="mid:20250404152138.nxtjl54vgvewe6dg@kamilkon-DESK.igk.intel.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+
+       if (getenv("IGT_DATA_PATH") == NULL)
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Please make it simpler:
        if (getenv("IGT_DATA_PATH"))
                return 0;

And here add checks and settings.

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+          return setenv("IGT_DATA_PATH", abpath, 1);
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Btw no need for "1" - you already checked it is unset.</pre>
    </blockquote>
    i will fix this in next rev.
    <blockquote type="cite" cite="mid:20250404152138.nxtjl54vgvewe6dg@kamilkon-DESK.igk.intel.com">
      <pre wrap="" class="moz-quote-pre">

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+
+       return 0;
+}
+
+
+
 static char *bin_path(char *fname)
 {
        char *path, *p;
@@ -654,6 +669,10 @@ void init_settings(struct settings *settings)
 {
        memset(settings, 0, sizeof(*settings));
        IGT_INIT_LIST_HEAD(&settings->env_vars);
+
+       if (set_tests_datadir())
+               fprintf(stderr, "Data dir path not set\n");
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Could you also add printing of data path here?

        else
                printf("IGT data/ path: %s/\n", setting->data_path);

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">+
        igt_vec_init(&settings->hook_strs, sizeof(char *));
 }
 
@@ -671,6 +690,9 @@ void clear_settings(struct settings *settings)
        free_hook_strs(&settings->hook_strs);
        free_array_deep((void **)settings->cmdline.argv, settings->cmdline.argc);
 
+       if (getenv("IGT_DATA_PATH") != NULL)
+               unsetenv("IGT_DATA_PATH");
+
</pre>
      </blockquote>
      <pre wrap="" class="moz-quote-pre">
Please remember that is was set by runner so only unset this
if runner was setting this env var.</pre>
    </blockquote>
    <span style="white-space: pre-wrap">IGT_DATA_PATH is added only for igt_runner use case. For local runs it is not required. This env variable is set and clear by igt_runner. </span>
    <blockquote type="cite" cite="mid:20250404152138.nxtjl54vgvewe6dg@kamilkon-DESK.igk.intel.com">
      <pre wrap="" class="moz-quote-pre">

Overall looks good,

Regards,
Kamil

</pre>
      <blockquote type="cite">
        <pre wrap="" class="moz-quote-pre">   init_settings(settings);
 }
 
diff --git a/runner/settings.h b/runner/settings.h
index 30743fc40..cbcf624b0 100644
--- a/runner/settings.h
+++ b/runner/settings.h
@@ -156,5 +156,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_tests_datadir(void);
 
 #endif
-- 
2.43.0

</pre>
      </blockquote>
    </blockquote>
  </body>
</html>