mirror of
https://github.com/trapexit/mergerfs.git
synced 2026-10-26 02:48:59 -04:00
Remove timed node removal
This commit is contained in:
parent
8117998205
commit
f1034a3ad6
14 changed files with 176 additions and 257 deletions
|
|
@ -100,8 +100,8 @@ Legend:
|
|||
| Option | Integration tests | Unit tests |
|
||||
|---|---|---|
|
||||
| `lazy-umount-mountpoint` | Live-upgrade remount scenario with stale previous mount | Startup control flow and error handling |
|
||||
| `remember-nodes` | NFS-like lookup stability over configured retention interval | Node cache retention/expiry logic |
|
||||
| `noforget` | No node expiry over extended period | Infinite retention mode mapping |
|
||||
| `remember-nodes` | NFS-like lookup stability until unlink/remove/rename replacement | Boolean and numeric compatibility parsing |
|
||||
| `noforget` | Retained nodes released on unlink/remove/rename replacement | Alias mapping to retained-node mode |
|
||||
| `allow-idmap` | UID/GID mapping behavior in idmapped mounts | Init flag propagation and compatibility checks |
|
||||
| `debug` | FUSE trace generation enabled/disabled | Debug option parse and logger toggling |
|
||||
| `log.file` | Trace output to stderr vs file path | Path parser and file sink setup |
|
||||
|
|
|
|||
|
|
@ -2730,6 +2730,61 @@ test_config_set_kv_form()
|
|||
TEST_CHECK(val == "true");
|
||||
}
|
||||
|
||||
void
|
||||
test_config_remember_nodes_bool_numeric()
|
||||
{
|
||||
bool old_remember_nodes = fuse_cfg.remember_nodes;
|
||||
Config cfg;
|
||||
std::string val;
|
||||
|
||||
fuse_cfg.remember_nodes = false;
|
||||
|
||||
// remember-nodes accepts ints: 0 disables, non-zero enables
|
||||
TEST_CHECK(cfg.set("remember-nodes", "0") == 0);
|
||||
TEST_CHECK(cfg.get("remember-nodes", &val) == 0);
|
||||
TEST_CHECK(val == "false");
|
||||
|
||||
TEST_CHECK(cfg.set("remember-nodes", "86400") == 0);
|
||||
TEST_CHECK(cfg.get("remember-nodes", &val) == 0);
|
||||
TEST_CHECK(val == "true");
|
||||
|
||||
TEST_CHECK(cfg.set("remember", "-1") == 0);
|
||||
TEST_CHECK(cfg.get("remember", &val) == 0);
|
||||
TEST_CHECK(val == "true");
|
||||
|
||||
// remember-nodes also accepts bool strings
|
||||
TEST_CHECK(cfg.set("remember-nodes", "false") == 0);
|
||||
TEST_CHECK(cfg.get("remember-nodes", &val) == 0);
|
||||
TEST_CHECK(val == "false");
|
||||
|
||||
// never-forget-nodes is bool; it reflects the feature state
|
||||
TEST_CHECK(cfg.set("never-forget-nodes", "true") == 0);
|
||||
TEST_CHECK(cfg.get("never-forget-nodes", &val) == 0);
|
||||
TEST_CHECK(val == "true");
|
||||
|
||||
// Querying remember-nodes after never-forget-nodes=true returns true
|
||||
// (both alias the same fuse_cfg.remember_nodes)
|
||||
TEST_CHECK(cfg.get("remember-nodes", &val) == 0);
|
||||
TEST_CHECK(val == "true");
|
||||
|
||||
// Empty string treated as true
|
||||
TEST_CHECK(cfg.set("noforget", "") == 0);
|
||||
TEST_CHECK(cfg.get("noforget", &val) == 0);
|
||||
TEST_CHECK(val == "true");
|
||||
|
||||
// remember-nodes also accepts empty string as true
|
||||
fuse_cfg.remember_nodes = false;
|
||||
TEST_CHECK(cfg.set("remember-nodes", "") == 0);
|
||||
TEST_CHECK(cfg.get("remember-nodes", &val) == 0);
|
||||
TEST_CHECK(val == "true");
|
||||
|
||||
// Invalid string rejected by remember-nodes
|
||||
TEST_CHECK(cfg.set("remember-nodes", "notabool") == -EINVAL);
|
||||
|
||||
fuse_cfg.remember_nodes = old_remember_nodes;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
test_config_readonly_before_init()
|
||||
{
|
||||
|
|
@ -3683,6 +3738,7 @@ TEST_LIST =
|
|||
{"config_set_underscore_normalization",test_config_set_underscore_normalization},
|
||||
{"config_get_underscore_normalization",test_config_get_underscore_normalization},
|
||||
{"config_set_kv_form",test_config_set_kv_form},
|
||||
{"config_remember_nodes_bool_numeric",test_config_remember_nodes_bool_numeric},
|
||||
{"config_readonly_before_init",test_config_readonly_before_init},
|
||||
{"config_readonly_after_init",test_config_readonly_after_init},
|
||||
{"config_mutable_after_init",test_config_mutable_after_init},
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue