aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/tests/util/http
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-06-24 00:47:20 +0900
committernsfisis <nsfisis@gmail.com>2026-06-24 00:47:53 +0900
commit340164c64e90d44b1bdf620b514166db1f76cc98 (patch)
tree86195fe5ff8582b64e0324e9f40619e36c04948f /crates/shirabe/tests/util/http
parent8fe3390d064303b86133a1d2983144a4818a7121 (diff)
downloadphp-shirabe-340164c64e90d44b1bdf620b514166db1f76cc98.tar.gz
php-shirabe-340164c64e90d44b1bdf620b514166db1f76cc98.tar.zst
php-shirabe-340164c64e90d44b1bdf620b514166db1f76cc98.zip
test: port more unimplemented tests
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Diffstat (limited to 'crates/shirabe/tests/util/http')
-rw-r--r--crates/shirabe/tests/util/http/proxy_manager_test.rs25
1 files changed, 23 insertions, 2 deletions
diff --git a/crates/shirabe/tests/util/http/proxy_manager_test.rs b/crates/shirabe/tests/util/http/proxy_manager_test.rs
index dede524..7beafe1 100644
--- a/crates/shirabe/tests/util/http/proxy_manager_test.rs
+++ b/crates/shirabe/tests/util/http/proxy_manager_test.rs
@@ -38,11 +38,32 @@ impl Drop for TearDown {
}
#[test]
-#[ignore = "ProxyManager::get_instance returns a shared &'static Mutex, so instance identity (=== / after reset) cannot be expressed through the public API"]
+#[serial_test::serial]
fn test_instantiation() {
let _tear_down = TearDown;
set_up();
- todo!()
+
+ // PHP compares object identity (===); the value-based Rust singleton exposes a per-instance
+ // generation id instead, which changes only when a new ProxyManager is constructed.
+ let original_instance = {
+ let mutex = ProxyManager::get_instance();
+ let guard = mutex.lock().unwrap();
+ guard.as_ref().unwrap().__generation()
+ };
+ let same_instance = {
+ let mutex = ProxyManager::get_instance();
+ let guard = mutex.lock().unwrap();
+ guard.as_ref().unwrap().__generation()
+ };
+ assert_eq!(original_instance, same_instance);
+
+ ProxyManager::reset();
+ let new_instance = {
+ let mutex = ProxyManager::get_instance();
+ let guard = mutex.lock().unwrap();
+ guard.as_ref().unwrap().__generation()
+ };
+ assert_ne!(same_instance, new_instance);
}
#[test]