-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
de-vendor GTest #11841
de-vendor GTest #11841
Conversation
|
All green finally :-) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. any1 else wanting to sign off on this?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I tested this locally on Windows 7 and Windows 11, unfortunately it fails on both:
On Windows 7 I get this linker failure:
Linking CXX executable mixxx-test.exe
FAILED: mixxx-test.exe
cmd.exe /C "cd . && "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe" -E vs_link_exe --intdir=CMakeFiles\mixxx-test.dir --rc=C:\PROGRA~2\WI3CF2~1\10\bin\100190~1.0\x64\rc.exe --mt=C:\PROGRA~2\WI3CF2~1\10\bin\100190~1.0\x64\mt.exe --manifests -- C:\PROGRA~2\MICROS~3\2019\COMMUN~1\VC\Tools\MSVC\1429~1.301\bin\Hostx64\x64\link.exe /nologo @CMakeFiles\mixxx-test.rsp /out:mixxx-test.exe /implib:mixxx-test.lib /pdb:mixxx-test.pdb /version:0.0 /machine:x64 /debug /INCREMENTAL:NO /subsystem:console /OPT:REF /entry:mainCRTStartup /manifest && cmd.exe /C "cd /D C:\Users\Joerg\source\repos\JoergAtGithub\mixxx\build\x64__portable && C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -noprofile -executionpolicy Bypass -file C:/Users/Joerg/source/repos/JoergAtGithub/mixxx/buildenv/mixxx-deps-2.4-x64-windows-d4dab88/scripts/buildsystems/msbuild/applocal.ps1 -targetBinary C:/Users/Joerg/source/repos/JoergAtGithub/mixxx/build/x64__portable/mixxx-test.exe -installedDir C:/Users/Joerg/source/repos/JoergAtGithub/mixxx/buildenv/mixxx-deps-2.4-x64-windows-d4dab88/installed/x64-windows/bin -OutVariable out""
LINK: command "C:\PROGRA~2\MICROS~3\2019\COMMUN~1\VC\Tools\MSVC\1429~1.301\bin\Hostx64\x64\link.exe /nologo @CMakeFiles\mixxx-test.rsp /out:mixxx-test.exe /implib:mixxx-test.lib /pdb:mixxx-test.pdb /version:0.0 /machine:x64 /debug /INCREMENTAL:NO /subsystem:console /OPT:REF /entry:mainCRTStartup /manifest /MANIFEST /MANIFESTFILE:mixxx-test.exe.manifest" failed (exit code 1120) with the following output:
C:\Users\Joerg\source\repos\JoergAtGithub\mixxx\build\x64__portable\enginebufferscalelineartest.cpp.obj : error LNK2019: unresolved external symbol "private: static void __cdecl testing::Mock::FailUninterestingCalls(unsigned __int64)" (?FailUninterestingCalls@Mock@testing@@CAX_K@Z) referenced in function "protected: virtual void __cdecl `anonymous namespace'::EngineBufferScaleLinearTest::SetUp(void)" (?SetUp@EngineBufferScaleLinearTest@?A0xe7ed0782@@MEAAXXZ)
C:\Users\Joerg\source\repos\JoergAtGithub\mixxx\build\x64__portable\enginebufferscalelineartest.cpp.obj : error LNK2019: unresolved external symbol "private: static void __cdecl testing::Mock::UnregisterCallReaction(unsigned __int64)" (?UnregisterCallReaction@Mock@testing@@CAX_K@Z) referenced in function "public: virtual void * __cdecl testing::StrictMock<class `anonymous namespace'::ReadAheadManagerMock>::`scalar deleting destructor'(unsigned int)" (??_G?$StrictMock@VReadAheadManagerMock@?A0xe7ed0782@@@testing@@UEAAPEAXI@Z)
C:\Users\Joerg\source\repos\JoergAtGithub\mixxx\build\x64__portable\mixxx-test.exe : fatal error LNK1120: 2 unresolved externals
[11/11] Linking CXX executable mixxx.exe
ninja: build stopped: subcommand failed.
Build All failed.
I could fix the linking issue, by commenting out enginebufferscalelineartest.cpp in the CMakeLists.txt file. But than many test fails:
The following tests FAILED:
9 - AutoDJProcessorTest.FullIntroOutro_LongerIntro (Failed)
10 - AutoDJProcessorTest.FullIntroOutro_LongerOutro (Failed)
11 - AutoDJProcessorTest.FadeAtOutroStart_LongerIntro (Failed)
12 - AutoDJProcessorTest.FadeAtOutroStart_LongerOutro (Failed)
13 - AutoDJProcessorTest.TransitionTimeLoadedFromConfig (Failed)
14 - AutoDJProcessorTest.DecksPlayingWarning (Failed)
15 - AutoDJProcessorTest.Decks34PlayingWarning (Failed)
16 - AutoDJProcessorTest.QueueEmpty (Failed)
17 - AutoDJProcessorTest.EnabledSuccess_DecksStopped (Failed)
18 - AutoDJProcessorTest.EnabledSuccess_DecksStopped_TrackLoadFails (Failed)
19 - AutoDJProcessorTest.EnabledSuccess_DecksStopped_TrackLoadFailsRightDeck (Failed)
20 - AutoDJProcessorTest.EnabledSuccess_PlayingDeck1 (Failed)
21 - AutoDJProcessorTest.EnabledSuccess_PlayingDeck1_TrackLoadFailed (Failed)
22 - AutoDJProcessorTest.EnabledSuccess_PlayingDeck2 (Failed)
23 - AutoDJProcessorTest.EnabledSuccess_PlayingDeck2_TrackLoadFailed (Failed)
24 - AutoDJProcessorTest.EnabledDisabledSuccess (Failed)
25 - AutoDJProcessorTest.FadeToDeck1_LoadOnDeck2_TrackLoadSuccess (Failed)
26 - AutoDJProcessorTest.FadeToDeck1_LoadOnDeck2_TrackLoadFailed (Failed)
27 - AutoDJProcessorTest.FadeToDeck2_LoadOnDeck1_TrackLoadSuccess (Failed)
28 - AutoDJProcessorTest.FadeToDeck2_LoadOnDeck1_TrackLoadFailed (Failed)
29 - AutoDJProcessorTest.FadeToDeck2_Long_Transition (Failed)
30 - AutoDJProcessorTest.FadeToDeck2_Pause_Transition (Failed)
31 - AutoDJProcessorTest.FadeToDeck2_SeekEnd (Failed)
32 - AutoDJProcessorTest.FadeToDeck2_SeekBeforeTransition (Failed)
33 - AutoDJProcessorTest.TrackZeroLength (Failed)
158 - ControlObjectScriptTest.CompressingProxyCompareCount1 (Failed)
159 - ControlObjectScriptTest.CompressingProxyCompareValue1 (Failed)
160 - ControlObjectScriptTest.CompressingProxyCompareCount2 (Failed)
161 - ControlObjectScriptTest.CompressingProxyCompareValue2 (Failed)
162 - ControlObjectScriptTest.QueuedCompareCount2 (Failed)
163 - ControlObjectScriptTest.QueuedCompareValue2 (Failed)
164 - ControlObjectScriptTest.CompressingProxyCompareCountMulti (Failed)
165 - ControlObjectScriptTest.CompressingProxyCompareValueMulti (Failed)
166 - ControlObjectScriptTest.CompressingProxyMultiConnection (Failed)
167 - ControlObjectScriptTest.QueuedFallbackMultiConnection (Failed)
168 - ControlObjectScriptTest.CompressingProxyManyEvents (Failed)
259 - EngineMasterTest.SingleChannelOutputWorks (Failed)
260 - EngineMasterTest.SingleChannelPFLOutputWorks (Failed)
261 - EngineMasterTest.TwoChannelOutputWorks (Failed)
262 - EngineMasterTest.TwoChannelPFLOutputWorks (Failed)
263 - EngineMasterTest.ThreeChannelOutputWorks (Failed)
264 - EngineMasterTest.ThreeChannelPFLOutputWorks (Failed)
498 - MusicBrainzRecordingsTaskTest.ClinetSideTimeout (Failed)
499 - MusicBrainzRecordingsTaskTest.RespodsEmpty (Failed)
512 - PortMidiControllerTest.OpenClose (Failed)
513 - PortMidiControllerTest.WriteShort (Failed)
514 - PortMidiControllerTest.WriteSysex (Failed)
515 - PortMidiControllerTest.WriteSysex_Malformed (Failed)
516 - PortMidiControllerTest.Poll_Read_Basic (Failed)
517 - PortMidiControllerTest.Poll_Read_SysExWithRealtime (Failed)
518 - PortMidiControllerTest.Poll_Read_SysEx (Failed)
519 - PortMidiControllerTest.Poll_Read_SysExInterrupted_FollowedByNormalMessage (Failed)
520 - PortMidiControllerTest.Poll_Read_SysExInterrupted_FollowedBySysExMessage (Failed)
521 - PortMidiControllerTest.Poll_Read_SysEx_BufferOverflow (Failed)
On Windows 11 the following test runs into a stack overflow now (with plain 2.4 only 4 tests on Windows 11 fail (due to #11094) and on Windows 7 every test passes):
Exception thrown at 0x00007FF91DDAB325 (Qt5Cored.dll) in mixxx-test.exe: 0xC00000FD: Stack overflow (parameters: 0x0000000000000001, 0x000000BDE5203FA8).
unknown file: error: SEH exception with code 0xc00000fd thrown in the test body.
C:\Users\Joerg.WORLDWARTWEB\source\repos\JoergAtGithub\mixxx\src\test\controlobjectscripttest.cpp(259): error: Actual function call count doesn't match EXPECT_CALL(*coScript2, slotValueChanged(42.0, _))...
Expected: to be called once
Actual: never called - unsatisfied and active
C:\Users\Joerg.WORLDWARTWEB\source\repos\JoergAtGithub\mixxx\src\test\controlobjectscripttest.cpp(256): error: Actual function call count doesn't match EXPECT_CALL(*coScript1, slotValueChanged(kMaxNumOfRecursions, _))...
Expected: to be called once
Actual: never called - unsatisfied and active
Since this is a test of the maximum recursions limit, it seems plaussible, that a new gtest version with more instrumentation code brings it over the edge.
Since we are a few days for the release, please retarget the GTest update/devendoring to Main. There only the last fail is an issue, because we plan to drop Windows 7 support for 2.5 anyway, due to the Qt6 update. But for 2.4 point release we need to maintain the testabilty.
|
Did you update your vcpkg environment? |
|
Sure, I tested full buildenv and release buildenv on Windows11 and only full buildenv on Windows 7. |
|
The windows 7 failure should be a cmake issue. It looks like it finds the wrong installation. |
|
Does it find the old GTest in build/lib/googletest? Please remove that directory along with all libgtest and libgmock. |
|
You're right. There was the old lib/googletest existing in my Mixxx working copy on Windows 7. |
|
The Windows 11 test fail is not that critical for me, since I can explain it, and it doesn't happen on CI. |
|
Thank you! |
|
Thank you @JoergAtGithub for doing the manual test and digging into the issue. 👍 |
|
Would be great to have a Along with #11880 that would be the final piece of the puzzle in getting the |
|
I'm running into trouble building 2.4 after this was merged.
so I ran
|
|
Finally a patchless RPM Fusion build without any issues*: https://koji.rpmfusion.org/koji/buildinfo?buildID=26656 *Except some disabled, unreliable tests. |
|
@ronso0 which OS are you running? Maybe Debian ships a broken version of gtest without the CMake config file? |
|
I'm on Ubuntu 20.04, got googletest from the Universe repo. dpkg-query -L googletest | grep cmake
/usr/src/googletest/googlemock/cmake
/usr/src/googletest/googlemock/cmake/gmock.pc.in
/usr/src/googletest/googlemock/cmake/gmock_main.pc.in
/usr/src/googletest/googletest/cmake
/usr/src/googletest/googletest/cmake/Config.cmake.in
/usr/src/googletest/googletest/cmake/gtest.pc.in
/usr/src/googletest/googletest/cmake/gtest_main.pc.in
/usr/src/googletest/googletest/cmake/internal_utils.cmake
/usr/src/googletest/googletest/cmake/libgtest.la.in |
|
Yup, that looks broken. It should contain a |
|
I posted the wrong output, but meeeh.. |
|
If you don't want to upgrade: |
|
Yeah, will try that. The ppa build for 20.04 is also broken, no? Anyway, I filed https://bugs.launchpad.net/ubuntu/+source/googletest/+bug/2033438 |
|
Didn't we drop support anyway? If I read our minimum requirements policy correctly, 22.04 should be minimum, or am I missing something? |
|
The ppa still builds for 20.04 Anyhow, 2.4-beta builds fail for all versions https://launchpad.net/~mixxx/+archive/ubuntu/mixxxbetas/+packages |
|
For the record: I removed the packages Building now fails with There is no Any help is appreciated. Upgrading to 22.04 is no option currently (requires a fresh install since Ubuntu Studio uses KDE desktop) so I will try to revert this PR in order to be able to build 2.4 again. |
|
Okay, after clearing the build and reconfiguring multiple times I can build 2.4 again (with the |
This requires a vcpkg update form mixxxdj/vcpkg#82
Edit: This update is now included, It does not work standalone.
It includes openssl 3.1.2 and gtest 1.13