[#1884] multiple exceptions for assert_raises — nobu.nokada@...

Hi,

14 messages 2003/12/04

[#1932] --enable-pthread broken? — Nathaniel Talbott <nathaniel@...>

[ruby-talk: 87759] and the surrounding thread seem to indicate that

29 messages 2003/12/11
[#1933] Re: --enable-pthread broken? — matz@... (Yukihiro Matsumoto) 2003/12/11

Hi,

[#1934] Re: --enable-pthread broken? — Nathaniel Talbott <nathaniel@...> 2003/12/11

On Dec 11, 2003, at 11:49, Yukihiro Matsumoto wrote:

[#1935] Re: --enable-pthread broken? — ts <decoux@...> 2003/12/11

>>>>> "N" == Nathaniel Talbott <nathaniel@talbott.ws> writes:

[#1937] Re: --enable-pthread broken? — nobu.nokada@... 2003/12/11

Hi,

[#1938] Re: --enable-pthread broken? — Nathaniel Talbott <nathaniel@...> 2003/12/12

On Dec 11, 2003, at 16:10, nobu.nokada@softhome.net wrote:

[#1939] Re: --enable-pthread broken? — matz@... (Yukihiro Matsumoto) 2003/12/12

Hi,

[#1941] Re: --enable-pthread broken? — matz@... (Yukihiro Matsumoto) 2003/12/12

Hi,

[#1943] Re: --enable-pthread broken? — Nathaniel Talbott <nathaniel@...> 2003/12/12

On Dec 11, 2003, at 20:48, Yukihiro Matsumoto wrote:

[#1953] Re: --enable-pthread broken? — matz@... (Yukihiro Matsumoto) 2003/12/13

Hi,

[#1959] Re: --enable-pthread broken? — ts <decoux@...> 2003/12/14

>>>>> "Y" == Yukihiro Matsumoto <matz@ruby-lang.org> writes:

[#1961] Re: --enable-pthread broken? — matz@... (Yukihiro Matsumoto) 2003/12/15

Hi,

[#1962] Re: --enable-pthread broken? — ts <decoux@...> 2003/12/15

>>>>> "Y" == Yukihiro Matsumoto <matz@ruby-lang.org> writes:

[#1936] Can't define +@ for Symbol (plus ruby install problem) — "T. Onoma" <transami@...>

I wanted to see if the +@ problem was fixed in 1.8.1 preview 3 but when I do

11 messages 2003/12/11

[#1973] Where to install documentation — Dave Thomas <dave@...>

Folks:

48 messages 2003/12/15
[#1982] Re: Where to install documentation — Eric Hodel <drbrain@...7.net> 2003/12/15

Dave Thomas (dave@pragprog.com) wrote:

[#1984] Re: Where to install documentation — Dave Thomas <dave@...> 2003/12/15

[#1991] Re: Where to install documentation — "Gavin Sinclair" <gsinclair@...> 2003/12/16

>

[#1992] Re: Where to install documentation — Dave Thomas <dave@...> 2003/12/16

[#2000] Re: Where to install documentation — Minero Aoki <aamine@...> 2003/12/16

Hi,

[#2002] Re: Where to install documentation — Dave Thomas <dave@...> 2003/12/16

[#2037] --enable-pthread still segfaults... — Nathaniel Talbott <nathaniel@...>

I've finally been able to test my application under load using the

25 messages 2003/12/23
[#2038] Re: --enable-pthread still segfaults... — matz@... (Yukihiro Matsumoto) 2003/12/23

Hi,

[#2039] Re: --enable-pthread still segfaults... — Nathaniel Talbott <nathaniel@...> 2003/12/23

On Dec 23, 2003, at 14:17, Yukihiro Matsumoto wrote:

[#2040] Re: --enable-pthread still segfaults... — matz@... (Yukihiro Matsumoto) 2003/12/23

Hi,

[#2041] Re: --enable-pthread still segfaults... — Nathaniel Talbott <nathaniel@...> 2003/12/23

On Dec 23, 2003, at 14:34, Yukihiro Matsumoto wrote:

[#2042] Re: --enable-pthread still segfaults... — matz@... (Yukihiro Matsumoto) 2003/12/23

Hi,

[#2043] Re: --enable-pthread still segfaults... — Nathaniel Talbott <nathaniel@...> 2003/12/23

On Dec 23, 2003, at 14:44, Yukihiro Matsumoto wrote:

[#2045] Re: --enable-pthread still segfaults... — matz@... (Yukihiro Matsumoto) 2003/12/23

Hi,

[#2046] Re: --enable-pthread still segfaults... — Nathaniel Talbott <nathaniel@...> 2003/12/23

> I'm afraid you're using old configure file. Can you wipe off old

[#2049] Re: --enable-pthread still segfaults... — Nathaniel Talbott <nathaniel@...> 2003/12/23

On Dec 23, 2003, at 15:18, Nathaniel Talbott wrote:

[#2050] Re: --enable-pthread still segfaults... — matz@... (Yukihiro Matsumoto) 2003/12/23

In message "Re: --enable-pthread still segfaults..."

[#2122] Bad interaction between timeout.rb and --enable-pthread — Nathaniel Talbott <nathaniel@...>

Here's a testcase that shows the problem:

13 messages 2003/12/31
[#2123] sleep is broken with --enable-pthread [Was: Bad interaction between timeout.rb and --enable-pthread] — Nathaniel Talbott <nathaniel@...> 2003/12/31

I should have reduced it more before posting...

[PATCH] multiple exceptions for assert_raises

From: nobu.nokada@...
Date: 2003-12-04 06:35:41 UTC
List: ruby-core #1884
Hi,

Exceptions caused by system call often varies depending on
platforms.  So I think that it would be nice if assert_raises
accept multiple exceptions.


Index: lib/test/unit/assertions.rb
===================================================================
RCS file: /cvs/ruby/src/ruby/lib/test/unit/assertions.rb,v
retrieving revision 1.12
diff -u -2 -p -d -r1.12 assertions.rb
--- lib/test/unit/assertions.rb	1 Dec 2003 19:25:51 -0000	1.12
+++ lib/test/unit/assertions.rb	4 Dec 2003 05:32:23 -0000
@@ -59,21 +59,27 @@ EOT
       # Passes if block raises exception.
       public
-      def assert_raises(expected_exception_klass, message="")
+      def assert_raises(*args)
         _wrap_assertion do
-          assert_instance_of(Class, expected_exception_klass, "Should expect a class of exception")
+          if Class === args.last and Exception >= args.last
+            message = ""
+          else
+            message = args.pop
+          end
+          args.each do |klass|
+            assert(Exception >= klass, "Should expect a class of exception")
+          end
+          expected = args.size == 1 ? args.first : args
           actual_exception = nil
-          full_message = build_message(message, "<?> exception expected but none was thrown.", expected_exception_klass)
+          full_message = build_message(message, "<?> exception expected but none was thrown.", expected)
           assert_block(full_message) do
-            thrown = false
             begin
               yield
-            rescue Exception => thrown_exception
-              actual_exception = thrown_exception
-              thrown = true
+            rescue Exception => actual_exception
+              break
             end
-            thrown
+            false
           end
-          full_message = build_message(message, "<?> exception expected but was\n?", expected_exception_klass, actual_exception)
-          assert_block(full_message) { expected_exception_klass == actual_exception.class }
+          full_message = build_message(message, "<?> exception expected but was\n?", expected, actual_exception)
+          assert_block(full_message) { args.include?(actual_exception.class) }
           actual_exception
         end
@@ -177,7 +183,11 @@ EOT
       def assert_nothing_raised(*args)
         _wrap_assertion do
-          message = ""
-          if (!args[-1].instance_of?(Class))
+          if Class === args.last and Exception >= args.last
+            message = ""
+          else
             message = args.pop
+          end
+          args.each do |klass|
+            assert(Exception >= klass, "Should expect a class of exception")
           end
           begin


-- 
Nobu Nakada

In This Thread

Prev Next