I'm trying to improve enigmail's test suite coverage in debian, and i've had difficulties there. This is an attempt to document the problems i'm running into, in the hopes that someone on-list here can give me suggestions for new things to try.
To be clear: i can get the tests to pass cleanly when i build the package myself and when i run its tests. But i get different failures when the tests are run on the debian infrastructure. These errors are blocking me from contributing effective refactoring work to enigmail, because i want a clean baseline on standardized/common infrastructure to be able to be sure my changes don't break anything. Unit tests hang on debian build daemon (buildd) network ------------------------------------------------------- if i try to run the test suite during the debian build, it hangs on the debian build daemons (it does not hang when i build it on my own builders though). Compare: (with test suite) https://buildd.debian.org/status/fetch.php?pkg=enigmail&arch=all&ver=2%3A2.0.7-3&stamp=1529511787&raw=0 (without test suite) https://buildd.debian.org/status/fetch.php?pkg=enigmail&arch=all&ver=2%3A2.0.7-4&stamp=1529524566&raw=0 Specifically, the hang happens when the unit tests start: make[2]: Leaving directory '/<<PKGBUILDDIR>>' make[2]: Entering directory '/<<PKGBUILDDIR>>' make -C ipc/tests make[3]: Entering directory '/<<PKGBUILDDIR>>/ipc/tests' ../../util/run-jsunit /usr/bin/perl "/usr/bin/thunderbird" --profile /<<PKGBUILDDIR>>/test-profile -jsunit main.js E: Build killed with signal TERM after 150 minutes of inactivity I don't know why the test fails in this way on the buildd, but my current work in debian (as of packaging version 2:2.0.7-4) is to just skip the tests during build :( Help welcome! Sqlite.openConnection() fails on debian continuous integration testing ---------------------------------------------------------------------- Having given up for now on running the tests during the build, i figured i would try to get them to run on the installed package -- so i added a debian autopkgtest suite to run the tests after installation. you can see the failing reports here: https://ci.debian.net/packages/e/enigmail/unstable/amd64/ on the latest version, which includes all the bugfixes i've made to the 2.0 branch's test suite, i am stumped by the failure found at [1], as follows: [1] https://ci.debian.net/data/autopkgtest/unstable/amd64/e/enigmail/545639/log.gz […] *** Executing sub-test 'autocrypt-test.js' *** 2018-07-02 13:59:32.928 [DEBUG] autocrypt.jsm: getOpenPGPKeyForEmail: could not open database [Error: Could not open connection to /tmp/autopkgtest-lxc.nogrphwa/downtmp/build.6Ql/src/test-profile/enigmail.sqlite: 2153971713] AssertionError: "getOpenPGPKeyForEmail1 error Error: Could not open connection to /tmp/autopkgtest-lxc.nogrphwa/downtmp/build.6Ql/src/test-profi == 1 - JS frame :: resource://jsunit/jsunit-main.jsm -> file:///tmp/autopkgtest-lxc.nogrphwa/downtmp/build.6Ql/src/package/tests/autocrypt-test.js :: processHeader/< :: line 161 I think this failure is happening in Sqlite.jsm's Sqlite.openConnection() function [2]. [2] https://developer.mozilla.org/en-US/docs/Mozilla/JavaScript_code_modules/Sqlite.jsm As with the errors during the build, I am currently unable to reproduce this particular error on my own machinery. On my own autopkgtest machine, the test suite completes successfully. The error code 2153971713 is 0x80630001, aka either PEER_E_IPV6_NOT_INSTALLED (seems unlikely) or it is (more likely) NS_ERROR_STORAGE_BUSY, which is defined in a very convoluted way here: https://sources.debian.org/src/thunderbird/1:52.8.0-1/mozilla/xpcom/base/ErrorList.h/#L865 If it's NS_ERROR_STORAGE_BUSY, i note that there are several different points where thunderbird appears to just wait 10 seconds and retry when sqlite is complaining that it's busy... https://codesearch.debian.net/search?q=package%3Athunderbird+NS_ERROR_STORAGE_BUSY Maybe enigmail should adopt the same workarounds? they're kind of ugly, but i don't know what else to do. or, is there some other scenario i should look into? --dkg
signature.asc
Description: PGP signature
_______________________________________________ enigmail-users mailing list enigmail-users@enigmail.net To unsubscribe or make changes to your subscription click here: https://admin.hostpoint.ch/mailman/listinfo/enigmail-users_enigmail.net