File: kill_test.rb

package info (click to toggle)
ruby-byebug 11.1.3-5
  • links: PTS, VCS
  • area: main
  • in suites: forky, trixie
  • size: 1,252 kB
  • sloc: ruby: 8,835; ansic: 1,662; sh: 6; makefile: 4
file content (68 lines) | stat: -rw-r--r-- 1,608 bytes parent folder | download | duplicates (3)
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
62
63
64
65
66
67
68
# frozen_string_literal: true

require "test_helper"

module Byebug
  #
  # Test signal sending functionality.
  #
  class KillTest < TestCase
    def program
      strip_line_numbers <<-RUBY
         1:  module Byebug
         2:    #
         3:    # Toy class to test signals
         4:    #
         5:    class #{example_class}
         6:      def self.kill_me
         7:        "dieeee"
         8:      end
         9:    end
        10:
        11:    byebug
        12:
        13:    #{example_class}.kill_me
        14:  end
      RUBY
    end

    def test_kill_sends_signal_to_some_pid
      assert_calls(Process, :kill, "TERM #{Process.pid}") do
        enter "kill TERM"
        debug_code(program)
      end
    end

    def test_kill_closes_interface_when_sending_kill_signal_explicitly
      Process.stub(:kill, nil) do
        assert_calls(interface, :close) do
          enter "kill KILL"
          debug_code(program)
        end
      end
    end

    def test_kill_asks_confirmation_when_sending_kill_implicitly
      assert_calls(Process, :kill, "KILL #{Process.pid}") do
        enter "kill", "y"
        debug_code(program)

        check_output_includes "Really kill? (y/n)"
      end
    end

    def test_kill_does_not_send_an_unknown_signal
      refute_calls(Process, :kill, "BLA #{Process.pid}") do
        enter "kill BLA"
        debug_code(program)
      end
    end

    def test_kill_shows_an_error_when_the_signal_is_unknown
      enter "kill BLA"
      debug_code(program)

      check_error_includes "signal name BLA is not a signal I know about"
    end
  end
end