Browse Source

ENH: Make ctkCrosshairLabelTest2 more robust

In ctkCrosshairLabelTest2 the ctkCrosshairLabel intermittently failed to retain
its new size after resize(). To work around that behavior, group the tests for
odd and even sizes.
Max Smolens 8 years ago
parent
commit
b6c0972804
1 changed files with 144 additions and 131 deletions
  1. 144 131
      Libs/Widgets/Testing/Cpp/ctkCrosshairLabelTest2.cpp

+ 144 - 131
Libs/Widgets/Testing/Cpp/ctkCrosshairLabelTest2.cpp

@@ -96,13 +96,6 @@ int ctkCrosshairLabelTest2(int argc, char * argv [] )
     return EXIT_SUCCESS;
     }
 
-  // Create the crosshair widget
-  ctkCrosshairLabel crosshair;
-  QPen crosshairPen(Qt::yellow);
-  crosshairPen.setJoinStyle(Qt::MiterJoin);
-  crosshair.setCrosshairPen(crosshairPen);
-  crosshair.setMarginColor(Qt::blue);
-
   QPixmap pixmap(dataDirectory + "/" + "computerIcon.png");
 
   // Basesize is always odd
@@ -116,131 +109,151 @@ int ctkCrosshairLabelTest2(int argc, char * argv [] )
     baseSize.setHeight(baseSize.height()+1);
     }
 
-  // Odd widget size
-  crosshair.setMinimumSize(baseSize);
-  crosshair.setPixmap(pixmap.scaled(baseSize));
-
-  // Test bullsEyeWidth and line width with odd widget size
-  crosshair.setCrosshairType(ctkCrosshairLabel::BullsEyeCrosshair);
-
-  ///
-  crosshair.setBullsEyeWidth(15);
-  crosshairPen.setWidth(1);
-  crosshair.setCrosshairPen(crosshairPen);
-  if (!runBaselineTest(crosshair, baselineDirectory,
-                       "ctkCrosshairLabelTest2a.png",
-                       "using bulls-eye crosshair (odd size, bullsEye 15, width 1)"))
-    {
-    return EXIT_FAILURE;
-    }
-
-  ///
-  crosshairPen.setWidth(5);
-  crosshair.setCrosshairPen(crosshairPen);
-  if (!runBaselineTest(crosshair, baselineDirectory,
-                       "ctkCrosshairLabelTest2b.png",
-                       "using bulls-eye crosshair (odd size, bullsEye 15, width 5)"))
-    {
-    return EXIT_FAILURE;
-    }
-
-  ///
-  crosshair.setBullsEyeWidth(14);
-  crosshairPen.setWidth(0); // equivalent to 1
-  crosshair.setCrosshairPen(crosshairPen);
-  if (!runBaselineTest(crosshair, baselineDirectory,
-                       "ctkCrosshairLabelTest2c.png",
-                       "using bulls-eye crosshair (odd size, bullsEye 14, width 1)"))
-    {
-    return EXIT_FAILURE;
-    }
-
-  ///
-  crosshairPen.setWidth(4);
-  crosshair.setCrosshairPen(crosshairPen);
-  if (!runBaselineTest(crosshair, baselineDirectory,
-                       "ctkCrosshairLabelTest2d.png",
-                       "using bulls-eye crosshair (odd size, bullsEye 14, width 4)"))
-    {
-    return EXIT_FAILURE;
-    }
-
-  // Test bullsEyeWidth and line width with even widget size
-  crosshair.resize(baseSize.width()+1, baseSize.height()+1);
-
-  ///
-  crosshair.setBullsEyeWidth(14);
-  crosshairPen.setWidth(1);
-  crosshair.setCrosshairPen(crosshairPen);
-  if (!runBaselineTest(crosshair, baselineDirectory,
-                       "ctkCrosshairLabelTest2e.png",
-                       "using bulls-eye crosshair (even size, bullsEye 14, width 1)"))
-    {
-    return EXIT_FAILURE;
-    }
-
-  ///
-  crosshairPen.setWidth(4);
-  crosshair.setCrosshairPen(crosshairPen);
-  if (!runBaselineTest(crosshair, baselineDirectory,
-                       "ctkCrosshairLabelTest2f.png",
-                       "using bulls-eye crosshair (even size, bullsEye 14, width 4)"))
-    {
-    return EXIT_FAILURE;
-    }
-
-  ///
-  crosshair.setBullsEyeWidth(15);
-  crosshairPen.setWidth(0);
-  crosshair.setCrosshairPen(crosshairPen);
-  if (!runBaselineTest(crosshair, baselineDirectory,
-                       "ctkCrosshairLabelTest2g.png",
-                       "using bulls-eye crosshair (even size, bullsEye 15, width 1)"))
-    {
-    return EXIT_FAILURE;
-    }
-
-  ///
-  crosshairPen.setWidth(5);
-  crosshair.setCrosshairPen(crosshairPen);
-  if (!runBaselineTest(crosshair, baselineDirectory,
-                       "ctkCrosshairLabelTest2h.png",
-                       "using bulls-eye crosshair (even size, bullsEye 15, width 5)"))
-    {
-    return EXIT_FAILURE;
-    }
-
-  // Crosshair not shown
-  crosshair.resize(baseSize);
-  crosshair.setShowCrosshair(false);
-  crosshair.setCrosshairPen(crosshairPen);
-  if (!runBaselineTest(crosshair, baselineDirectory,
-                       "ctkCrosshairLabelTest2i.png",
-                       "show crosshair false"))
-    {
-    return EXIT_FAILURE;
-    }
+  QPen crosshairPen(Qt::yellow);
+  crosshairPen.setJoinStyle(Qt::MiterJoin);
 
-  // Crosshair crosshair
-  crosshair.setShowCrosshair(true);
-  crosshair.setCrosshairType(ctkCrosshairLabel::SimpleCrosshair);
-  crosshairPen.setWidth(0);
-  crosshair.setCrosshairPen(crosshairPen);
-  if (!runBaselineTest(crosshair, baselineDirectory,
-                       "ctkCrosshairLabelTest2j.png",
-                       "using cross-hair crosshair (odd size)"))
-    {
-    return EXIT_FAILURE;
-    }
-  crosshair.resize(baseSize.width()+1, baseSize.height()+1);
-  crosshairPen.setWidth(1);
-  crosshair.setCrosshairPen(crosshairPen);
-  if (!runBaselineTest(crosshair, baselineDirectory,
-                       "ctkCrosshairLabelTest2k.png",
-                       "using cross-hair crosshair (even size)"))
-    {
-    return EXIT_FAILURE;
-    }
+  {
+    // Create the crosshair widget
+    ctkCrosshairLabel crosshair;
+    crosshair.setCrosshairPen(crosshairPen);
+    crosshair.setMarginColor(Qt::blue);
+
+    // Odd widget size
+    crosshair.setMinimumSize(baseSize);
+    crosshair.setPixmap(pixmap.scaled(baseSize));
+    crosshair.show();
+
+    // Test bullsEyeWidth and line width with odd widget size
+    crosshair.setCrosshairType(ctkCrosshairLabel::BullsEyeCrosshair);
+
+    ///
+    crosshair.setBullsEyeWidth(15);
+    crosshairPen.setWidth(1);
+    crosshair.setCrosshairPen(crosshairPen);
+    if (!runBaselineTest(crosshair, baselineDirectory,
+                "ctkCrosshairLabelTest2a.png",
+                "using bulls-eye crosshair (odd size, bullsEye 15, width 1)"))
+      {
+      return EXIT_FAILURE;
+      }
+
+    ///
+    crosshairPen.setWidth(5);
+    crosshair.setCrosshairPen(crosshairPen);
+    if (!runBaselineTest(crosshair, baselineDirectory,
+                "ctkCrosshairLabelTest2b.png",
+                "using bulls-eye crosshair (odd size, bullsEye 15, width 5)"))
+      {
+      return EXIT_FAILURE;
+      }
+
+    ///
+    crosshair.setBullsEyeWidth(14);
+    crosshairPen.setWidth(0); // equivalent to 1
+    crosshair.setCrosshairPen(crosshairPen);
+    if (!runBaselineTest(crosshair, baselineDirectory,
+                "ctkCrosshairLabelTest2c.png",
+                "using bulls-eye crosshair (odd size, bullsEye 14, width 1)"))
+      {
+      return EXIT_FAILURE;
+      }
+
+    ///
+    crosshairPen.setWidth(4);
+    crosshair.setCrosshairPen(crosshairPen);
+    if (!runBaselineTest(crosshair, baselineDirectory,
+                "ctkCrosshairLabelTest2d.png",
+                "using bulls-eye crosshair (odd size, bullsEye 14, width 4)"))
+      {
+      return EXIT_FAILURE;
+      }
+
+    // Crosshair not shown
+    crosshair.resize(baseSize);
+    crosshair.setShowCrosshair(false);
+    crosshair.setCrosshairPen(crosshairPen);
+    if (!runBaselineTest(crosshair, baselineDirectory,
+                         "ctkCrosshairLabelTest2i.png",
+                         "show crosshair false"))
+      {
+      return EXIT_FAILURE;
+      }
+
+    // Crosshair crosshair
+    crosshair.setShowCrosshair(true);
+    crosshair.setCrosshairType(ctkCrosshairLabel::SimpleCrosshair);
+    crosshairPen.setWidth(0);
+    crosshair.setCrosshairPen(crosshairPen);
+    if (!runBaselineTest(crosshair, baselineDirectory,
+                         "ctkCrosshairLabelTest2j.png",
+                         "using cross-hair crosshair (odd size)"))
+      {
+      return EXIT_FAILURE;
+      }
+  }
+
+  {
+    // Create the crosshair widget
+    ctkCrosshairLabel crosshair;
+    crosshair.setCrosshairPen(crosshairPen);
+    crosshair.setMarginColor(Qt::blue);
+
+    // Even widget size
+    crosshair.resize(baseSize.width() + 1, baseSize.height() + 1);
+    crosshair.setPixmap(pixmap.scaled(baseSize));
+    crosshair.show();
+
+    ///
+    crosshair.setBullsEyeWidth(14);
+    crosshairPen.setWidth(1);
+    crosshair.setCrosshairPen(crosshairPen);
+    if (!runBaselineTest(crosshair, baselineDirectory,
+                         "ctkCrosshairLabelTest2e.png",
+                         "using bulls-eye crosshair (even size, bullsEye 14, width 1)"))
+      {
+      return EXIT_FAILURE;
+      }
+
+    ///
+    crosshairPen.setWidth(4);
+    crosshair.setCrosshairPen(crosshairPen);
+    if (!runBaselineTest(crosshair, baselineDirectory,
+                         "ctkCrosshairLabelTest2f.png",
+                         "using bulls-eye crosshair (even size, bullsEye 14, width 4)"))
+      {
+      return EXIT_FAILURE;
+      }
+
+    ///
+    crosshair.setBullsEyeWidth(15);
+    crosshairPen.setWidth(0);
+    crosshair.setCrosshairPen(crosshairPen);
+    if (!runBaselineTest(crosshair, baselineDirectory,
+                         "ctkCrosshairLabelTest2g.png",
+                         "using bulls-eye crosshair (even size, bullsEye 15, width 1)"))
+      {
+      return EXIT_FAILURE;
+      }
+
+    ///
+    crosshairPen.setWidth(5);
+    crosshair.setCrosshairPen(crosshairPen);
+    if (!runBaselineTest(crosshair, baselineDirectory,
+                         "ctkCrosshairLabelTest2h.png",
+                         "using bulls-eye crosshair (even size, bullsEye 15, width 5)"))
+      {
+      return EXIT_FAILURE;
+      }
+
+    crosshairPen.setWidth(1);
+    crosshair.setCrosshairPen(crosshairPen);
+    if (!runBaselineTest(crosshair, baselineDirectory,
+                         "ctkCrosshairLabelTest2k.png",
+                         "using cross-hair crosshair (even size)"))
+      {
+      return EXIT_FAILURE;
+      }
+  }
 
   // We already tested for interactive mode
   QTimer::singleShot(200, &app, SLOT(quit()));