Class Uttk::Strategies::SignalCmd
In: lib/uttk/strategies/SignalCmd.rb
Parent: Cmd

Methods

Included Modules

Concrete

Public Class methods

[Source]

# File lib/uttk/strategies/SignalCmd.rb, line 58
      def SignalCmd.signal_name ( status )
        signal = status - 128
        if @@signal_names.nil?
          @@signal_names = { }
          Signal.list.each do |key, value|
            @@signal_names[value] = key
          end
        end
        @@signal_names[signal]
      end

Public Instance methods

[Source]

# File lib/uttk/strategies/SignalCmd.rb, line 69
      def signal= ( signal_name )
        @signal = signal_name
        @signaled = true
      end

Protected Instance methods

[Source]

# File lib/uttk/strategies/SignalCmd.rb, line 40
      def assertion
        case
        when (@my_signaled and not @signaled)
          fail("command was signaled by #{SignalCmd.signal_name(@my_exit)}")
        when (not @my_signaled and @signaled)
          fail("command wasn't signaled by #@signal")
        when (@my_signaled == @signaled and @signaled)
          sig_name = SignalCmd.signal_name(@my_exit)
          unless sig_name == signal
            err = "command signaled by #{sig_name}, "
            err << "must be signaled by #@signal"
            fail(err)
          end
        end
        super
      end

Methods

[Source]

# File lib/uttk/strategies/SignalCmd.rb, line 20
      def run_impl
        super

        # Check if command has exited normaly
        case
        when @my_status.exited?
          # Process run successfully
          @my_signaled = false
        when @my_status.signaled?
          # Process was signaled
          @my_signaled = true
          @my_exit = 128 + @my_status.termsig
        else
          # Problem on process
          fail('process may be ill')
        end
      end

[Validate]