# File test/test_multi_process.rb, line 180
    def setup
      @document = Rucy::Page.new("<html>Hello world.</html>\n")
      @log_pio = PseudoIO.new
      @logger = Rucy::Logger.new(@log_pio)
      @access_log = Rucy::AccessLog.new(PseudoIO.new, '')
      @messenger = Rucy::MultiProcessMessenger.new(@document, @logger, @access_log)

      # for Rucy::Server class
      @messenger_threads_call = 0
      @messenger_queue_length_call = 0
      @privilege_call = 0

      @server = Forwarder.new(self)
      class << @server
        def_delegator :__getobj__, :messenger_threads
        def_delegator :__getobj__, :messenger_queue_length
        def_delegator :__getobj__, :privilege
      end

      # for Rucy::Privilege class
      @privileged_user_call = 0
      @cancel_privilege_call = 0

      @privilege = Forwarder.new(self)
      class << @privilege
        def_delegator :__getobj__, :privileged_user?
        def_delegator :__getobj__, :cancel_privilege
      end

      assert_nil(@messenger.messenger_threads)
      assert_nil(@messenger.messenger_queue_length)
      @messenger.open(@server)
      assert_equal(1, @messenger_threads_call)
      assert_equal(1, @messenger_queue_length_call)
      assert_equal(1, @privilege_call)
      #assert_equal(1, @privileged_user_call) # called in forked subprocess
      #assert_equal(1, @cancel_privilege_call) # called in forked subprocess
      assert_equal(4, @messenger.messenger_threads)
      assert_equal(2, @messenger.messenger_queue_length)

      @queue = Rucy::SocketQueue.new(2)
      @thread = Thread.new{
        @messenger.accept(@queue)
      }
    end