Bug 416584

Summary: libs-image-kis_colorize_mask_test (Failed)
Product: [Applications] krita Reporter: Halla Rempt <halla>
Component: UnittestsAssignee: Krita Bugs <krita-bugs-null>
Status: RESOLVED FIXED    
Severity: normal    
Priority: NOR    
Version: git master (please specify the git hash!)   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Halla Rempt 2020-01-22 14:41:09 UTC
155/285 Testing: libs-image-kis_colorize_mask_test
155/285 Test: libs-image-kis_colorize_mask_test
Command: "/home/boud/dev/b-krita/libs/image/tests/kis_colorize_mask_test"
Directory: /home/boud/dev/b-krita/libs/image/tests
"libs-image-kis_colorize_mask_test" start time: Jan 22 15:09 CET
Output:
----------------------------------------------------------
********* Start testing of KisColorizeMaskTest *********
Config: Using QtTest library 5.13.2, Qt 5.13.2 (x86_64-little_endian-lp64 shared (dynamic) release build; by GCC 7.4.0)
PASS   : KisColorizeMaskTest::initTestCase()
QWARN  : KisColorizeMaskTest::test() KoColor debug runtime checks are active.
FAIL!  : KisColorizeMaskTest::test() Compared pointers are not the same
   Loc: [/home/boud/dev/krita/libs/image/tests/kis_colorize_mask_test.cpp(168)]
PASS   : KisColorizeMaskTest::testCrop()
PASS   : KisColorizeMaskTest::cleanupTestCase()
Totals: 3 passed, 1 failed, 0 skipped, 0 blacklisted, 245ms
********* Finished testing of KisColorizeMaskTest *********
Warning: some tiles have leaked:
	Tiles in memory: 74 
 	Total tiles: 74
<end of output>
Test time =   0.83 sec
----------------------------------------------------------
Test Failed.
"libs-image-kis_colorize_mask_test" end time: Jan 22 15:09 CET
"libs-image-kis_colorize_mask_test" time elapsed: 00:00:00
----------------------------------------------------------
Comment 1 Dmitry Kazakov 2020-08-10 22:55:50 UTC
Git commit 88aa1a2bd9d04dbb3e6cc3468de8ba81f5024427 by Dmitry Kazakov.
Committed on 10/08/2020 at 22:48.
Pushed by dkazakov into branch 'krita/4.3'.

Fix first redo() after paint device color space conversion

There is a bug in all versions of Krita since November, 5th 2019.

BUG
===

1) Change image color space from RGBA to GrayA.
2) Undo with Ctrl+Z
3) Redo with Ctrl+Shift+Z

The image looks as if the color space has changed back to GrayA,
but it is not so. Only the color space of the projection has changed
to GrayA, the layers are still in RGBA. It can be seen by the state
of Advanced Color Selector (it shows colors instead of shades of gray)
and in layers' properties.

WORKAROUND
==========

1) Press Undo (Ctrl+Z) and Redo (Ctrl+Shift+Z) again.

The image will enter the correct state. All further undo/redo
operations for this particular action will be executed correctly.

TECHNICAL DETAILS
=================

The bug was called by commit e39e6379564b5f6c4c72960a6e1ee3ca7716d5bd,
which caused DeviceChangeColorSpaceCommand to skip the first redo of
the operation, which was not in its design.

The bug has been caught by KisColorizeMaskTest.
CC:kimageshop@kde.org

M  +1    -1    libs/command/kis_command_utils.cpp
M  +15   -15   libs/image/kis_paint_device_data.h

https://invent.kde.org/graphics/krita/commit/88aa1a2bd9d04dbb3e6cc3468de8ba81f5024427
Comment 2 Dmitry Kazakov 2020-08-12 17:54:09 UTC
Git commit 4d7df799d66ec8f63ef382a35dabe4b62df02dfe by Dmitry Kazakov.
Committed on 12/08/2020 at 17:52.
Pushed by dkazakov into branch 'master'.

Fix first redo() after paint device color space conversion

There is a bug in all versions of Krita since November, 5th 2019.

BUG
===

1) Change image color space from RGBA to GrayA.
2) Undo with Ctrl+Z
3) Redo with Ctrl+Shift+Z

The image looks as if the color space has changed back to GrayA,
but it is not so. Only the color space of the projection has changed
to GrayA, the layers are still in RGBA. It can be seen by the state
of Advanced Color Selector (it shows colors instead of shades of gray)
and in layers' properties.

WORKAROUND
==========

1) Press Undo (Ctrl+Z) and Redo (Ctrl+Shift+Z) again.

The image will enter the correct state. All further undo/redo
operations for this particular action will be executed correctly.

TECHNICAL DETAILS
=================

The bug was called by commit e39e6379564b5f6c4c72960a6e1ee3ca7716d5bd,
which caused DeviceChangeColorSpaceCommand to skip the first redo of
the operation, which was not in its design.

The bug has been caught by KisColorizeMaskTest.
CC:kimageshop@kde.org

M  +1    -1    libs/command/kis_command_utils.cpp
M  +15   -15   libs/image/kis_paint_device_data.h

https://invent.kde.org/graphics/krita/commit/4d7df799d66ec8f63ef382a35dabe4b62df02dfe