QCMakePresetTest.cxx 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  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. /*toolset=*/"toolset",
  17. /*setGenConfig=*/true,
  18. /*enabled=*/true,
  19. };
  20. }
  21. template <typename T, typename U>
  22. QCMakePreset makePreset(T QCMakePreset::*field, U&& value)
  23. {
  24. auto preset = makePreset();
  25. preset.*field = std::forward<U>(value);
  26. return preset;
  27. }
  28. }
  29. void QCMakePresetTest::equality()
  30. {
  31. QFETCH(QCMakePreset, rhs);
  32. QFETCH(bool, equal);
  33. QFETCH(bool, lt);
  34. QFETCH(bool, gt);
  35. auto lhs = makePreset();
  36. QVERIFY((lhs == rhs) == equal);
  37. QVERIFY((lhs != rhs) == !equal);
  38. QVERIFY((lhs < rhs) == lt);
  39. QVERIFY((lhs >= rhs) == !lt);
  40. QVERIFY((lhs > rhs) == gt);
  41. QVERIFY((lhs <= rhs) == !gt);
  42. }
  43. void QCMakePresetTest::equality_data()
  44. {
  45. QTest::addColumn<QCMakePreset>("rhs");
  46. QTest::addColumn<bool>("equal");
  47. QTest::addColumn<bool>("lt");
  48. QTest::addColumn<bool>("gt");
  49. QTest::newRow("equal") << makePreset() << true << false << false;
  50. QTest::newRow("name") << makePreset(&QCMakePreset::name, "other-name")
  51. << false << true << false;
  52. QTest::newRow("displayName")
  53. << makePreset(&QCMakePreset::displayName, "other-displayName") << false
  54. << true << false;
  55. QTest::newRow("description")
  56. << makePreset(&QCMakePreset::description, "other-description") << false
  57. << true << false;
  58. QTest::newRow("generator")
  59. << makePreset(&QCMakePreset::generator, "other-generator") << false << true
  60. << false;
  61. QTest::newRow("architecture")
  62. << makePreset(&QCMakePreset::architecture, "other-architecture") << false
  63. << true << false;
  64. QTest::newRow("toolset") << makePreset(&QCMakePreset::toolset,
  65. "other-toolset")
  66. << false << false << true;
  67. QTest::newRow("setGenConfig")
  68. << makePreset(&QCMakePreset::setGenConfig, false) << false << false
  69. << true;
  70. QTest::newRow("enabled") << makePreset(&QCMakePreset::enabled, false)
  71. << false << false << true;
  72. }
  73. QTEST_MAIN(QCMakePresetTest)