@@ -1482,22 +1482,28 @@ fn test_request_from_thread() {
14821482}
14831483
14841484#[ test]
1485- #[ ignore]
14861485fn test_mock_from_inside_thread_does_not_lock_forever ( ) {
1487- let mut s = Server :: new ( ) ;
1488- let host = s. host_with_port ( ) ;
1489- let _mock_outside_thread = s. mock ( "GET" , "/" ) . with_body ( "outside" ) . create ( ) ;
1486+ let server = Arc :: new ( Mutex :: new ( Server :: new ( ) ) ) ;
1487+ let host;
1488+ let _mock_outside_thread;
1489+
1490+ {
1491+ let s1_mutex = server. clone ( ) ;
1492+ let mut s1 = s1_mutex. lock ( ) . unwrap ( ) ;
1493+ host = s1. host_with_port ( ) ;
1494+ _mock_outside_thread = s1. mock ( "GET" , "/" ) . with_body ( "outside" ) . create ( ) ;
1495+ }
14901496
1491- let server_mutex = Arc :: new ( Mutex :: new ( s) ) ;
1492- let server_clone = server_mutex;
1497+ let s2_mutex = server. clone ( ) ;
14931498 let process = thread:: spawn ( move || {
1494- let mut s = server_clone . lock ( ) . unwrap ( ) ;
1495- let _mock_inside_thread = s . mock ( "GET" , "/" ) . with_body ( "inside" ) . create ( ) ;
1499+ let mut s2 = s2_mutex . lock ( ) . unwrap ( ) ;
1500+ let _mock_inside_thread = s2 . mock ( "GET" , "/" ) . with_body ( "inside" ) . create ( ) ;
14961501 } ) ;
14971502
14981503 process. join ( ) . unwrap ( ) ;
14991504
1500- let ( _, _, body) = request ( & host, "GET /" , "" ) ;
1505+ let ( status_line, _, body) = request ( & host, "GET /" , "" ) ;
1506+ assert ! ( status_line. starts_with( "HTTP/1.1 200 " ) ) ;
15011507 assert_eq ! ( "outside" , body) ;
15021508}
15031509
0 commit comments