[Mesa-dev] [PATCH 4/7] glsl/tests: changes to test_disk_cache_create test
Tapani Pälli
tapani.palli at intel.com
Wed Jan 31 07:17:03 UTC 2018
Next patch will allow disk_cache instance to be created without
path set for it, remove some test cases that assume disk_cache
creation to fail with invalid path.
To test if different paths work, insert put/get cycle before
directory check so that path gets properly created.
Signed-off-by: Tapani Pälli <tapani.palli at intel.com>
---
src/compiler/glsl/tests/cache_test.c | 51 ++++++++++++++----------------------
1 file changed, 20 insertions(+), 31 deletions(-)
diff --git a/src/compiler/glsl/tests/cache_test.c b/src/compiler/glsl/tests/cache_test.c
index dd11fd5944..4a2f43a4c3 100644
--- a/src/compiler/glsl/tests/cache_test.c
+++ b/src/compiler/glsl/tests/cache_test.c
@@ -182,21 +182,25 @@ wait_until_file_written(struct disk_cache *cache, const cache_key key)
}
}
+static void *
+verify_cache_existence(struct disk_cache *cache)
+{
+ uint8_t dummy_key[20];
+ char *data = "some test data";
+
+ disk_cache_put(cache, dummy_key, data, sizeof(data), NULL);
+ wait_until_file_written(cache, dummy_key);
+ return disk_cache_get(cache, dummy_key, NULL);
+}
+
#define CACHE_TEST_TMP "./cache-test-tmp"
static void
test_disk_cache_create(void)
{
struct disk_cache *cache;
- int err;
-
- /* Before doing anything else, ensure that with
- * MESA_GLSL_CACHE_DISABLE set to true, that disk_cache_create returns NULL.
- */
- setenv("MESA_GLSL_CACHE_DISABLE", "true", 1);
- cache = disk_cache_create("test", "make_check", 0);
- expect_null(cache, "disk_cache_create with MESA_GLSL_CACHE_DISABLE set");
+ /* Make sure disk cache is enabled. */
unsetenv("MESA_GLSL_CACHE_DISABLE");
/* For the first real disk_cache_create() clear these environment
@@ -206,41 +210,26 @@ test_disk_cache_create(void)
unsetenv("XDG_CACHE_HOME");
cache = disk_cache_create("test", "make_check", 0);
- expect_non_null(cache, "disk_cache_create with no environment variables");
-
+ expect_non_null(verify_cache_existence(cache),
+ "cache works with no environment variables");
disk_cache_destroy(cache);
- /* Test with XDG_CACHE_HOME set */
- setenv("XDG_CACHE_HOME", CACHE_TEST_TMP "/xdg-cache-home", 1);
- cache = disk_cache_create("test", "make_check", 0);
- expect_null(cache, "disk_cache_create with XDG_CACHE_HOME set with"
- "a non-existing parent directory");
-
mkdir(CACHE_TEST_TMP, 0755);
- cache = disk_cache_create("test", "make_check", 0);
- expect_non_null(cache, "disk_cache_create with XDG_CACHE_HOME set");
+ setenv("XDG_CACHE_HOME", CACHE_TEST_TMP "/xdg-cache-home", 1);
+ cache = disk_cache_create("test", "make_check", 0);
+ expect_non_null(verify_cache_existence(cache),
+ "cache works with XDG_CACHE_HOME set");
check_directories_created(CACHE_TEST_TMP "/xdg-cache-home/"
CACHE_DIR_NAME);
-
disk_cache_destroy(cache);
- /* Test with MESA_GLSL_CACHE_DIR set */
- err = rmrf_local(CACHE_TEST_TMP);
- expect_equal(err, 0, "Removing " CACHE_TEST_TMP);
-
setenv("MESA_GLSL_CACHE_DIR", CACHE_TEST_TMP "/mesa-glsl-cache-dir", 1);
cache = disk_cache_create("test", "make_check", 0);
- expect_null(cache, "disk_cache_create with MESA_GLSL_CACHE_DIR set with"
- "a non-existing parent directory");
-
- mkdir(CACHE_TEST_TMP, 0755);
- cache = disk_cache_create("test", "make_check", 0);
- expect_non_null(cache, "disk_cache_create with MESA_GLSL_CACHE_DIR set");
-
+ expect_non_null(verify_cache_existence(cache),
+ "cache works with MESA_GLSL_CACHE_DIR set");
check_directories_created(CACHE_TEST_TMP "/mesa-glsl-cache-dir/"
CACHE_DIR_NAME);
-
disk_cache_destroy(cache);
}
--
2.13.6
More information about the mesa-dev
mailing list