Returns false (with partial state cleaned up) if setup failed. */
| 213 | |
| 214 | /* Returns false (with partial state cleaned up) if setup failed. */ |
| 215 | static bool prune_fixture_setup(prune_fixture_t *f, const char *grace_s) { |
| 216 | snprintf(f->rootdir, sizeof(f->rootdir), "/tmp/cbm_watcher_stale_root_XXXXXX"); |
| 217 | if (!cbm_mkdtemp(f->rootdir)) { |
| 218 | return false; |
| 219 | } |
| 220 | snprintf(f->cachedir, sizeof(f->cachedir), "/tmp/cbm_watcher_stale_cache_XXXXXX"); |
| 221 | if (!cbm_mkdtemp(f->cachedir)) { |
| 222 | th_rmtree(f->rootdir); |
| 223 | return false; |
| 224 | } |
| 225 | |
| 226 | f->had_cache_dir = cbm_safe_getenv("CBM_CACHE_DIR", f->saved_cache_dir, |
| 227 | sizeof(f->saved_cache_dir), NULL) != NULL; |
| 228 | f->had_grace = cbm_safe_getenv("CBM_WATCHER_PRUNE_GRACE_S", f->saved_grace, |
| 229 | sizeof(f->saved_grace), NULL) != NULL; |
| 230 | cbm_setenv("CBM_CACHE_DIR", f->cachedir, 1); |
| 231 | cbm_setenv("CBM_WATCHER_PRUNE_GRACE_S", grace_s, 1); |
| 232 | |
| 233 | snprintf(f->db_path, sizeof(f->db_path), "%s/stale-project.db", f->cachedir); |
| 234 | snprintf(f->wal_path, sizeof(f->wal_path), "%s/stale-project.db-wal", f->cachedir); |
| 235 | snprintf(f->shm_path, sizeof(f->shm_path), "%s/stale-project.db-shm", f->cachedir); |
| 236 | th_write_file(f->db_path, "db\n"); |
| 237 | th_write_file(f->wal_path, "wal\n"); |
| 238 | th_write_file(f->shm_path, "shm\n"); |
| 239 | return true; |
| 240 | } |
| 241 | |
| 242 | static void prune_fixture_teardown(prune_fixture_t *f) { |
| 243 | if (f->had_cache_dir) { |
no test coverage detected