[前][次][番号順一覧][スレッド一覧]

ruby-changes:51553

From: normal <ko1@a...>
Date: Thu, 28 Jun 2018 05:51:34 +0900 (JST)
Subject: [ruby-changes:51553] normal:r63760 (trunk): Revert "spec: skip Process wait specs on MJIT"

normal	2018-06-27 12:16:59 +0900 (Wed, 27 Jun 2018)

  New Revision: 63760

  https://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=63760

  Log:
    Revert "spec: skip Process wait specs on MJIT"
    
    This reverts r63731 (commit 359dd59db2512d801bb983f98bede4fc598f139a).

  Modified files:
    trunk/spec/mspec/lib/mspec/guards/feature.rb
    trunk/spec/ruby/core/process/wait2_spec.rb
    trunk/spec/ruby/core/process/wait_spec.rb
    trunk/spec/ruby/core/process/waitall_spec.rb
Index: spec/mspec/lib/mspec/guards/feature.rb
===================================================================
--- spec/mspec/lib/mspec/guards/feature.rb	(revision 63759)
+++ spec/mspec/lib/mspec/guards/feature.rb	(revision 63760)
@@ -39,9 +39,3 @@ end https://github.com/ruby/ruby/blob/trunk/spec/mspec/lib/mspec/guards/feature.rb#L39
 def with_feature(*features, &block)
   FeatureGuard.new(*features).run_if(:with_feature, &block)
 end
-
-MSpecEnv.class_eval do
-  def without_feature(*features, &block)
-    FeatureGuard.new(*features).run_unless(:without_feature, &block)
-  end
-end
Index: spec/ruby/core/process/wait2_spec.rb
===================================================================
--- spec/ruby/core/process/wait2_spec.rb	(revision 63759)
+++ spec/ruby/core/process/wait2_spec.rb	(revision 63760)
@@ -14,21 +14,19 @@ describe "Process.wait2" do https://github.com/ruby/ruby/blob/trunk/spec/ruby/core/process/wait2_spec.rb#L14
     end
   end
 
-  without_feature :mjit do # [Bug #14867]
-    platform_is_not :windows do
-      it "returns the pid and status of child process" do
-        pidf = Process.fork { Process.exit! 99 }
-        results = Process.wait2
-        results.size.should == 2
-        pidw, status = results
-        pidf.should == pidw
-        status.exitstatus.should == 99
-      end
+  platform_is_not :windows do
+    it "returns the pid and status of child process" do
+      pidf = Process.fork { Process.exit! 99 }
+      results = Process.wait2
+      results.size.should == 2
+      pidw, status = results
+      pidf.should == pidw
+      status.exitstatus.should == 99
     end
+  end
 
-    it "raises a StandardError if no child processes exist" do
-      lambda { Process.wait2 }.should raise_error(Errno::ECHILD)
-      lambda { Process.wait2 }.should raise_error(StandardError)
-    end
+  it "raises a StandardError if no child processes exist" do
+    lambda { Process.wait2 }.should raise_error(Errno::ECHILD)
+    lambda { Process.wait2 }.should raise_error(StandardError)
   end
 end
Index: spec/ruby/core/process/waitall_spec.rb
===================================================================
--- spec/ruby/core/process/waitall_spec.rb	(revision 63759)
+++ spec/ruby/core/process/waitall_spec.rb	(revision 63760)
@@ -8,43 +8,41 @@ describe "Process.waitall" do https://github.com/ruby/ruby/blob/trunk/spec/ruby/core/process/waitall_spec.rb#L8
     end
   end
 
-  without_feature :mjit do # [Bug #14867]
-    it "returns an empty array when there are no children" do
-      Process.waitall.should == []
-    end
+  it "returns an empty array when there are no children" do
+    Process.waitall.should == []
+  end
 
-    it "takes no arguments" do
-      lambda { Process.waitall(0) }.should raise_error(ArgumentError)
-    end
+  it "takes no arguments" do
+    lambda { Process.waitall(0) }.should raise_error(ArgumentError)
+  end
 
-    platform_is_not :windows do
-      it "waits for all children" do
-        pids = []
-        pids << Process.fork { Process.exit! 2 }
-        pids << Process.fork { Process.exit! 1 }
-        pids << Process.fork { Process.exit! 0 }
-        Process.waitall
-        pids.each { |pid|
-          lambda { Process.kill(0, pid) }.should raise_error(Errno::ESRCH)
-        }
-      end
+  platform_is_not :windows do
+    it "waits for all children" do
+      pids = []
+      pids << Process.fork { Process.exit! 2 }
+      pids << Process.fork { Process.exit! 1 }
+      pids << Process.fork { Process.exit! 0 }
+      Process.waitall
+      pids.each { |pid|
+        lambda { Process.kill(0, pid) }.should raise_error(Errno::ESRCH)
+      }
+    end
 
-      it "returns an array of pid/status pairs" do
-        pids = []
-        pids << Process.fork { Process.exit! 2 }
-        pids << Process.fork { Process.exit! 1 }
-        pids << Process.fork { Process.exit! 0 }
-        a = Process.waitall
-        a.should be_kind_of(Array)
-        a.size.should == 3
-        pids.each { |pid|
-          pid_status = a.assoc(pid)
-          pid_status.should be_kind_of(Array)
-          pid_status.size.should == 2
-          pid_status.first.should == pid
-          pid_status.last.should be_kind_of(Process::Status)
-        }
-      end
+    it "returns an array of pid/status pairs" do
+      pids = []
+      pids << Process.fork { Process.exit! 2 }
+      pids << Process.fork { Process.exit! 1 }
+      pids << Process.fork { Process.exit! 0 }
+      a = Process.waitall
+      a.should be_kind_of(Array)
+      a.size.should == 3
+      pids.each { |pid|
+        pid_status = a.assoc(pid)
+        pid_status.should be_kind_of(Array)
+        pid_status.size.should == 2
+        pid_status.first.should == pid
+        pid_status.last.should be_kind_of(Process::Status)
+      }
     end
   end
 end
Index: spec/ruby/core/process/wait_spec.rb
===================================================================
--- spec/ruby/core/process/wait_spec.rb	(revision 63759)
+++ spec/ruby/core/process/wait_spec.rb	(revision 63760)
@@ -12,81 +12,79 @@ describe "Process.wait" do https://github.com/ruby/ruby/blob/trunk/spec/ruby/core/process/wait_spec.rb#L12
     end
   end
 
-  without_feature :mjit do # [Bug #14867]
-    it "raises an Errno::ECHILD if there are no child processes" do
-      lambda { Process.wait }.should raise_error(Errno::ECHILD)
+  it "raises an Errno::ECHILD if there are no child processes" do
+    lambda { Process.wait }.should raise_error(Errno::ECHILD)
+  end
+
+  platform_is_not :windows do
+    it "returns its childs pid" do
+      pid = Process.spawn(ruby_cmd('exit'))
+      Process.wait.should == pid
     end
 
-    platform_is_not :windows do
-      it "returns its childs pid" do
-        pid = Process.spawn(ruby_cmd('exit'))
-        Process.wait.should == pid
-      end
+    it "sets $? to a Process::Status" do
+      pid = Process.spawn(ruby_cmd('exit'))
+      Process.wait
+      $?.should be_kind_of(Process::Status)
+      $?.pid.should == pid
+    end
 
-      it "sets $? to a Process::Status" do
-        pid = Process.spawn(ruby_cmd('exit'))
-        Process.wait
-        $?.should be_kind_of(Process::Status)
-        $?.pid.should == pid
-      end
+    it "waits for any child process if no pid is given" do
+      pid = Process.spawn(ruby_cmd('exit'))
+      Process.wait.should == pid
+      lambda { Process.kill(0, pid) }.should raise_error(Errno::ESRCH)
+    end
 
-      it "waits for any child process if no pid is given" do
-        pid = Process.spawn(ruby_cmd('exit'))
-        Process.wait.should == pid
-        lambda { Process.kill(0, pid) }.should raise_error(Errno::ESRCH)
-      end
+    it "waits for a specific child if a pid is given" do
+      pid1 = Process.spawn(ruby_cmd('exit'))
+      pid2 = Process.spawn(ruby_cmd('exit'))
+      Process.wait(pid2).should == pid2
+      Process.wait(pid1).should == pid1
+      lambda { Process.kill(0, pid1) }.should raise_error(Errno::ESRCH)
+      lambda { Process.kill(0, pid2) }.should raise_error(Errno::ESRCH)
+    end
 
-      it "waits for a specific child if a pid is given" do
-        pid1 = Process.spawn(ruby_cmd('exit'))
-        pid2 = Process.spawn(ruby_cmd('exit'))
-        Process.wait(pid2).should == pid2
-        Process.wait(pid1).should == pid1
-        lambda { Process.kill(0, pid1) }.should raise_error(Errno::ESRCH)
-        lambda { Process.kill(0, pid2) }.should raise_error(Errno::ESRCH)
-      end
+    it "coerces the pid to an Integer" do
+      pid1 = Process.spawn(ruby_cmd('exit'))
+      Process.wait(mock_int(pid1)).should == pid1
+      lambda { Process.kill(0, pid1) }.should raise_error(Errno::ESRCH)
+    end
 
-      it "coerces the pid to an Integer" do
-        pid1 = Process.spawn(ruby_cmd('exit'))
-        Process.wait(mock_int(pid1)).should == pid1
-        lambda { Process.kill(0, pid1) }.should raise_error(Errno::ESRCH)
-      end
+    # This spec is probably system-dependent.
+    it "waits for a child whose process group ID is that of the calling process" do
+      pid1 = Process.spawn(ruby_cmd('exit'), pgroup: true)
+      pid2 = Process.spawn(ruby_cmd('exit'))
 
-      # This spec is probably system-dependent.
-      it "waits for a child whose process group ID is that of the calling process" do
-        pid1 = Process.spawn(ruby_cmd('exit'), pgroup: true)
-        pid2 = Process.spawn(ruby_cmd('exit'))
+      Process.wait(0).should == pid2
+      Process.wait.should == pid1
+    end
 
-        Process.wait(0).should == pid2
-        Process.wait.should == pid1
+    # This spec is probably system-dependent.
+    it "doesn't block if no child is available when WNOHANG is used" do
+      read, write = IO.pipe
+      pid = Process.fork do
+        read.close
+        Signal.trap("TERM") { Process.exit! }
+        write << 1
+        write.close
+        sleep
       end
 
-      # This spec is probably system-dependent.
-      it "doesn't block if no child is available when WNOHANG is used" do
-        read, write = IO.pipe
-        pid = Process.fork do
-          read.close
-          Signal.trap("TERM") { Process.exit! }
-          write << 1
-          write.close
-          sleep
-        end
-
-        Process.wait(pid, Process::WNOHANG).should be_nil
+      Process.wait(pid, Process::WNOHANG).should be_nil
 
-        # wait for the child to setup its TERM handler
-        write.close
-        read.read(1)
-        read.close
+      # wait for the child to setup its TERM handler
+      write.close
+      read.read(1)
+      read.close
 
-        Process.kill("TERM", pid)
-        Process.wait.should == pid
-      end
+      Process.kill("TERM", pid)
+      Process.wait.should == pid
+    end
 
-      it "always accepts flags=0" do
-        pid = Process.spawn(ruby_cmd('exit'))
-        Process.wait(-1, 0).should == pid
-        lambda { Process.kill(0, pid) }.should raise_error(Errno::ESRCH)
-      end
+    it "always accepts flags=0" do
+      pid = Process.spawn(ruby_cmd('exit'))
+      Process.wait(-1, 0).should == pid
+      lambda { Process.kill(0, pid) }.should raise_error(Errno::ESRCH)
     end
   end
 end

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]