|  | 
|  | 1 | +# frozen_string_literal: true | 
|  | 2 | + | 
|  | 3 | +# Licensed to the Software Freedom Conservancy (SFC) under one | 
|  | 4 | +# or more contributor license agreements.  See the NOTICE file | 
|  | 5 | +# distributed with this work for additional information | 
|  | 6 | +# regarding copyright ownership.  The SFC licenses this file | 
|  | 7 | +# to you under the Apache License, Version 2.0 (the | 
|  | 8 | +# "License"); you may not use this file except in compliance | 
|  | 9 | +# with the License.  You may obtain a copy of the License at | 
|  | 10 | +# | 
|  | 11 | +#   http://www.apache.org/licenses/LICENSE-2.0 | 
|  | 12 | +# | 
|  | 13 | +# Unless required by applicable law or agreed to in writing, | 
|  | 14 | +# software distributed under the License is distributed on an | 
|  | 15 | +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | 
|  | 16 | +# KIND, either express or implied.  See the License for the | 
|  | 17 | +# specific language governing permissions and limitations | 
|  | 18 | +# under the License. | 
|  | 19 | + | 
|  | 20 | +require File.expand_path('../spec_helper', __dir__) | 
|  | 21 | + | 
|  | 22 | +module Selenium | 
|  | 23 | +  module WebDriver | 
|  | 24 | +    describe ChildProcess do | 
|  | 25 | +      unless Selenium::WebDriver::Platform.windows? | 
|  | 26 | +        it 'does not raise an error when terminating a non-existent process' do | 
|  | 27 | +          process = described_class.new('sleep', '5') | 
|  | 28 | +          process.start | 
|  | 29 | + | 
|  | 30 | +          pid = process.instance_variable_get(:@pid) | 
|  | 31 | +          Process.kill('KILL', pid) | 
|  | 32 | +          Process.wait(pid) | 
|  | 33 | + | 
|  | 34 | +          expect { | 
|  | 35 | +            process.send(:terminate, pid) | 
|  | 36 | +          }.not_to raise_error | 
|  | 37 | +        end | 
|  | 38 | + | 
|  | 39 | +        it 'does not raise an error when killing a non-existent process' do | 
|  | 40 | +          process = described_class.new('sleep', '5') | 
|  | 41 | +          process.start | 
|  | 42 | + | 
|  | 43 | +          pid = process.instance_variable_get(:@pid) | 
|  | 44 | +          Process.kill('KILL', pid) | 
|  | 45 | +          Process.wait(pid) | 
|  | 46 | + | 
|  | 47 | +          expect { | 
|  | 48 | +            process.send(:kill, pid) | 
|  | 49 | +          }.not_to raise_error | 
|  | 50 | +        end | 
|  | 51 | +      end | 
|  | 52 | +    end | 
|  | 53 | +  end | 
|  | 54 | +end | 
0 commit comments