@@ -103,6 +103,12 @@ cd(dirname(@__FILE__)) do
103
103
and Brokens from the worker and the full information about all errors and
104
104
failures encountered running the tests. This information will be displayed
105
105
as a summary at the end of the test run.
106
+
107
+ If a test failed, returning an `Exception` that is not a `RemoteException`,
108
+ it is likely the julia process running the test has encountered some kind
109
+ of internal error, such as a segfault. The entire testset is marked as
110
+ Errored, and execution continues until the summary at the end of the test
111
+ run, where the test file is printed out as the "failed expression".
106
112
=#
107
113
o_ts = Base. Test. DefaultTestSet (" Overall" )
108
114
Base. Test. push_testset (o_ts)
@@ -141,6 +147,16 @@ cd(dirname(@__FILE__)) do
141
147
Base. Test. record (o_ts, fake)
142
148
Base. Test. pop_testset ()
143
149
end
150
+ elseif isa (res[2 ][1 ], Exception)
151
+ # If this test raised an exception that is not a RemoteException, that means
152
+ # the test runner itself had some problem, so we may have hit a segfault
153
+ # or something similar. Record this testset as Errored.
154
+ o_ts. anynonpass = true
155
+ fake = Base. Test. DefaultTestSet (res[1 ])
156
+ Base. Test. record (fake, Base. Test. Error (:test_error , res[1 ], res[2 ][1 ], []))
157
+ Base. Test. push_testset (fake)
158
+ Base. Test. record (o_ts, fake)
159
+ Base. Test. pop_testset ()
144
160
end
145
161
end
146
162
println ()
0 commit comments