@@ -42,12 +42,14 @@ defmodule IEx.ServerTest do
42
42
test "outside of the evaluator with refusal" , config do
43
43
Process . register ( self ( ) , config . test )
44
44
45
- { server , evaluator } = pry_session ( config . test , "N\n iex_context" )
46
- client = pry_request ( [ server ] )
47
- send ( evaluator , :run )
45
+ capture_io ( :stderr , fn ->
46
+ { server , evaluator } = pry_session ( config . test , "N\n iex_context" )
47
+ client = pry_request ( [ server ] )
48
+ send ( evaluator , :run )
48
49
49
- assert Task . await ( client ) == { :error , :refused }
50
- assert Task . await ( server ) =~ "undefined function iex_context"
50
+ assert Task . await ( client ) == { :error , :refused }
51
+ assert Task . await ( server ) =~ "undefined function iex_context"
52
+ end )
51
53
end
52
54
53
55
test "outside of the evaluator with crash" , config do
@@ -63,71 +65,79 @@ defmodule IEx.ServerTest do
63
65
test "outside of the evaluator with double acceptance" , config do
64
66
Process . register ( self ( ) , config . test )
65
67
66
- { server1 , evaluator1 } = pry_session ( config . test , "Y\n iex_context" )
67
- { server2 , evaluator2 } = pry_session ( config . test , "Y\n iex_context" )
68
- client = pry_request ( [ server1 , server2 ] )
68
+ capture_io ( :stderr , fn ->
69
+ { server1 , evaluator1 } = pry_session ( config . test , "Y\n iex_context" )
70
+ { server2 , evaluator2 } = pry_session ( config . test , "Y\n iex_context" )
71
+ client = pry_request ( [ server1 , server2 ] )
69
72
70
- send ( evaluator1 , :run )
71
- send ( evaluator2 , :run )
72
- reply1 = Task . await ( server1 )
73
- reply2 = Task . await ( server2 )
73
+ send ( evaluator1 , :run )
74
+ send ( evaluator2 , :run )
75
+ reply1 = Task . await ( server1 )
76
+ reply2 = Task . await ( server2 )
74
77
75
- { accepted , refused } =
76
- if reply1 =~ ":inside_pry" , do: { reply1 , reply2 } , else: { reply2 , reply1 }
78
+ { accepted , refused } =
79
+ if reply1 =~ ":inside_pry" , do: { reply1 , reply2 } , else: { reply2 , reply1 }
77
80
78
- assert accepted =~ ":inside_pry"
79
- assert refused =~ "** session was already accepted elsewhere"
80
- assert refused =~ "undefined function iex_context"
81
+ assert accepted =~ ":inside_pry"
82
+ assert refused =~ "** session was already accepted elsewhere"
83
+ assert refused =~ "undefined function iex_context"
81
84
82
- assert Task . await ( client ) == { :ok , false }
85
+ assert Task . await ( client ) == { :ok , false }
86
+ end )
83
87
end
84
88
85
89
test "outside of the evaluator with double refusal" , config do
86
90
Process . register ( self ( ) , config . test )
87
91
88
- { server1 , evaluator1 } = pry_session ( config . test , "N\n iex_context" )
89
- { server2 , evaluator2 } = pry_session ( config . test , "N\n iex_context" )
90
- client = pry_request ( [ server1 , server2 ] )
92
+ capture_io ( :stderr , fn ->
93
+ { server1 , evaluator1 } = pry_session ( config . test , "N\n iex_context" )
94
+ { server2 , evaluator2 } = pry_session ( config . test , "N\n iex_context" )
95
+ client = pry_request ( [ server1 , server2 ] )
91
96
92
- send ( evaluator1 , :run )
93
- send ( evaluator2 , :run )
94
- reply1 = Task . await ( server1 )
95
- reply2 = Task . await ( server2 )
97
+ send ( evaluator1 , :run )
98
+ send ( evaluator2 , :run )
99
+ reply1 = Task . await ( server1 )
100
+ reply2 = Task . await ( server2 )
96
101
97
- assert reply1 =~ "undefined function iex_context"
98
- assert reply2 =~ "undefined function iex_context"
102
+ assert reply1 =~ "undefined function iex_context"
103
+ assert reply2 =~ "undefined function iex_context"
99
104
100
- assert Task . await ( client ) == { :error , :refused }
105
+ assert Task . await ( client ) == { :error , :refused }
106
+ end )
101
107
end
102
108
103
109
test "outside of the evaluator with acceptance and then refusal" , config do
104
110
Process . register ( self ( ) , config . test )
105
111
106
- { server1 , evaluator1 } = pry_session ( config . test , "Y\n iex_context" )
107
- { server2 , evaluator2 } = pry_session ( config . test , "N\n iex_context" )
108
- client = pry_request ( [ server1 , server2 ] )
112
+ capture_io ( :stderr , fn ->
113
+ { server1 , evaluator1 } = pry_session ( config . test , "Y\n iex_context" )
114
+ { server2 , evaluator2 } = pry_session ( config . test , "N\n iex_context" )
115
+ client = pry_request ( [ server1 , server2 ] )
109
116
110
- send ( evaluator1 , :run )
111
- send ( evaluator2 , :run )
112
- assert Task . await ( server1 ) =~ ":inside_pry"
113
- assert Task . await ( server2 ) =~ "undefined function iex_context"
117
+ send ( evaluator1 , :run )
118
+ send ( evaluator2 , :run )
119
+ assert Task . await ( server1 ) =~ ":inside_pry"
120
+ assert Task . await ( server2 ) =~ "undefined function iex_context"
114
121
115
- assert Task . await ( client ) == { :ok , false }
122
+ assert Task . await ( client ) == { :ok , false }
123
+ end )
116
124
end
117
125
118
126
test "outside of the evaluator with refusal and then acceptance" , config do
119
127
Process . register ( self ( ) , config . test )
120
128
121
- { server1 , evaluator1 } = pry_session ( config . test , "N\n iex_context" )
122
- { server2 , evaluator2 } = pry_session ( config . test , "Y\n iex_context" )
123
- client = pry_request ( [ server1 , server2 ] )
129
+ capture_io ( :stderr , fn ->
130
+ { server1 , evaluator1 } = pry_session ( config . test , "N\n iex_context" )
131
+ { server2 , evaluator2 } = pry_session ( config . test , "Y\n iex_context" )
132
+ client = pry_request ( [ server1 , server2 ] )
124
133
125
- send ( evaluator1 , :run )
126
- send ( evaluator2 , :run )
127
- assert Task . await ( server1 ) =~ "undefined function iex_context"
128
- assert Task . await ( server2 ) =~ ":inside_pry"
134
+ send ( evaluator1 , :run )
135
+ send ( evaluator2 , :run )
136
+ assert Task . await ( server1 ) =~ "undefined function iex_context"
137
+ assert Task . await ( server2 ) =~ ":inside_pry"
129
138
130
- assert Task . await ( client ) == { :ok , false }
139
+ assert Task . await ( client ) == { :ok , false }
140
+ end )
131
141
end
132
142
133
143
@ tag :tmp_dir
@@ -136,14 +146,16 @@ defmodule IEx.ServerTest do
136
146
path = Path . join ( tmp_dir , "dot-iex" )
137
147
File . write! ( path , "my_variable = 144" )
138
148
139
- { server , evaluator } = pry_session ( config . test , "Y\n my_variable" , dot_iex_path: path )
140
- client = pry_request ( [ server ] )
141
- send ( evaluator , :run )
149
+ capture_io ( :stderr , fn ->
150
+ { server , evaluator } = pry_session ( config . test , "Y\n my_variable" , dot_iex_path: path )
151
+ client = pry_request ( [ server ] )
152
+ send ( evaluator , :run )
142
153
143
- assert Task . await ( server ) =~
144
- "** (UndefinedFunctionError) function :erl_eval.my_variable/0 is undefined or private"
154
+ assert Task . await ( server ) =~
155
+ "** (UndefinedFunctionError) function :erl_eval.my_variable/0 is undefined or private"
145
156
146
- assert Task . await ( client ) == { :ok , false }
157
+ assert Task . await ( client ) == { :ok , false }
158
+ end )
147
159
end
148
160
149
161
@ tag :tmp_dir
0 commit comments