Sha256: 9e700f0065a91f398a5abab14e9957e30dc162a2b5b716a6c31068305fe8dc06

Contents?: true

Size: 876 Bytes

Versions: 1

Compression:

Stored size: 876 Bytes

Contents

# frozen_string_literal: true

require 'test_helper'

class IntegrationTest < Minitest::Test
  def setup
    @server = UDPSocket.new
    @server.bind('localhost', 0)
    port = @server.addr[1]

    @old_backend = StatsD.backend
    StatsD.backend = StatsD::Instrument::Backends::UDPBackend.new("localhost:#{port}")
  end

  def teardown
    @server.close
    StatsD.backend = @old_backend
  end

  def test_live_local_udp_socket
    StatsD.increment('counter')
    assert_equal "counter:1|c", @server.recvfrom(100).first
  end

  def test_synchronize_in_exit_handler_handles_thread_error_and_exits_cleanly
    pid = fork do
      Signal.trap('TERM') do
        StatsD.increment('exiting')
        Process.exit!(0)
      end

      sleep 100
    end

    Process.kill('TERM', pid)
    Process.waitpid(pid)

    assert_equal "exiting:1|c", @server.recvfrom(100).first
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
statsd-instrument-2.4.0 test/integration_test.rb