QCMakePresetTest.cxx 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
  2. file Copyright.txt or https://cmake.org/licensing for details. */
  3. #include "QCMakePresetTest.h"
  4. #include <utility>
  5. #include "QCMakePreset.h"
  6. #include <QtTest>
  7. namespace {
  8. QCMakePreset makePreset()
  9. {
  10. return QCMakePreset{
  11. /*name=*/"name",
  12. /*displayName=*/"displayName",
  13. /*description=*/"description",
  14. /*generator=*/"generator",
  15. /*architecture=*/"architecture",
  16. /*setArchitecture=*/true,
  17. /*toolset=*/"toolset",
  18. /*setToolset=*/true,
  19. /*enabled=*/true,
  20. };
  21. }
  22. template <typename T, typename U>
  23. QCMakePreset makePreset(T QCMakePreset::*field, U&& value)
  24. {
  25. auto preset = makePreset();
  26. preset.*field = std::forward<U>(value);
  27. return preset;
  28. }
  29. }
  30. void QCMakePresetTest::equality()
  31. {
  32. QFETCH(QCMakePreset, rhs);
  33. QFETCH(bool, equal);
  34. QFETCH(bool, lt);
  35. QFETCH(bool, gt);
  36. auto lhs = makePreset();
  37. QVERIFY((lhs == rhs) == equal);
  38. QVERIFY((lhs != rhs) == !equal);
  39. QVERIFY((lhs < rhs) == lt);
  40. QVERIFY((lhs >= rhs) == !lt);
  41. QVERIFY((lhs > rhs) == gt);
  42. QVERIFY((lhs <= rhs) == !gt);
  43. }
  44. void QCMakePresetTest::equality_data()
  45. {
  46. QTest::addColumn<QCMakePreset>("rhs");
  47. QTest::addColumn<bool>("equal");
  48. QTest::addColumn<bool>("lt");
  49. QTest::addColumn<bool>("gt");
  50. QTest::newRow("equal") << makePreset() << true << false << false;
  51. QTest::newRow("name") << makePreset(&QCMakePreset::name, "other-name")
  52. << false << true << false;
  53. QTest::newRow("displayName")
  54. << makePreset(&QCMakePreset::displayName, "other-displayName") << false
  55. << true << false;
  56. QTest::newRow("description")
  57. << makePreset(&QCMakePreset::description, "other-description") << false
  58. << true << false;
  59. QTest::newRow("generator")
  60. << makePreset(&QCMakePreset::generator, "other-generator") << false << true
  61. << false;
  62. QTest::newRow("architecture")
  63. << makePreset(&QCMakePreset::architecture, "other-architecture") << false
  64. << true << false;
  65. QTest::newRow("setArchitecture")
  66. << makePreset(&QCMakePreset::setArchitecture, false) << false << false
  67. << true;
  68. QTest::newRow("toolset") << makePreset(&QCMakePreset::toolset,
  69. "other-toolset")
  70. << false << false << true;
  71. QTest::newRow("setToolset")
  72. << makePreset(&QCMakePreset::setToolset, false) << false << false << true;
  73. QTest::newRow("enabled") << makePreset(&QCMakePreset::enabled, false)
  74. << false << false << true;
  75. }
  76. QTEST_MAIN(QCMakePresetTest)