v0.34.0_1
This commit is contained in:
1 parent
9b3d6731cc
commit
00f29f92c8
68 files changed
+2599
-513
No files matched your search
+48
-1
@@ -7,6 +7,17 @@ mod cache_revision_tests {
|
||||
let base = config::demo_config("127.0.0.1:9000".parse().unwrap());
|
||||
let identity = cache_revision(&base);
|
||||
|
||||
let mut file_transport = base.clone();
|
||||
file_transport.web_services.push(crate::web_server::Service {
|
||||
id: "static-test".into(), name: "Static Test".into(),
|
||||
document_root: "/var/www/static-test".into(),
|
||||
..Default::default()
|
||||
});
|
||||
let mut zero_copy = file_transport.clone();
|
||||
zero_copy.web_services[0].sendfile = crate::web_server::SendfileMode::Auto;
|
||||
assert_eq!(cache_revision(&file_transport), cache_revision(&zero_copy));
|
||||
assert!(matches!(cache_invalidation(&file_transport, &zero_copy), CacheInvalidation::None));
|
||||
|
||||
let mut logging = base.clone();
|
||||
logging.logging.file.path = "/tmp/rustproxy-test-access.jsonl".into();
|
||||
assert_eq!(cache_revision(&logging), identity);
|
||||
@@ -107,8 +118,44 @@ mod cache_revision_tests {
|
||||
CacheInvalidation::All(value) if value == cache_identity
|
||||
));
|
||||
|
||||
let mut operational = base.clone();
|
||||
operational.vhosts[0].load_balancing.keepalive.enabled = false;
|
||||
operational.vhosts[0].load_balancing.keepalive.idle_timeout_seconds = 90;
|
||||
operational.vhosts[0].load_balancing.keepalive.max_idle_per_host = 32;
|
||||
operational.vhosts[0].load_balancing.keepalive.tcp_keepalive_seconds = 90;
|
||||
operational.vhosts[0].load_balancing.keepalive.pool_recycle_requests = 1_000;
|
||||
operational.vhosts[0].load_balancing.keepalive.pool_recycle_seconds = 1_800;
|
||||
operational.vhosts[0].load_balancing.keepalive.http1_max_buffer_bytes = 65_536;
|
||||
operational.vhosts[0].backends[0].weight += 1;
|
||||
operational.vhosts[0].backends[0].max_concurrent_requests = 16;
|
||||
operational.vhosts[0].backends[0].queue_timeout_ms = 100;
|
||||
operational.vhosts[0].timing_headers = true;
|
||||
operational.vhosts[0].acl_profile_id = Some("test-only-acl".into());
|
||||
operational.vhosts[0].user_agent_blocking = Default::default();
|
||||
operational.vhosts[0].proxy_timeouts.read_timeout_seconds = Some(180);
|
||||
assert_eq!(cache_revision(&operational), identity);
|
||||
assert_eq!(vhost_cache_revision(&operational.vhosts[0]), vhost_cache_revision(&base.vhosts[0]));
|
||||
assert!(matches!(cache_invalidation(&base, &operational), CacheInvalidation::None));
|
||||
assert!(matches!(cache_invalidation(&operational, &base), CacheInvalidation::None));
|
||||
|
||||
let mut vhost = base.clone();
|
||||
vhost.vhosts[0].backends[0].url = "http://127.0.0.1:9001".into();
|
||||
assert_ne!(cache_revision(&vhost), identity);
|
||||
assert_eq!(cache_revision(&vhost), identity);
|
||||
let affected_id = base.vhosts[0].id.clone();
|
||||
assert!(matches!(cache_invalidation(&base, &vhost), CacheInvalidation::Scopes(ids) if ids == vec![affected_id]));
|
||||
|
||||
// A content change must not invalidate another independent vhost.
|
||||
let mut multiple = base.clone();
|
||||
let mut another = multiple.vhosts[0].clone();
|
||||
another.id = "other-scope".into();
|
||||
another.frontend.hosts = vec!["other.example.test".into()];
|
||||
multiple.vhosts.push(another);
|
||||
let mut changed_one = multiple.clone();
|
||||
changed_one.vhosts[0].backends[0].url = "http://127.0.0.1:9002".into();
|
||||
assert!(matches!(cache_invalidation(&multiple, &changed_one), CacheInvalidation::Scopes(ids)
|
||||
if ids == vec![base.vhosts[0].id.clone()]));
|
||||
let mut changed_global = multiple.clone();
|
||||
changed_global.transform.max_body_bytes += 1;
|
||||
assert!(matches!(cache_invalidation(&multiple, &changed_global), CacheInvalidation::All(_)));
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user