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

James McCoy jamessan at debian.org
Fri Dec 16 02:31:51 UTC 2016


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



More information about the pkg-vim-maintainers mailing list