Bug 428767 - Compilation error in unit tests due to QCOMPARE parameter type mismatch -- FIX INCLUDED!
Summary: Compilation error in unit tests due to QCOMPARE parameter type mismatch -- FI...
Status: RESOLVED FIXED
Alias: None
Product: krita
Classification: Applications
Component: Unittests (other bugs)
Version First Reported In: 4.3.0
Platform: Kubuntu Linux
: NOR normal
Target Milestone: ---
Assignee: Krita Bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-11-06 20:23 UTC by PierreHM
Modified: 2020-11-07 10:00 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed/Implemented In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description PierreHM 2020-11-06 20:23:29 UTC
SUMMARY
Compilation error in unit tests due to QCOMPARE parameter type mismatch.

STEPS TO REPRODUCE
   mkdir kritadev
   cd kritadev/
   mkdir build
   mkdir install
   git clone https://invent.kde.org/graphics/krita.git
   cd build/
   cmake ../krita/ \
     -DCMAKE_INSTALL_PREFIX=$HOME/kritadev/install \
     -DCMAKE_BUILD_TYPE=Debug \
     -DKRITA_DEVS=ON
   make -j24

OBSERVED RESULT
CMakeFiles/kis_algebra_2d_test.dir/kis_algebra_2d_test.cpp.o: In function `KisAlgebra2DTest::testNullRectProcessing()':
/home/phm/kritadev/krita/libs/image/tests/kis_algebra_2d_test.cpp:295: undefined reference to `bool QTest::qCompare<QRectF, QRect>(QRectF const&, QRect const&, char const*, char const*, char const*, int)'
/home/phm/kritadev/krita/libs/image/tests/kis_algebra_2d_test.cpp:298: undefined reference to `bool QTest::qCompare<QRectF, QRect>(QRectF const&, QRect const&, char const*, char const*, char const*, int)'
/home/phm/kritadev/krita/libs/image/tests/kis_algebra_2d_test.cpp:303: undefined reference to `bool QTest::qCompare<QRectF, QRect>(QRectF const&, QRect const&, char const*, char const*, char const*, int)'
/home/phm/kritadev/krita/libs/image/tests/kis_algebra_2d_test.cpp:308: undefined reference to `bool QTest::qCompare<QRectF, QRect>(QRectF const&, QRect const&, char const*, char const*, char const*, int)'
/home/phm/kritadev/krita/libs/image/tests/kis_algebra_2d_test.cpp:313: undefined reference to `bool QTest::qCompare<QRectF, QRect>(QRectF const&, QRect const&, char const*, char const*, char const*, int)'
collect2: error: ld returned 1 exit status
make[2]: *** [libs/image/tests/CMakeFiles/kis_algebra_2d_test.dir/build.make:132: libs/image/tests/kis_algebra_2d_test] Error 1
make[1]: *** [CMakeFiles/Makefile2:11773: libs/image/tests/CMakeFiles/kis_algebra_2d_test.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....


EXPECTED RESULT: Successful compilation.


SOFTWARE/OS VERSIONS
Kubuntu 18.04
KDE Plasma Version: 5.12.9
KDE Frameworks Version: 5.440
Qt Version: 5.9.5

ADDITIONAL INFORMATION

Compilation error is fixed, and Krita compiles and runs successfully, by providing matching types to the QCOMPARE macro parameters:


diff --git a/libs/image/tests/kis_algebra_2d_test.cpp b/libs/image/tests/kis_algebra_2d_test.cpp
index c13f64f446..c2dafe4478 100644
--- a/libs/image/tests/kis_algebra_2d_test.cpp
+++ b/libs/image/tests/kis_algebra_2d_test.cpp
@@ -292,25 +292,25 @@ void KisAlgebra2DTest::testNullRectProcessing()
     /// test transformations
 
     // translate
-    QCOMPARE(QTransform::fromTranslate(10, 20).mapRect(lineRect), QRect(20, 30, 100, 0));                                                                      
+    QCOMPARE(QTransform::fromTranslate(10, 20).mapRect(lineRect), QRectF(20, 30, 100, 0));                                                                     
 
     // scale
-    QCOMPARE(QTransform::fromScale(2.0, 2.0).mapRect(lineRect), QRect(20, 20, 200, 0));                                                                        
+    QCOMPARE(QTransform::fromScale(2.0, 2.0).mapRect(lineRect), QRectF(20, 20, 200, 0));                                                                       
 
     // rotate
     QTransform rot;
     rot.rotate(90);
-    QCOMPARE(rot.mapRect(lineRect), QRect(-10, 10, 0, 100));
+    QCOMPARE(rot.mapRect(lineRect), QRectF(-10, 10, 0, 100));
 
     // shear-x
     QTransform shearX;
     shearX.shear(2.0, 0.0);
-    QCOMPARE(shearX.mapRect(lineRect), QRect(30, 10, 100, 0));
+    QCOMPARE(shearX.mapRect(lineRect), QRectF(30, 10, 100, 0));
 
     // shear-y
     QTransform shearY;
     shearY.shear(0.0, 2.0);
-    QCOMPARE(shearY.mapRect(lineRect), QRect(10, 30, 100, 200));
+    QCOMPARE(shearY.mapRect(lineRect), QRectF(10, 30, 100, 200));
 
     /// binary operations
 




> git log -1 libs/image/tests/kis_algebra_2d_test.cpp
commit f2878133693c1601912a92cc9ae2bffe08e8ab42
Author: Boudewijn Rempt <boud@valdyas.org>
Date:   Tue Apr 14 22:28:25 2020 +0200

    Fix build with Qt 5.15
    
    Hey, The Qt Company, how about stopping breaking builds?
    
    (cherry picked from commit d1484812b588e30f5bf5e8d6bd023e483d94186a)




> git log -1
commit 3b71809518785cd7dc9021f0b79d0f0d388e6fbe (HEAD, tag: v4.3.0)
Author: Sharaf Zaman <sharafzaz121@gmail.com>
Date:   Sat May 2 20:07:18 2020 +0530

    Use Google Play Inapp-billing for donations on Android&ChromeOS
    
    # Conflicts:
    #       libs/ui/KisWelcomePageWidget.cpp
    #       libs/ui/KisWelcomePageWidget.h
    
    (cherry picked from commit 32d7b773a76fe52d160cc1e0c2714130dde13b69)
Comment 1 PierreHM 2020-11-06 20:30:32 UTC
Forgot to mention, checked out tagged version of source code before compilation:

git checkout v4.3.0
Comment 2 Justin Zobel 2020-11-07 07:31:18 UTC
Please submit the PR directly on invent.kde.org, thanks!
Comment 3 Halla Rempt 2020-11-07 09:59:38 UTC
Git commit 8253f4443e0d7b219884a4ff21784f3888a28a3f by Boudewijn Rempt.
Committed on 07/11/2020 at 09:58.
Pushed by rempt into branch 'krita/4.3'.

Probably only an issue with Qt 5.9, but anyway.

M  +3    -3    libs/image/tests/kis_algebra_2d_test.cpp

https://invent.kde.org/graphics/krita/commit/8253f4443e0d7b219884a4ff21784f3888a28a3f
Comment 4 Halla Rempt 2020-11-07 10:00:05 UTC
Git commit f4a0907d40143c21d2238a1ffcf107ef192d8a5b by Boudewijn Rempt.
Committed on 07/11/2020 at 09:59.
Pushed by rempt into branch 'master'.

Probably only an issue with Qt 5.9, but anyway.

(cherry picked from commit 8253f4443e0d7b219884a4ff21784f3888a28a3f)

M  +3    -3    libs/image/tests/kis_algebra_2d_test.cpp

https://invent.kde.org/graphics/krita/commit/f4a0907d40143c21d2238a1ffcf107ef192d8a5b