summaryrefslogtreecommitdiffstats
path: root/tests/baseline
Commit message (Collapse)AuthorAgeFilesLines
* Stylesheet: Another positioning fix for the menu indicatorVolker Hilsheimer2022-05-181-0/+12
| | | | | | | | | | | | | | | | | Draw tool button menu indicator relative to frame, not content, so that padding added in the stylesheet creates room between text and indicator. Also, prevent another double-arrow by ignoring menu indicator rendering when a menu button subcontrol is used, as the two are mutually exclusive. This amends 1c338e6d07a42631a6603c5bb0bc86f6806addd6. Add problematic case to stylesheet baseline test. Fixes: QTBUG-102866 Pick-to: 6.3 6.2 Change-Id: I5d79e65b33a2e41ac07c8efe0c15697c5be65201 Reviewed-by: Axel Spoerl <axel.spoerl@qt.io> Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* Stylesheet: fix toolbutton menu indicator renderingVolker Hilsheimer2022-05-161-0/+4
| | | | | | | | | | | | | | | | | | Turn off native indicators if we have custom rules, and if we drew natively, don't draw custom indicators. This amends ea0e0a865237983b484ed88447b9fc4c473e2759 which turned off custom drawing too aggressively, removing custom indicators also if no custom drop down arrow (which is only relevant for drop down menu buttons) was set. When then drawing the custom indicator, respect positioning rules in the style sheet. Extend baseline test. Fixes: QTBUG-102866 Pick-to: 6.3 6.2 Change-Id: I5ca353f42e704ec3f6e57677c35118a9cb358b0b Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* Use SPDX license identifiersLucie Gérard2022-05-1613-351/+26
| | | | | | | | | | | | | Replace the current license disclaimer in files by a SPDX-License-Identifier. Files that have to be modified by hand are modified. License files are organized under LICENSES directory. Task-number: QTBUG-67283 Change-Id: Id880c92784c40f3bbde861c0d93f58151c18b9f1 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* Stylesheet: Don't ignore item check indicator stylingVolker Hilsheimer2022-05-063-0/+72
| | | | | | | | | | | | | | | | | | | | | | | Amends cf52d725156811754cd4e094b0984864795d1d58, after which most indicator styling was no longer taken into account unless some other item aspects were styled. Calling the baseStyle to draw the entire item doesn't call back into the style sheet style for the indicator itself. The QCommonStyle code that breaks the item up into individual sub elements cannot be called for each element. E.g. turning off the check indicator feature changes the layout of the item. So if the indicator is styled, then we have to draw an otherwise empty item with the style sheet style, and then clip the already painted rect before calling the base style to draw text and highlighting with the correct palette. Add baseline test for QTreeView with different style sheets. Fixes: QTBUG-102820 Pick-to: 6.3 6.2 Change-Id: I1da5676cc63556230eac525bc550457ebd495a58 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* Baseline tests: slow down cursor blinkingVolker Hilsheimer2022-05-051-0/+4
| | | | | | | | | | | Override the default cursor blink time so that we don't get mismatches from line edits. We need to set the time to > 0 so that QStyleHints does not fall back to the platform integration. Pick-to: 6.3 Change-Id: Ib1d04f7450c01c352c13098886aee032dcb14c72 Reviewed-by: Axel Spoerl <axel.spoerl@qt.io> Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* Baseline testing of widget: wait before taking snapshotVolker Hilsheimer2022-05-051-1/+2
| | | | | | | | | | | | | | Widgets and styles might use fade effects or other asynchronous mechanisms as part of hovering. This results in mismatches when the snapshot is taken before those effects are completed. Since we can't control all such animations from the outside, process events for some milliseconds before taking the snapshot. Pick-to: 6.3 Change-Id: I771658300628238552bddcd14a6751c3f6c0c63d Reviewed-by: Axel Spoerl <axel.spoerl@qt.io> Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* Improve surface format request for baseline test of GL painterEirik Aavitsland2022-04-061-3/+17
| | | | | | | | | Different platforms and drivers hae different defaults, so make sure to request what we need. Pick-to: 6.3 6.2 Change-Id: I54ae6e0770fea53fbf59c86d7e55aa5897292b67 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* lance: Handle unspecified size or weight in setFont commandTor Arne Vestbø2022-03-311-13/+21
| | | | | | | | | | | | | | We have test cases that call setFont without a specified weight, in which case we would end up parsing an empty string into a number, giving a weight of 0. This weight would in turn result in the thinnest font on the system, which presumably was not the intent. We now use default sizes and weights (similar to the default QFont constructor arguments) if we're missing those arguments to setFont. Pick-to: 6.2 6.3 5.15 Change-Id: I5a96f08cfa1b9e4f1de5edee6bf69ddd46f0ce92 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* Baseline testing: Fix overriding of Project propertyEirik Aavitsland2022-03-172-16/+4
| | | | | | | | | | | Remove some kludgy, redundant and never used functionality for setting project and test case names, as it also hindered overriding those properties at runtime. Pick-to: 6.3 6.2 Change-Id: Ibef7d7d0cb5fc1e462752f2ba2db76cc088dbd48 Reviewed-by: Axel Spoerl <axel.spoerl@qt.io> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Enable tests to turn off Windows Vista animationsVolker Hilsheimer2022-03-161-0/+1
| | | | | | | | | | | | | | | | Animations in that style depend on the current time, which makes it impossible to run baseline tests. Introduce a dynamic property that allows us to set the time that animations use. This way, tests can turn the animation off, or control which time should be used. To keep performance overhead low, check only once whether the dynamic property is set at all. Pick-to: 6.3 Change-Id: I9bc57b9867fb0d852e101570eca4c7609e7fe1a8 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* Painting: fix overriding and combining different clip typesEirik Aavitsland2022-03-153-4/+320
| | | | | | | | | | | | | | | | | | | | | | | | | In a recent improvement (6de36918c03e91933fbfb5bf7b53abbe03edf460) the last set clip region or path was stored in separate variables, in order to be set again if the aliasing mode changed. That solution was too simplistic, as it would break down as soon as more than one clip area was set, with the latter either replacing or intersecting the first. It was also unnecessary to introduce new storing of clip areas and transforms, as those are already recorded in the clipInfo stack in the painter state. This patch hence reverts much of that implementation. However the basic idea of setting the clip area again after AA change is good, so that part is kept, implementated instead by calling a pre-existing function to replay the clipInfo stack. One of the baseline test cases is extended to excercise the combination of clip areas. As a driveby, support for setClipRectF is added to the painting baseline test scripts, and the build of the manual lance tool is fixed. Fixes: QTBUG-101474 Pick-to: 6.3 6.2 Change-Id: Ide8b70d8cbf138deb06cbb84f69e62f7405886e6 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Baseline: don't compensate for DPRs != 1.0Volker Hilsheimer2022-03-141-9/+7
| | | | | | | | | | | The resulting blurriness is too significant, and it's hard to see where the difference comes from. Better to encode the screen DPR into the appearance ID if it's not 1.0, and warn about the comparison not being done to the baseline images with a 1.0 DPR. Pick-to: 6.3 Change-Id: Iceab7b0a4cc50627145bd1267cff22344f7d8e5b Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* Baseline: Allow setting git commit through environment variableVolker Hilsheimer2022-03-141-16/+18
| | | | | | | | Widget tests run in VMs that don't have their own git clone. Pick-to: 6.3 Change-Id: I20ab32affabfc7ce6dfaa445306b19efb51803e9 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* Baseline testing: make style name explicitVolker Hilsheimer2022-03-141-6/+7
| | | | | | | | | Mangling it into the checksum makes it hard to navigate the available images. Pick-to: 6.3 Change-Id: I54dcab5681e747ce1c5fe1b141ef6c4441d1f7eb Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* Fix click position for check box and radio button baseline testsVolker Hilsheimer2022-03-141-7/+24
| | | | | | | | | Some styles override the clickable area. Pick-to: 6.3 Change-Id: Id6ec9d9aa2faff39489b2baa412af4339779ff5c Reviewed-by: Axel Spoerl <axel.spoerl@qt.io> Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* QMacStyle: fix tool buttons (in checked mode)Timur Pocheptsov2022-02-281-0/+25
| | | | | | | | | | | | | | | | | While switching to the 'momentary push in' button type, the old code that shows button as pressed/checked was removed. Since 'square' buttons were sharing this part with rounded push buttons, the change broke checked square buttons. So we retain the old code for this particular case. Also, add a minimal baseline test for this scenario: square button, triggering 'toolbutton' style with/out 'checked' state. Fixes: QTBUG-100802 Pick-to: 6.3 6.2 Change-Id: Ib7b15b13ead834c7bb2cd36de76ccd5bedb07810 Reviewed-by: Axel Spoerl <axel.spoerl@qt.io> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Update QToolButton texts and add more stylesheets to test withAxel Spoerl2022-02-163-7/+39
| | | | | | | | | | | Adapt QToolButton texts to descriptive versions. Add dummy stylesheet that will be used for all test functions, and a specific style sheet to test rendering of QToolButton with a menu button. Task-number: QTBUG-100401 Pick-to: 6.3 6.2 Change-Id: I5440407ddb3ea5b45124e77a6f0d1013362b4398 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Add lineedit and QAbstractItemView widgets in tst_baseline_widgetsAxel Spoerl2022-02-091-0/+350
| | | | | | | | | | Add baseline tests for QListView, QTableView, QTreeView Add const to reflect number of available standard icons Add baseline test for QLineEdit Task-number: QTBUG-99677 Change-Id: I1abaae7f90c9b05c3b3467dc85c5652bc9d0f53b Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Update widgets inheriting QAbstractSpinbox in tst_baseline_widgetsAxel Spoerl2022-02-091-16/+122
| | | | | | | | | | | | Create QAbstractSpinBox test Update test for QSpinBox Add tests for QDoubleSpinBox, QDateEdit, QTimeEdit Add test for QDateTimeEdit incl. calendar popup Task-number: QTBUG-99677 Change-Id: Ia74686f47a1520ab4c7e878b19fc774e00db88dd Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Extend baseline test for QTabWidgetAxel Spoerl2022-02-031-0/+85
| | | | | | | | | tabsClosable and documentMode added, merge conflict fixed Task-number: QTBUG-99773 Pick-to: 6.3 Change-Id: I8eb51b9f434bc97e6e7e55377801c6ee8aec52b0 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Add tab close button in QTabBar baseline testAxel Spoerl2022-02-011-5/+29
| | | | | | | Fixes: QTBUG-99772 Pick-to: 6.3 Change-Id: I01e0fc78880baae12f46005e4a88db41bea89d65 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* Add QTabBar test in tst_baseline_widgetsAxel Spoerl2022-01-271-0/+56
| | | | | | | Task-number: QTBUG-99772 Pick-to: 6.3 Change-Id: I501c8e5c8e3ee1a1d3ac2a36b12f51dab90c88c3 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Add QScrollBar test in tst_baseline_widgetsAxel Spoerl2022-01-261-0/+69
| | | | | | | Task-number: QTBUG-99882 Pick-to: 6.3 Change-Id: I9e9d3a674c205d26dd008b7de4e4ce31f470bf51 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Add layout in QRadioButton baseline test for better visualizationAxel Spoerl2022-01-241-0/+1
| | | | | | | Task-number: QTBUG-99749 Pick-to: 6.3 Change-Id: Iafd097d42b312cc24a60107c00e9c52fc0f3cdff Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Add QRadioButton test in tst_baseline_widgetsAxel Spoerl2022-01-211-0/+70
| | | | | | | Task-number: QTBUG-99749 Pick-to: 6.3 Change-Id: I89e759e0943b0d1793728a65bfbae6e6b4d3167a Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Baseline: Move the paintcommands code into the shared directoryVolker Hilsheimer2022-01-203-1/+1
| | | | | | | | | It's used by the lancebench and the lance tool, and it will probably be useful for writing some high-dpi related unit and baseline test cases, so move it to the shared folder. Change-Id: I969bab51c9504be13b4c192b4f29f69cd9102868 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* Add QCheckBox test in tst_baseline_widgetsAxel Spoerl2022-01-201-0/+57
| | | | | | | Task-number: QTBUG-99748 Pick-to: 6.3 Change-Id: I45fe3b102fba4dd6a6f8cd08bab5543f12265aa7 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Baseline test framework: follow rule of zero for PlatformInfo typeVolker Hilsheimer2022-01-192-29/+1
| | | | | | | | | The compiler generated special functions are just fine. Pick-to: 6.3 6.2 Change-Id: I64fba1fac59f55d2a82ab18e32c1a2b854df72f0 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io> Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
* Baseline test framework: fix bug in internal data structureEirik Aavitsland2022-01-192-23/+2
| | | | | | | | | | | | | | | | | | The 'misc' data field was not copied in the assignment operator. That field is normally not used, so this bug went undiscovered for a long time. But in certain cases, the bug would cause an image size mismatch to be reported as just a normal mismatch. Fix the source of the problem by following the rule of zero - the compiler generated special functions are just fine for this value type. Done-With: Volker Hilsheimer <volker.hilsheimer@qt.io> Pick-to: 6.3 6.2 Change-Id: I8fc8d32d1b83b78cd4ef3f4ec9a8f22661b0e025 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Add QDial test in tst_baseline_widgetsAxel Spoerl2022-01-181-0/+41
| | | | | | | Task-number: QTBUG-99712 Pick-to: 6.3 Change-Id: Ib133dd4c1395060be2aac4d3ca1b17eaccc24676 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* widgets baseline test: add QSpinBoxTimur Pocheptsov2022-01-171-0/+37
| | | | | | | | | Very simplistic initial test, inspired by the fix in 'fusion' style, but not style-specific. Pick-to: 6.3 Change-Id: I55ceca7ad214c86cb11032c5342bdae2a83852f1 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Prevent takeStandardSnapshots() from stopping on first mismatchAxel Spoerl2022-01-172-4/+18
| | | | | | | | | | | Force takeStandardSnapshots() to take and log all snapshots before launching QFAIL. Macros QBASELINE_CHECK_DEFERRED and QBASELINE_CHECK_DEFERRED_SUM have been added in qbaselinetest.h Task-number: QTBUG-99790 Pick-to: 6.3 Change-Id: Ia015de808f354e842ac4029c5c84be18c4a4e209 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Add QProgressBar test in tst_baseline_widgetsAxel Spoerl2022-01-141-0/+39
| | | | | | | Task-number: QTBUG-99678 Pick-to: 6.3 Change-Id: Ib56f7bdcc1e61d0354a7a381b8089f35e80b931c Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Add a couple of utility functions to the baseline test frameworkEirik Aavitsland2022-01-135-3/+19
| | | | | | | | | | | | | | | | | | Adds a function for setting the baseline Project name, which selects the top level server directory and hence config settings. Also adds a function that lets the client override the server config setting for the project image keys (ItemPathKeys). This is the list of properties that will be used to determine which clients are "the same", i.e. which baseline to compare against. Overriding that is handy since it allows experimentation and customization of clients without involving changes in the project config on the baseline server. Pick-to: 6.3 6.2 Change-Id: Id3998356494a9a2cb71c009b43593d3dc1b6963a Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
* Remove faulty #include from widgets baseline testEirik Aavitsland2022-01-041-2/+0
| | | | | | | | | | Since there is an actual qwidgetbaselinetest.h header file, one should not include a .moc file. The build system will take care of it, and currently warns about this #include. Pick-to: 6.3 Change-Id: I4fbff9ef75c901fe3db4df54d6f3ff0d9307edce Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Add baseline test for text renderingVolker Hilsheimer2022-01-045-0/+147
| | | | | | | | | | Data-driven test case that renders the HTML files into an 800x600 image for baseline comparison. Task-number: QTBUG-99148 Pick-to: 6.3 Change-Id: I9ccc0cd21a1e94ff68d23bb82b84e1da46d6335a Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* Never handle scrollbars styled with box or border changes as transientVolker Hilsheimer2021-11-293-0/+92
| | | | | | | | | | | | | | | | If scrollbars are styled with a style sheet that includes a box or removes off the native border, then we never treat them as transient or overlapping. Otherwise, the layout logic in QAbstractScrollArea will show them on top of the viewport, overlapping the content. Add case to the style sheet test baseline test. It's a test for scrollbars in a scroll area, rather than a test for the styling of the scrollbars themselves. Fixes: QTBUG-98289 Pick-to: 6.2 Change-Id: Ic53ad248b3eedd54722ac7b2fe5256a27092dbc1 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* Share common code for baseline-testing widget UIsVolker Hilsheimer2021-11-267-251/+270
| | | | | | | | | | | Setting up the baseline tests, creating an appearance identifier, and basic image-grabbing functionality doesn't need to be reinvented for each test case that wants to use baseline testing of widget UIs. As a drive-by, remove unneeded Qt 5 meta tags from .pri file. Change-Id: I1562e1b377946305cac018e0f0f0175c2c07cd31 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* Fix and complete style sheet support for QToolButtonVolker Hilsheimer2021-11-2613-0/+390
| | | | | | | | | | | | | | | | | | | Amends 2b2e7b2ac50e5b4f6e1888e594f6e32338dd2a80, which rewrote the rendering to remove the conflation of menu arrows and arrow icons, but introduced double rendering of the arrow icons if only the border was styled. Add a baseline test for style sheets, with a test function for QToolButton configured in various ways and styled with different style sheets. The new test case includes a Qt 5 build system so that we can compare Qt 5.15 with Qt 6. Fixes: QTBUG-98286 Pick-to: 6.2 6.2.2 Change-Id: I09cdc829c1a7e7913df4c3768dbe44b6dba4778b Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io> Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* Update baseline testing frameworkEirik Aavitsland2021-11-245-68/+40
| | | | | | | | | | | | | | | | | | | Merge in various minor changes and fixes that have been done to the branched copy in qtquick3d, and clean out some outdated code. Mostly just coding style fixes and cleanups, but also: - adds -keeprunning command line parameter, intended for tests that by default exits early if it seems the platform is too unstable (e.g. crashing) for a meaningful testrun. - Changes behaviour for fuzzy matches, from SKIP to PASS. The (mis)use of QSKIP was done to force log output; now the output is just printed by qInfo() instead. Pick-to: 6.2 Change-Id: I46e77a94cc5b1980ac420086c2ae88dc9b84ef12 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Add variations of QPushButton with default property setVolker Hilsheimer2021-11-241-0/+6
| | | | | Change-Id: Ie928575b131c7031da9a4d735159ba3d14ccad6c Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* Add baseline test that allows comparing the rendering of widgetsVolker Hilsheimer2021-11-183-0/+304
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Provide basic boiler plate that sets up the baseline (aka lancelot) framework specifically for comparing the appearance of widgets, and implement test functions for QSlider and QPushButton. Widgets should always look the same if the QPA platform, the OS version, and certain UI-impacting attributes are identical. Ie. on any macOS 10.15 machine that runs in "Light" mode, widgets look the same. On a macOS 11 machine, they might look different. On an OpenSUSE machine using the fusion style things might look different from a Ubuntu machine. The helper function removes DPR differences - images are always scaled to a DPR of 1.0, which allows us to compare the image\ content and not get distracted by them having different dimensions (and the fuzzy comparison of images might make the system tolerate scaling artefacts). Note: For now, this test is meant to be run locally, either when testing changes to style code, or when checking how QWidget based UIs would look on newer version of an operating system. In CI the test is run, but then skipped in CI as the baseline server is not configured. Change-Id: Ie33a9d979d934f0df6883757333ce2c5e2f7ef84 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Rename and restructure the baseline (lancelot) testing codeEirik Aavitsland2021-11-16119-0/+14113
In preparation for addition of new baseline tests, establish a new test category, "baseline". This is similar to the category "benchmarks" in that it contains tests that use the QTest framework, but conceptually are not unit tests, in contrast to those under auto/. Move the existing QPainter baseline test, tst_lancelot, into this new category, and rename it accordingly. Baseline tests use the QBaselineTest extension to QTest. Move that extension too into the tests/baseline directory, allowing the clean out of the baselineserver directory. Pick-to: 6.2 Change-Id: I1b527f5867c953b1d22be73798fcf7d1494712ea Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>