Bug#845685: neovim-qt: FTBFS on kFreeBSD: tst_neovimconnector fails

2017-08-12 Thread James McCoy
Control: forwarded -1 https://github.com/equalsraf/neovim-qt/issues/289

On Fri, Jun 02, 2017 at 07:27:36PM -0400, James McCoy wrote:
> On Fri, Jun 02, 2017 at 05:39:34PM -0400, Aaron M. Ucko wrote:
> > "Aaron M. Ucko"  writes:
> > 
> > Thanks for looking into this bug.  neovim-qt now builds successfully on
> > kfreebsd-amd64, but still fails on kfreebsd-i386, with nearly the same
> > error; per
> > https://buildd.debian.org/status/fetch.php?pkg=neovim-qt=kfreebsd-i386=0.2.7-1=1496290825=0
> > the only difference is that
> > 
> > >   FAIL!  : NeovimQt::Test::connectToNeovimTCP() 'SPYWAIT(onError)' 
> > > returned FALSE. ()
> > >  Loc: [/«PKGBUILDDIR»/test/tst_neovimconnector.cpp(62)]
> > 
> > has changed to
> > 
> > FAIL!  : NeovimQt::Test::connectToNeovimTCP() Compared values are not 
> > the same
> >Loc: [/«PKGBUILDDIR»/test/tst_neovimconnector.cpp(65)]
> 
> Yeah, this is a separate failure.  I'll look into it.

Full details on my investigation are in the upstream bug report.  The
short version is, it seems like Qt's non-blocking socket handling isn't
reacting to EINPROGRESS properly all the time on kFreeBSD.

Cheers,
-- 
James
GPG Key: 4096R/91BF BF4D 6956 BD5D F7B7  2D23 DFE6 91AE 331B A3DB



Bug#845685: neovim-qt: FTBFS on kFreeBSD: tst_neovimconnector fails

2017-06-02 Thread James McCoy
On Fri, Jun 02, 2017 at 05:39:34PM -0400, Aaron M. Ucko wrote:
> "Aaron M. Ucko"  writes:
> 
> Thanks for looking into this bug.  neovim-qt now builds successfully on
> kfreebsd-amd64, but still fails on kfreebsd-i386, with nearly the same
> error; per
> https://buildd.debian.org/status/fetch.php?pkg=neovim-qt=kfreebsd-i386=0.2.7-1=1496290825=0
> the only difference is that
> 
> >   FAIL!  : NeovimQt::Test::connectToNeovimTCP() 'SPYWAIT(onError)' returned 
> > FALSE. ()
> >  Loc: [/«PKGBUILDDIR»/test/tst_neovimconnector.cpp(62)]
> 
> has changed to
> 
> FAIL!  : NeovimQt::Test::connectToNeovimTCP() Compared values are not the 
> same
>Loc: [/«PKGBUILDDIR»/test/tst_neovimconnector.cpp(65)]

Yeah, this is a separate failure.  I'll look into it.

Cheers,
-- 
James
GPG Key: 4096R/91BF BF4D 6956 BD5D F7B7  2D23 DFE6 91AE 331B A3DB



Bug#845685: neovim-qt: FTBFS on kFreeBSD: tst_neovimconnector fails

2017-06-02 Thread Aaron M. Ucko
notfixed 845685 0.2.7-1
found 845685 0.2.7-1
thanks

"Aaron M. Ucko"  writes:

Thanks for looking into this bug.  neovim-qt now builds successfully on
kfreebsd-amd64, but still fails on kfreebsd-i386, with nearly the same
error; per
https://buildd.debian.org/status/fetch.php?pkg=neovim-qt=kfreebsd-i386=0.2.7-1=1496290825=0
the only difference is that

>   FAIL!  : NeovimQt::Test::connectToNeovimTCP() 'SPYWAIT(onError)' returned 
> FALSE. ()
>  Loc: [/«PKGBUILDDIR»/test/tst_neovimconnector.cpp(62)]

has changed to

FAIL!  : NeovimQt::Test::connectToNeovimTCP() Compared values are not the 
same
   Loc: [/«PKGBUILDDIR»/test/tst_neovimconnector.cpp(65)]

Could you please take another look?

Thanks!

-- 
Aaron M. Ucko, KB1CJC (amu at alum.mit.edu, ucko at debian.org)
http://www.mit.edu/~amu/ | http://stuff.mit.edu/cgi/finger/?a...@monk.mit.edu



Bug#845685: neovim-qt: FTBFS on kFreeBSD: tst_neovimconnector fails

2016-12-15 Thread James McCoy
On Thu, Dec 15, 2016 at 11:03:40PM -0500, Aaron M. Ucko wrote:
> James McCoy  writes:
> 
> > As far as I can tell, what's happening is the async network connection
> > that's started by the connectToNeovim call has already errored out by
> > the time the onError SPY is created.  The test then times out waiting
> > for the error to occur.
> 
> That's an unfortunate design.  Perhaps you could compensate by
> conditionalizing the SPYWAIT line on
> 
>   c->errorCause() != NeovimConnector::NoError

Looks like that does help.  The code is still racy, but that does get
the test to pass.

Cheers,
-- 
James
GPG Key: 4096R/91BF BF4D 6956 BD5D F7B7  2D23 DFE6 91AE 331B A3DB



Bug#845685: neovim-qt: FTBFS on kFreeBSD: tst_neovimconnector fails

2016-12-15 Thread Aaron M. Ucko
James McCoy  writes:

> As far as I can tell, what's happening is the async network connection
> that's started by the connectToNeovim call has already errored out by
> the time the onError SPY is created.  The test then times out waiting
> for the error to occur.

That's an unfortunate design.  Perhaps you could compensate by
conditionalizing the SPYWAIT line on

  c->errorCause() != NeovimConnector::NoError

?

-- 
Aaron M. Ucko, KB1CJC (amu at alum.mit.edu, ucko at debian.org)
http://www.mit.edu/~amu/ | http://stuff.mit.edu/cgi/finger/?a...@monk.mit.edu



Bug#845685: neovim-qt: FTBFS on kFreeBSD: tst_neovimconnector fails

2016-12-15 Thread James McCoy
On Fri, Nov 25, 2016 at 03:24:23PM -0500, Aaron M. Ucko wrote:
> The kFreeBSD build of neovim-qt failed:
> 
> Start  2: tst_neovimconnector
>2/12 Test  #2: tst_neovimconnector ..***Failed   15.12 sec
>   * Start testing of NeovimQt::Test *
>   Config: Using QtTest library 5.7.1, Qt 5.7.1 (x86_64-little_endian-lp64 
> shared (dynamic) release build; by GCC 6.2.0 20161109)
>   PASS   : NeovimQt::Test::initTestCase()
>   QWARN  : NeovimQt::Test::reconnect() MsgpackIO fatal error "IO device needs 
> to be sequential"
>   PASS   : NeovimQt::Test::reconnect()
>   QDEBUG : NeovimQt::Test::isReady() Unknown Neovim function "Array 
> vim_get_api_info()"
>   QDEBUG : NeovimQt::Test::isReady() Unknown Neovim function "Array 
> vim_get_api_info()"
>   QDEBUG : NeovimQt::Test::isReady() Unknown Neovim function "Array 
> vim_get_api_info()"
>   PASS   : NeovimQt::Test::isReady()
>   QWARN  : NeovimQt::Test::encodeDecode() Encoding String into 
> MsgpackIODevice without an encoding (defaulting to utf8)
>   QWARN  : NeovimQt::Test::encodeDecode() Decoding String from 
> MsgpackIODevice without an encoding (defaulting to utf8)
>   QDEBUG : NeovimQt::Test::encodeDecode() Unknown Neovim function "Array 
> vim_get_api_info()"
>   PASS   : NeovimQt::Test::encodeDecode()
>   FAIL!  : NeovimQt::Test::connectToNeovimTCP() 'SPYWAIT(onError)' returned 
> FALSE. ()
>  Loc: [/«PKGBUILDDIR»/test/tst_neovimconnector.cpp(62)]

I did look into this, and have an idea of what the problem is.  However,
I'm not sure what the right way to fix it is.

The test in question is:

void connectToNeovimTCP() {
// These 2 cases WILL FAIL because there is no Neovim instance 
running
NeovimConnector *c = 
NeovimConnector::connectToNeovim("127.0.0.1:64999");
QCOMPARE(c->connectionType(), NeovimConnector::HostConnection);
QSignalSpy onError(c, SIGNAL(error(NeovimError)));
QVERIFY(onError.isValid());
QVERIFY(SPYWAIT(onError));

QCOMPARE(c->errorCause(), NeovimConnector::SocketError);
c->deleteLater();
}

As far as I can tell, what's happening is the async network connection
that's started by the connectToNeovim call has already errored out by
the time the onError SPY is created.  The test then times out waiting
for the error to occur.

I've mentioned this to upstream, but they haven't been very active
lately.

Cheers,
-- 
James
GPG Key: 4096R/91BF BF4D 6956 BD5D F7B7  2D23 DFE6 91AE 331B A3DB



Bug#845685: neovim-qt: FTBFS on kFreeBSD: tst_neovimconnector fails

2016-11-25 Thread Aaron M. Ucko
Source: neovim-qt
Version: 0.2.4-1
Severity: important
Justification: fails to build from source

The kFreeBSD build of neovim-qt failed:

Start  2: tst_neovimconnector
   2/12 Test  #2: tst_neovimconnector ..***Failed   15.12 sec
  * Start testing of NeovimQt::Test *
  Config: Using QtTest library 5.7.1, Qt 5.7.1 (x86_64-little_endian-lp64 
shared (dynamic) release build; by GCC 6.2.0 20161109)
  PASS   : NeovimQt::Test::initTestCase()
  QWARN  : NeovimQt::Test::reconnect() MsgpackIO fatal error "IO device needs 
to be sequential"
  PASS   : NeovimQt::Test::reconnect()
  QDEBUG : NeovimQt::Test::isReady() Unknown Neovim function "Array 
vim_get_api_info()"
  QDEBUG : NeovimQt::Test::isReady() Unknown Neovim function "Array 
vim_get_api_info()"
  QDEBUG : NeovimQt::Test::isReady() Unknown Neovim function "Array 
vim_get_api_info()"
  PASS   : NeovimQt::Test::isReady()
  QWARN  : NeovimQt::Test::encodeDecode() Encoding String into MsgpackIODevice 
without an encoding (defaulting to utf8)
  QWARN  : NeovimQt::Test::encodeDecode() Decoding String from MsgpackIODevice 
without an encoding (defaulting to utf8)
  QDEBUG : NeovimQt::Test::encodeDecode() Unknown Neovim function "Array 
vim_get_api_info()"
  PASS   : NeovimQt::Test::encodeDecode()
  FAIL!  : NeovimQt::Test::connectToNeovimTCP() 'SPYWAIT(onError)' returned 
FALSE. ()
 Loc: [/«PKGBUILDDIR»/test/tst_neovimconnector.cpp(62)]
  QWARN  : NeovimQt::Test::connectToNeovimSocket() Neovim fatal error 
"QLocalSocket::connectToServer: Invalid name"
  PASS   : NeovimQt::Test::connectToNeovimSocket()
  QDEBUG : NeovimQt::Test::connectToNeovimEnvEmpty() Unknown Neovim function 
"Array vim_get_api_info()"
  PASS   : NeovimQt::Test::connectToNeovimEnvEmpty()
  QWARN  : NeovimQt::Test::metadataTimeout() Request 0 timed out: 159
  QWARN  : NeovimQt::Test::metadataTimeout() Neovim fatal error "Neovim is 
taking too long to respond"
  PASS   : NeovimQt::Test::metadataTimeout()
  PASS   : NeovimQt::Test::cleanupTestCase()
  Totals: 8 passed, 1 failed, 0 skipped, 0 blacklisted, 15111ms
  * Finished testing of NeovimQt::Test *
  [...]
  92% tests passed, 1 tests failed out of 12

Could you please take a look?

Thanks!

-- 
Aaron M. Ucko, KB1CJC (amu at alum.mit.edu, ucko at debian.org)
http://www.mit.edu/~amu/ | http://stuff.mit.edu/cgi/finger/?a...@monk.mit.edu