Closed VorpalBlade closed 1 year ago
Note: This build error is as of right now reproducible. It happened 5 out of 5 times in a row.
Strange, in my env I could not reproduce it at all so far. So far I could only fix the layout-related warnings.
I have the following
3: Test command: /home/keloran/.cache/paru/clone/syncthingtray/src/syncthingtray-1.3.0/widgets/syncthingwidgets_wizard_tests
3: Working Directory: /home/keloran/.cache/paru/clone/syncthingtray/src/syncthingtray-1.3.0/widgets
3: Test timeout computed to be: 10000000
3: ********* Start testing of WizardTests *********
3: Config: Using QtTest library 5.15.7, Qt 5.15.7 (x86_64-little_endian-lp64 shared (dynamic) release build; by GCC 12.2.0), endeavouros unknown
3: QDEBUG : WizardTests::initTestCase() "HOME dir: /tmp/syncthingwidgets_wizard_tests-MqDYAL"
3: PASS : WizardTests::initTestCase()
3: QWARN : WizardTests::testShowingSettings() QLayout: Attempting to add QLayout "" to QtGui::DetectionWizardPage "", which already has a layout
3: PASS : WizardTests::testShowingSettings()
3: QWARN : WizardTests::testConfiguringLauncher() QLayout: Attempting to add QLayout "" to QtGui::DetectionWizardPage "", which already has a layout
3: Info: Launched process, PID: 3410798
3: QWARN : WizardTests::testConfiguringLauncher() QFSFileEngine::open: No file name specified
3: FAIL! : WizardTests::testConfiguringLauncher() '!wizardDlg.setupDetection().hasConfig()' returned FALSE. ()
3: Loc: [/home/keloran/.cache/paru/clone/syncthingtray/src/syncthingtray-1.3.0/widgets/tests/wizard.cpp(165)]
3: QWARN : WizardTests::testConfiguringCurrentlyRunningSyncthing() QLayout: Attempting to add QLayout "" to QtGui::DetectionWizardPage "", which already has a layout
3: Info: Launched process, PID: 3410804
3: QWARN : WizardTests::testConfiguringCurrentlyRunningSyncthing() QFSFileEngine::open: No file name specified
3: QWARN : WizardTests::testConfiguringCurrentlyRunningSyncthing() QNetworkReplyImplPrivate::error: Internal problem, this method must only be called once.
3: FAIL! : WizardTests::testConfiguringCurrentlyRunningSyncthing() '!cfgCurrentlyRunningRadioButton->isHidden()' returned FALSE. ()
3: Loc: [/home/keloran/.cache/paru/clone/syncthingtray/src/syncthingtray-1.3.0/widgets/tests/wizard.cpp(319)]
3: PASS : WizardTests::cleanupTestCase()
3: Totals: 3 passed, 2 failed, 0 skipped, 0 blacklisted, 81ms
3: ********* Finished testing of WizardTests *********
3/6 Test #3: syncthingwidgets_run_wizard_tests ..............***Failed 0.19 sec
I assume the first issue Expected (QStringLiteral("http://127.0.0.1:8384")) : "http://127.0.0.1:8384"
might be due to trying to start a syncthing in the chroot but syncthing already running on that port on the host. I start syncthing using the syncthing@user.service
system service. This is a wild guess though. Previous versions have built fine in the same chroot setup, so unless that is a new test I'm confused.
I have no idea about the second failing test.
I have the following [...]
Oh joy! A partially different build error!
By the way, I have used aur sync -cR syncthingtray --makepkg-args=--nocheck
to get around this temporarily. Presumably you can forward arguments to makepkg with other aur helpers too.
I confirm the issue after building everything using extra-x86_64-build
test 3
Start 3: syncthingwidgets_run_wizard_tests
3: Test command: /build/syncthingtray/src/syncthingtray-1.3.0/widgets/syncthingwidgets_wizard_tests
3: Working Directory: /build/syncthingtray/src/syncthingtray-1.3.0/widgets
3: Test timeout computed to be: 10000000
3: QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-builduser'
3: ********* Start testing of WizardTests *********
3: Config: Using QtTest library 5.15.7, Qt 5.15.7 (x86_64-little_endian-lp64 shared (dynamic) release build; by GCC 12.2.0), arch unknown
3: QDEBUG : WizardTests::initTestCase() "HOME dir: /tmp/syncthingwidgets_wizard_tests-ZaJXlH"
3: PASS : WizardTests::initTestCase()
3: QWARN : WizardTests::testShowingSettings() QLayout: Attempting to add QLayout "" to QtGui::DetectionWizardPage "", which already has a layout
3: PASS : WizardTests::testShowingSettings()
3: QWARN : WizardTests::testConfiguringLauncher() QLayout: Attempting to add QLayout "" to QtGui::DetectionWizardPage "", which already has a layout
3: QWARN : WizardTests::testConfiguringLauncher() QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-builduser'
3: QWARN : WizardTests::testConfiguringLauncher() This plugin does not support propagateSizeHints()
3: QWARN : WizardTests::testConfiguringLauncher() QFSFileEngine::open: No file name specified
3: Info: Launched process, PID: 4791
3: QWARN : WizardTests::testConfiguringLauncher() QFSFileEngine::open: No file name specified
3: Info: Launched process, PID: 4797
3: QWARN : WizardTests::testConfiguringLauncher() QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-builduser'
3: QDEBUG : WizardTests::testConfiguringLauncher() waiting for Syncthing to write config file
3: FAIL! : WizardTests::testConfiguringLauncher() Compared values are not the same
3: Actual (settings.connection.primary.syncthingUrl): "http://127.0.0.1:42029"
3: Expected (QStringLiteral("http://127.0.0.1:8384")) : "http://127.0.0.1:8384"
3: Loc: [/build/syncthingtray/src/syncthingtray-1.3.0/widgets/tests/wizard.cpp(266)]
3: QWARN : WizardTests::testConfiguringCurrentlyRunningSyncthing() QLayout: Attempting to add QLayout "" to QtGui::DetectionWizardPage "", which already has a layout
3: Info: Launched process, PID: 4821
3: QWARN : WizardTests::testConfiguringCurrentlyRunningSyncthing() QFSFileEngine::open: No file name specified
3: QWARN : WizardTests::testConfiguringCurrentlyRunningSyncthing() QNetworkReplyImplPrivate::error: Internal problem, this method must only be called once.
3: FAIL! : WizardTests::testConfiguringCurrentlyRunningSyncthing() '!cfgCurrentlyRunningRadioButton->isHidden()' returned FALSE. ()
3: Loc: [/build/syncthingtray/src/syncthingtray-1.3.0/widgets/tests/wizard.cpp(319)]
3: QDEBUG : WizardTests::cleanupTestCase() terminating Syncthing
3: PASS : WizardTests::cleanupTestCase()
3: Totals: 3 passed, 2 failed, 0 skipped, 0 blacklisted, 6839ms
3: ********* Finished testing of WizardTests *********
3/6 Test #3: syncthingwidgets_run_wizard_tests ..............***Failed 6.91 sec
(...)
83% tests passed, 1 tests failed out of 6
Total Test time (real) = 18.10 sec
The following tests FAILED:
3 - syncthingwidgets_run_wizard_tests (Failed)
Errors while running CTest
Output from these tests are in: /build/syncthingtray/src/syncthingtray-1.3.0/Testing/Temporary/LastTest.log
Use "--rerun-failed --output-on-failure" to re-run the failed cases verbosely.
FAILED: connector/CMakeFiles/check /build/syncthingtray/src/syncthingtray-1.3.0/connector/CMakeFiles/check
cd /build/syncthingtray/src/syncthingtray-1.3.0 && /usr/bin/ctest -V
ninja: build stopped: subcommand failed.
I'm actually trying to assign a random port for the test instance of Syncthing to avoid running in conflicts with an already running one. This is done by starting Syncthing with --gui-address=http://127.0.0.1:…
. I find it quite strange that in your case it fails with:
3: FAIL! : WizardTests::testConfiguringLauncher() Compared values are not the same
3: Actual (settings.connection.primary.syncthingUrl): "http://127.0.0.1:42227"
3: Expected (QStringLiteral("http://127.0.0.1:8384")) : "http://127.0.0.1:8384"
So Syncthing seems to write the different port even to its config file in your case. My test is only expecting the default port because I observed in my environment that Syncthing still writes the default port to the config file (despite the --gui-address
argument).
I confirm the issue after building everything using
extra-x86_64-build
I believe this should be about equivalent to what aurutils does in chroot mode. It uses devtools under the hood with some extra dependency handling fixes on top.
This warning might indicate that overriding HOME
like I'm doing it in this test setup is maybe not sufficient:
3: QWARN : WizardTests::testConfiguringLauncher() QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-builduser'
And this warning looks like we're hitting an internal problem of Qt (which I'm also not getting):
3: QWARN : WizardTests::testConfiguringCurrentlyRunningSyncthing() QNetworkReplyImplPrivate::error: Internal problem, this method must only be called once.
Now that I have built and upgraded using --nocheck
, I could more easily try rebuilding outside the chroot in order to determine what effect that had:
3: Test command: /home/arvid/.cache/aurutils/sync/syncthingtray/src/syncthingtray-1.3.0/widgets/syncthingwidgets_wizard_tests
3: Working Directory: /home/arvid/.cache/aurutils/sync/syncthingtray/src/syncthingtray-1.3.0/widgets
3: Test timeout computed to be: 10000000
3: ********* Start testing of WizardTests *********
3: Config: Using QtTest library 5.15.7, Qt 5.15.7 (x86_64-little_endian-lp64 shared (dynamic) release build; by GCC 12.2.0), arch unknown
3: QDEBUG : WizardTests::initTestCase() "HOME dir: /tmp/syncthingwidgets_wizard_tests-zbWevX"
3: PASS : WizardTests::initTestCase()
3: QWARN : WizardTests::testShowingSettings() QLayout: Attempting to add QLayout "" to QtGui::DetectionWizardPage "", which already has a layout
3: PASS : WizardTests::testShowingSettings()
3: QWARN : WizardTests::testConfiguringLauncher() QLayout: Attempting to add QLayout "" to QtGui::DetectionWizardPage "", which already has a layout
3: QWARN : WizardTests::testConfiguringLauncher() This plugin does not support propagateSizeHints()
3: QWARN : WizardTests::testConfiguringLauncher() QFSFileEngine::open: No file name specified
3: Info: Launched process, PID: 120859
3: QWARN : WizardTests::testConfiguringLauncher() QFSFileEngine::open: No file name specified
3: Info: Launched process, PID: 120865
3: QDEBUG : WizardTests::testConfiguringLauncher() waiting for Syncthing to write config file
3: FAIL! : WizardTests::testConfiguringLauncher() Compared values are not the same
3: Actual (settings.connection.primary.syncthingUrl): "http://127.0.0.1:42835"
3: Expected (QStringLiteral("http://127.0.0.1:8384")) : "http://127.0.0.1:8384"
3: Loc: [/home/arvid/.cache/aurutils/sync/syncthingtray/src/syncthingtray-1.3.0/widgets/tests/wizard.cpp(266)]
3: QWARN : WizardTests::testConfiguringCurrentlyRunningSyncthing() QLayout: Attempting to add QLayout "" to QtGui::DetectionWizardPage "", which already has a layout
3: Info: Launched process, PID: 120892
3: QWARN : WizardTests::testConfiguringCurrentlyRunningSyncthing() QFSFileEngine::open: No file name specified
3: QWARN : WizardTests::testConfiguringCurrentlyRunningSyncthing() QNetworkReplyImplPrivate::error: Internal problem, this method must only be called once.
3: FAIL! : WizardTests::testConfiguringCurrentlyRunningSyncthing() '!cfgCurrentlyRunningRadioButton->isHidden()' returned FALSE. ()
3: Loc: [/home/arvid/.cache/aurutils/sync/syncthingtray/src/syncthingtray-1.3.0/widgets/tests/wizard.cpp(319)]
3: QDEBUG : WizardTests::cleanupTestCase() terminating Syncthing
3: PASS : WizardTests::cleanupTestCase()
3: Totals: 3 passed, 2 failed, 0 skipped, 0 blacklisted, 2481ms
3: ********* Finished testing of WizardTests *********
3/6 Test #3: syncthingwidgets_run_wizard_tests ..............***Failed 2.68 sec
So it seems the HOME/XDG thing might be a red herring for this particular problem.
I'm building with distcc, but that shouldn't have any effect. I just verified that -march=x86-64-v3
vs default -march=x86-64
makes no difference, and that is the only thing I modify in my makepkg.conf
Note: XDG_RUNTIME_DIR
is /run/user/1000
for me, so not related to HOME
. When going into the chroot I believe the environment is also cleared, thus this is dropped. While you are simply inheriting it when not building in a chroot, and thus not seeing the warning. So yeah, you should probably set it explicitly.
Yes, looks like the HOME/XDG thing isn't relevant.
Just for reference, a good run looks like this (on the latest commit fixing the layout issues):
********* Start testing of WizardTests *********
Config: Using QtTest library 5.15.7, Qt 5.15.7 (x86_64-little_endian-lp64 shared (dynamic) release build; by GCC 12.2.0), arch unknown
QDEBUG : WizardTests::initTestCase() "HOME dir: /tmp/syncthingwidgets_wizard_tests-VpAhui"
PASS : WizardTests::initTestCase()
PASS : WizardTests::testShowingSettings()
QWARN : WizardTests::testConfiguringLauncher() This plugin does not support propagateSizeHints()
QWARN : WizardTests::testConfiguringLauncher() QFSFileEngine::open: No file name specified
Info: Launched process, PID: 29648
QWARN : WizardTests::testConfiguringLauncher() QFSFileEngine::open: No file name specified
Info: Launched process, PID: 29654
QDEBUG : WizardTests::testConfiguringLauncher() waiting for Syncthing to write config file
PASS : WizardTests::testConfiguringLauncher()
Info: Launched process, PID: 29683
QWARN : WizardTests::testConfiguringCurrentlyRunningSyncthing() QFSFileEngine::open: No file name specified
PASS : WizardTests::testConfiguringCurrentlyRunningSyncthing()
QDEBUG : WizardTests::cleanupTestCase() terminating Syncthing
PASS : WizardTests::cleanupTestCase()
Totals: 5 passed, 0 failed, 0 skipped, 0 blacklisted, 2580ms
********* Finished testing of WizardTests *********
So the QFSFileEngine
warnings are also normal. It works for me with a debug build and a release build and I have actually ran tests quite often in the chroot env as well when building syncthingtray-git
during development (and all builds in my repo were done with tests enabled).
I can now reproduce the exact problem by starting python -m http.server 8384
. In all my envs Syncthing is actually on 8080 so there's no conflict. So it is really just about the port and my attempt for setting a different one doesn't seem to work very well.
This might not be relevant (if the port thing you just posted caused both problems), but I had already written it when that post popped up:
I have verified that I can reproduce the issues on two computers, a Thinkpad T480 with Intel Core i7-8550U and a desktop with AMD Ryzen 5600X. Turning off distcc didn't make a difference (only tested on the Ryzen desktop). Mind you, I use centralised configuration management, so the computers are very similarly configured.
One thing worth trying might be running the unit test under valgrind or one of the various sanitisers that modern GCC/clang has?
EDIT: Also @Keloran had a different error than me and @iyanmv did. So there is that too.
Syncthing is behaving strange. When its default port is already used (e.g. python -m http.server 8384
) and I invoke
HOME=/tmp/test syncthing -no-browser -no-restart -logflags=3 --gui-address=http://127.0.0.1:4001
then the resulting config file contains the random port <address>127.0.0.1:41255</address>
but the GUI listens nevertheless on the specified port 4001 which is also logged accordingly.
If I invoke the very same command but Syncthing's default port is not blocked I get <address>127.0.0.1:8384</address>
in the config file but the GUI listens still on the specified port 4001. That behavior I've also observed before when writing my tests but I assumed that the config would simply not reflect the different port specified via the CLI arg. However, considering the behavior when the default port is blocked that also seems a bit unreasonable.
So I believe we found a Syncthing bug here.
You're nevertheless right that the error messages from you differ slightly and the warning from QNetworkReplyImplPrivate
is also problematic. So maybe we're still dealing with some problems on Syncthing Tray's side as well.
I've been adding a workaround. Can you test whether the latest commits I've pushed work for you? Before testing anything I'd recommend to stop any leftover Syncthing processes from previous test runs (but having your regular Syncthing running on 8384 should be fine).
If it helps I get the same failed test, here my log of it.
3/6 Testing: syncthingwidgets_run_wizard_tests
3/6 Test: syncthingwidgets_run_wizard_tests
Command: "/home/bucch/.cache/paru/clone/syncthingtray/src/syncthingtray-1.3.0/widgets/syncthingwidgets_wizard_tests"
Directory: /home/bucch/.cache/paru/clone/syncthingtray/src/syncthingtray-1.3.0/widgets
"syncthingwidgets_run_wizard_tests" start time: Nov 02 21:59 CET
Output:
----------------------------------------------------------
********* Start testing of WizardTests *********
Config: Using QtTest library 5.15.6, Qt 5.15.6 (x86_64-little_endian-lp64 shared (dynamic) release build; by GCC 12.2.0), manjaro unknown
QDEBUG : WizardTests::initTestCase() "HOME dir: /tmp/syncthingwidgets_wizard_tests-JKNPMN"
PASS : WizardTests::initTestCase()
QWARN : WizardTests::testShowingSettings() QLayout: Attempting to add QLayout "" to QtGui::DetectionWizardPage "", which already has a layout
PASS : WizardTests::testShowingSettings()
QWARN : WizardTests::testConfiguringLauncher() QLayout: Attempting to add QLayout "" to QtGui::DetectionWizardPage "", which already has a layout
QWARN : WizardTests::testConfiguringLauncher() This plugin does not support propagateSizeHints()
QWARN : WizardTests::testConfiguringLauncher() QFSFileEngine::open: No file name specified
Info: Launched process, PID: 11507
QWARN : WizardTests::testConfiguringLauncher() QFSFileEngine::open: No file name specified
Info: Launched process, PID: 11513
QDEBUG : WizardTests::testConfiguringLauncher() waiting for Syncthing to write config file
FAIL! : WizardTests::testConfiguringLauncher() Compared values are not the same
Actual (settings.connection.primary.syncthingUrl): "http://127.0.0.1:34519"
Expected (QStringLiteral("http://127.0.0.1:8384")) : "http://127.0.0.1:8384"
Loc: [/home/bucch/.cache/paru/clone/syncthingtray/src/syncthingtray-1.3.0/widgets/tests/wizard.cpp(266)]
QWARN : WizardTests::testConfiguringCurrentlyRunningSyncthing() QLayout: Attempting to add QLayout "" to QtGui::DetectionWizardPage "", which already has a layout
Info: Launched process, PID: 11534
QWARN : WizardTests::testConfiguringCurrentlyRunningSyncthing() QFSFileEngine::open: No file name specified
QWARN : WizardTests::testConfiguringCurrentlyRunningSyncthing() QNetworkReplyImplPrivate::error: Internal problem, this method must only be called once.
FAIL! : WizardTests::testConfiguringCurrentlyRunningSyncthing() '!cfgCurrentlyRunningRadioButton->isHidden()' returned FALSE. ()
Loc: [/home/bucch/.cache/paru/clone/syncthingtray/src/syncthingtray-1.3.0/widgets/tests/wizard.cpp(319)]
QDEBUG : WizardTests::cleanupTestCase() terminating Syncthing
PASS : WizardTests::cleanupTestCase()
Totals: 3 passed, 2 failed, 0 skipped, 0 blacklisted, 1999ms
********* Finished testing of WizardTests *********
<end of output>
Test time = 2.17 sec
----------------------------------------------------------
Test Failed.
"syncthingwidgets_run_wizard_tests" end time: Nov 02 21:59 CET
"syncthingwidgets_run_wizard_tests" time elapsed: 00:00:02
----------------------------------------------------------
It seems the fails are consistent, the one you already indentified related to the port and then the other one !cfgCurrentlyRunningRadioButton->isHidden()
And here some info:
Let me know if you need more info, tomorrow i'll try on another machine running Arch tried on the Arch machine with the same result (random port test failed).
@th3bucch Looks like you haven't tried with the latest commit on Git. It would help to know whether that is working.
I tried to build it using your -git PKGBUILD from your PKGBUILD repo, but it seems to need the -git version specifically of c++utilities etc too. I don't have time to mess around with all of that right now, but if you can point me to a PKGBUILD that will work with the current release versions of the dependencies I'll happily test that.
The -git PKGBUILDs shouldn't take long to build and are co-installable with everything else. However, I'd just recommend to build it manually following the steps in the README.
I ended up editing the -git PKGBUILD removing all the cmake parameters about git suffixes and removing -git from the .so dependencies. That builds correctly with makepkg and aur build (resulting in version 1434.860cf28-1).
Ok, I'll patch the PKGBUILDs then.
With the latest version, everything works for me. For my part, feel free to close the issue, or keep it open for tracking the different error that @Keloran was getting.
I'm closing the issue because he's been creating another one anyways.
Relevant components The unit test fails when building the package from AUR. I'm not sure which component that corresponds to.
syncthingctl
)libsyncthing
)Environment and versions
syncthingtray
,qtutilities
andc++utilities
: 1.3.0-1, 6.10.0-1, 5.20.0-1Bug description
Unit test failure when building the latest AUR package. Only syncthingwidgets_run_wizard_tests fails:
Steps to reproduce
Note I have not tested if it breaks outside a chroot as well due to above mentioned pain with exact version dependencies.
Expected behavior Build should succeed.
Screenshots If applicable, add screenshots to help explain your problem.
Additional context Add any other context about the problem here.