@@ -187,27 +187,39 @@ class CApiKernelSpecs::Exc < StandardError
187187 it "raises an exception from the given error" do
188188 -> do
189189 @s . rb_syserr_fail ( Errno ::EINVAL ::Errno , "additional info" )
190- end . should raise_error ( Errno ::EINVAL , / additional info/ )
190+ end . should raise_error ( Errno ::EINVAL , "Invalid argument - additional info" )
191191 end
192192
193193 it "can take a NULL message" do
194194 -> do
195195 @s . rb_syserr_fail ( Errno ::EINVAL ::Errno , nil )
196- end . should raise_error ( Errno ::EINVAL )
196+ end . should raise_error ( Errno ::EINVAL , "Invalid argument" )
197+ end
198+
199+ it "uses an 'unknown error' message when errno is unknown" do
200+ -> do
201+ @s . rb_syserr_fail ( -10 , nil )
202+ end . should raise_error ( SystemCallError , /Unknown error(:)? -1/ ) # a new class Errno::E-01 is generated on the fly
197203 end
198204 end
199205
200206 describe "rb_syserr_fail_str" do
201207 it "raises an exception from the given error" do
202208 -> do
203209 @s . rb_syserr_fail_str ( Errno ::EINVAL ::Errno , "additional info" )
204- end . should raise_error ( Errno ::EINVAL , / additional info/ )
210+ end . should raise_error ( Errno ::EINVAL , "Invalid argument - additional info" )
205211 end
206212
207213 it "can take nil as a message" do
208214 -> do
209215 @s . rb_syserr_fail_str ( Errno ::EINVAL ::Errno , nil )
210- end . should raise_error ( Errno ::EINVAL )
216+ end . should raise_error ( Errno ::EINVAL , "Invalid argument" )
217+ end
218+
219+ it "uses an 'unknown error' message when errno is unknown" do
220+ -> do
221+ @s . rb_syserr_fail_str ( -1 , nil )
222+ end . should raise_error ( SystemCallError , /Unknown error(:)? -1/ ) # a new class Errno::E-01 is generated on the fly
211223 end
212224 end
213225
0 commit comments