summaryrefslogtreecommitdiff
blob: 5827d4e1d08be47b74866bce96c2bb8a2ef3905d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
From 879f701c35699d194890c288a036b0037f6b3424 Mon Sep 17 00:00:00 2001
From: Charles Oliver Nutter <headius@headius.com>
Date: Thu, 14 Jan 2010 15:23:57 -0600
Subject: [PATCH] Modifications to get session tests running green under JRuby.

---
 lib/session.rb  |   16 +++++++++++-----
 test/session.rb |    3 +++
 2 files changed, 14 insertions(+), 5 deletions(-)

diff --git a/lib/session.rb b/lib/session.rb
index dffa1f3..824c76f 100755
--- a/lib/session.rb
+++ b/lib/session.rb
@@ -86,7 +86,9 @@ module Session
     class << self
       def default_prog
         return @default_prog if defined? @default_prog and @default_prog
-        if defined? self::DEFAULT_PROG
+        # Workaround for http://jira.codehaus.org/browse/JRUBY-4479
+        if (self::DEFAULT_PROG rescue nil)
+#        if defined? self::DEFAULT_PROG
           return @default_prog = self::DEFAULT_PROG 
         else
           @default_prog = ENV["SESSION_#{ self }_PROG"]
@@ -150,10 +152,14 @@ module Session
       @use_spawn = self.class::use_spawn unless self.class::use_spawn.nil?
       @use_spawn = getopt('use_spawn', opts) if hasopt('use_spawn', opts)
 
-      @use_open3 = nil
-      @use_open3 = Session::use_open3 unless Session::use_open3.nil?
-      @use_open3 = self.class::use_open3 unless self.class::use_open3.nil?
-      @use_open3 = getopt('use_open3', opts) if hasopt('use_open3', opts) 
+      if defined? JRUBY_VERSION
+        @use_open3 = true
+      else
+        @use_open3 = nil
+        @use_open3 = Session::use_open3 unless Session::use_open3.nil?
+        @use_open3 = self.class::use_open3 unless self.class::use_open3.nil?
+        @use_open3 = getopt('use_open3', opts) if hasopt('use_open3', opts)
+      end
 
       @debug = nil
       @debug = Session::debug unless Session::debug.nil?
diff --git a/test/session.rb b/test/session.rb
index 0b0f265..46fe19b 100644
--- a/test/session.rb
+++ b/test/session.rb
@@ -17,6 +17,9 @@ Session::debug = true
 class TimeoutError < StandardError; end
 def timeout n
 #{{{
+  # JRuby does not support fork, so we stub out timeout here
+  return yield if defined? JRUBY_VERSION
+
   ret = nil
   cid = fork 
   unless cid
-- 
1.6.6