On Tue, Sep 02, 2008 at 12:48:02PM +0300, Kirill A. Shutemov wrote: > > > > Тесты создают сервер на порту 65005, видимо собиралось это > > > > одновременно и на одном хосту. Надо такие тесты вырезать? > > > > > > перехвати Errno::EADDRINUSE и сделай +=1 к порту. > > > > А при одновременной сборке на трёх архитектурах? Можно попробовать > > задействовать фактор случайности. С другой стороны, фактор случайности > > привносить и нежелательно, потому что сборка пакета должна быть > > воспроизводимой. (Лучше пусть явно не соберётся, чем будет собираться > > через раз.) > > Я имел ввиду такой код: > > require 'socket' > > include Socket::Constants > > server = Socket.new(AF_INET, SOCK_STREAM, 0) > port = 1234 > begin > sockaddr = Socket.pack_sockaddr_in(port, 'localhost') > server.bind(sockaddr) > rescue Errno::EADDRINUSE > port += 1 > retry > end Да, в цикле увеличивать порт на 1 -- лучше.