@@ -164,38 +164,46 @@ fn test_soundness() {
164
164
}
165
165
166
166
#[ cfg( unix) ]
167
- #[ test]
168
- fn test_unix_domain_socket ( ) {
169
- struct Defer ( & ' static str ) ;
167
+ mod unix_domain_socket {
168
+ use super :: * ;
169
+
170
+ fn test_socket ( path : & str ) {
171
+ let env = Arc :: new ( EnvBuilder :: new ( ) . build ( ) ) ;
172
+ let service = create_greeter ( PeerService ) ;
173
+
174
+ let mut server = ServerBuilder :: new ( env. clone ( ) )
175
+ . register_service ( service)
176
+ . bind ( path, 0 )
177
+ . build ( )
178
+ . unwrap ( ) ;
179
+ server. start ( ) ;
180
+ let ch = ChannelBuilder :: new ( env) . connect ( path) ;
181
+ let client = GreeterClient :: new ( ch) ;
170
182
171
- impl Drop for Defer {
172
- fn drop ( & mut self ) {
173
- let _ = std:: fs:: remove_file ( self . 0 ) ;
174
- }
175
- }
176
- let socket_path = Defer ( "test_socket" ) ;
183
+ let req = HelloRequest :: default ( ) ;
184
+ let resp = client. say_hello ( & req) . unwrap ( ) ;
177
185
178
- let env = Arc :: new ( EnvBuilder :: new ( ) . build ( ) ) ;
179
- let service = create_greeter ( PeerService ) ;
186
+ assert_eq ! ( resp . get_message ( ) , path , "{:?}" , resp ) ;
187
+ }
180
188
181
- let mut server = ServerBuilder :: new ( env. clone ( ) )
182
- . register_service ( service)
183
- . bind ( format ! ( "unix:{}" , socket_path. 0 ) , 0 )
184
- . build ( )
185
- . unwrap ( ) ;
186
- server. start ( ) ;
187
- let ch = ChannelBuilder :: new ( env) . connect ( & format ! ( "unix:{}" , socket_path. 0 ) ) ;
188
- let client = GreeterClient :: new ( ch) ;
189
+ #[ test]
190
+ fn test_unix_domain_socket ( ) {
191
+ struct Defer ( & ' static str ) ;
189
192
190
- let req = HelloRequest :: default ( ) ;
191
- let resp = client. say_hello ( & req) . unwrap ( ) ;
193
+ impl Drop for Defer {
194
+ fn drop ( & mut self ) {
195
+ let _ = std:: fs:: remove_file ( & self . 0 [ 5 ..] ) ;
196
+ }
197
+ }
198
+ let socket_path = Defer ( "unix:test_socket" ) ;
199
+ test_socket ( socket_path. 0 ) ;
200
+ }
192
201
193
- assert_eq ! (
194
- resp. get_message( ) ,
195
- format!( "unix:{}" , socket_path. 0 ) ,
196
- "{:?}" ,
197
- resp
198
- ) ;
202
+ #[ cfg( target_os = "linux" ) ]
203
+ #[ test]
204
+ fn test_abstract_unix_domain_socket ( ) {
205
+ test_socket ( "unix-abstract:/test_socket" ) ;
206
+ }
199
207
}
200
208
201
209
#[ test]
0 commit comments