summaryrefslogtreecommitdiffstats
path: root/tests/auto/other/lancelot/paintcommands.cpp
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2019-11-26 15:09:58 +0100
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2019-11-28 19:52:16 +0000
commit00c869a5c605d7f82146c5a1d3f4f80ca706ca16 (patch)
treec6c8ff8afee916b69e0798694e323ee038cca3aa /tests/auto/other/lancelot/paintcommands.cpp
parent9feb20e58128ae7e8d208847ce989b65cdfcf5bc (diff)
Fix lancelot PaintCommands for reuse
Some structures needed to be cleaned for the reuse to be safe. Reusing it cuts down on the overhead in lancebench. Also uniqueness of block names are now enforced, and the common pattern of "end_block blockName" could now be parsed if not always commented out by begin_block handling. Change-Id: I0daf6445292383aaab9392550d0842e0a654ad27 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
Diffstat (limited to 'tests/auto/other/lancelot/paintcommands.cpp')
-rw-r--r--tests/auto/other/lancelot/paintcommands.cpp15
1 files changed, 12 insertions, 3 deletions
diff --git a/tests/auto/other/lancelot/paintcommands.cpp b/tests/auto/other/lancelot/paintcommands.cpp
index 215a4c2a29..7430c93a8e 100644
--- a/tests/auto/other/lancelot/paintcommands.cpp
+++ b/tests/auto/other/lancelot/paintcommands.cpp
@@ -230,9 +230,9 @@ void PaintCommands::staticInit()
"begin_block <blockName>",
"begin_block blockName");
DECL_PAINTCOMMAND("end_block", command_end_block,
- "^end_block$",
- "end_block",
- "end_block");
+ "^end_block\\s*(\\w*)$",
+ "end_block [blockName]",
+ "end_block blockName");
DECL_PAINTCOMMAND("repeat_block", command_repeat_block,
"^repeat_block\\s+(\\w*)$",
"repeat_block <blockName>",
@@ -744,6 +744,13 @@ void PaintCommands::runCommands()
if (height <= 0)
height = 800;
+ m_pathMap.clear();
+ m_imageMap.clear();
+ m_pixmapMap.clear();
+ m_regionMap.clear();
+ m_gradientStops.clear();
+ m_blockMap.clear();
+
// paint background
if (m_checkers_background) {
QPixmap pm(20, 20);
@@ -901,6 +908,8 @@ void PaintCommands::command_begin_block(QRegularExpressionMatch re)
const QString &blockName = re.captured(1);
if (m_verboseMode)
printf(" -(lance) begin_block (%s)\n", qPrintable(blockName));
+ if (m_blockMap.contains(blockName))
+ qFatal("Two blocks named (%s)", qPrintable(blockName));
m_commands[m_currentCommandIndex] = QLatin1String("# begin block (") + blockName + QLatin1Char(')');
QStringList newBlock;