Mesa (main): util: Use ralloc for strings in cache test

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Sat Dec 11 08:47:33 UTC 2021


Module: Mesa
Branch: main
Commit: a235e027872d974aff9afb0f24684e99cf3d5992
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=a235e027872d974aff9afb0f24684e99cf3d5992

Author: Caio Oliveira <caio.oliveira at intel.com>
Date:   Fri Dec  3 16:58:47 2021 -0800

util: Use ralloc for strings in cache test

Also avoid warnings about asprintf result not being checked.

Reviewed-by: Dylan Baker <dylan at pnwbakers.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14054>

---

 src/util/tests/cache_test.cpp | 51 ++++++++++++++++++++++++-------------------
 1 file changed, 29 insertions(+), 22 deletions(-)

diff --git a/src/util/tests/cache_test.cpp b/src/util/tests/cache_test.cpp
index ba8a4f0eced..7855fa53260 100644
--- a/src/util/tests/cache_test.cpp
+++ b/src/util/tests/cache_test.cpp
@@ -39,6 +39,7 @@
 
 #include "util/mesa-sha1.h"
 #include "util/disk_cache.h"
+#include "util/ralloc.h"
 
 #ifdef ENABLE_SHADER_CACHE
 
@@ -76,20 +77,16 @@ rmrf_local(const char *path)
 }
 
 static void
-check_directories_created(const char *cache_dir)
+check_directories_created(void *mem_ctx, const char *cache_dir)
 {
    bool sub_dirs_created = false;
 
    char buf[PATH_MAX];
    if (getcwd(buf, PATH_MAX)) {
-      char *full_path = NULL;
-      if (asprintf(&full_path, "%s%s", buf, ++cache_dir) != -1 ) {
-         struct stat sb;
-         if (stat(full_path, &sb) != -1 && S_ISDIR(sb.st_mode))
-            sub_dirs_created = true;
-
-         free(full_path);
-      }
+      char *full_path = ralloc_asprintf(mem_ctx, "%s%s", buf, ++cache_dir);
+      struct stat sb;
+      if (stat(full_path, &sb) != -1 && S_ISDIR(sb.st_mode))
+         sub_dirs_created = true;
    }
 
    EXPECT_TRUE(sub_dirs_created) << "create sub dirs";
@@ -131,7 +128,7 @@ cache_exists(struct disk_cache *cache)
 #define CACHE_TEST_TMP "./cache-test-tmp"
 
 static void
-test_disk_cache_create(const char *cache_dir_name)
+test_disk_cache_create(void *mem_ctx, const char *cache_dir_name)
 {
    struct disk_cache *cache;
    int err;
@@ -194,10 +191,9 @@ test_disk_cache_create(const char *cache_dir_name)
    EXPECT_TRUE(cache_exists(cache))
       << "disk_cache_create with XDG_CACHE_HOME set";
 
-   char *path;
-   asprintf(&path, "%s%s", CACHE_TEST_TMP "/xdg-cache-home/", cache_dir_name);
-   check_directories_created(path);
-   free(path);
+   char *path = ralloc_asprintf(
+      mem_ctx, "%s%s", CACHE_TEST_TMP "/xdg-cache-home/", cache_dir_name);
+   check_directories_created(mem_ctx, path);
 
    disk_cache_destroy(cache);
 
@@ -220,10 +216,9 @@ test_disk_cache_create(const char *cache_dir_name)
    cache = disk_cache_create("test", "make_check", 0);
    EXPECT_TRUE(cache_exists(cache)) << "disk_cache_create with MESA_GLSL_CACHE_DIR set";
 
-   asprintf(&path, "%s%s", CACHE_TEST_TMP "/mesa-glsl-cache-dir/",
-            cache_dir_name);
-   check_directories_created(path);
-   free(path);
+   path = ralloc_asprintf(
+      mem_ctx, "%s%s", CACHE_TEST_TMP "/mesa-glsl-cache-dir/", cache_dir_name);
+   check_directories_created(mem_ctx, path);
 
    disk_cache_destroy(cache);
 }
@@ -526,12 +521,24 @@ test_put_and_get_between_instances()
 }
 #endif /* ENABLE_SHADER_CACHE */
 
-TEST(Cache, MultiFile)
+class Cache : public ::testing::Test {
+protected:
+   void *mem_ctx;
+
+   Cache() {
+      mem_ctx = ralloc_context(NULL);
+   }
+   ~Cache() {
+      ralloc_free(mem_ctx);
+   }
+};
+
+TEST_F(Cache, MultiFile)
 {
 #ifndef ENABLE_SHADER_CACHE
    GTEST_SKIP() << "ENABLE_SHADER_CACHE not defined.";
 #else
-   test_disk_cache_create(CACHE_DIR_NAME);
+   test_disk_cache_create(mem_ctx, CACHE_DIR_NAME);
 
    test_put_and_get(true);
 
@@ -542,14 +549,14 @@ TEST(Cache, MultiFile)
 #endif
 }
 
-TEST(Cache, SingleFile)
+TEST_F(Cache, SingleFile)
 {
 #ifndef ENABLE_SHADER_CACHE
    GTEST_SKIP() << "ENABLE_SHADER_CACHE not defined.";
 #else
    setenv("MESA_DISK_CACHE_SINGLE_FILE", "true", 1);
 
-   test_disk_cache_create(CACHE_DIR_NAME_SF);
+   test_disk_cache_create(mem_ctx, CACHE_DIR_NAME_SF);
 
    /* We skip testing cache size limit as the single file cache currently
     * doesn't have any functionality to enforce cache size limits.



More information about the mesa-commit mailing list