Quellcode durchsuchen

Autogen: Add test for Q_OS_ macros

Sebastian Holtermann vor 7 Jahren
Ursprung
Commit
7bb70054e4

+ 3 - 0
Tests/QtAutogen/CommonTests.cmake

@@ -23,6 +23,9 @@ endif()
 if(QT_TEST_ALLOW_QT_MACROS)
   ADD_AUTOGEN_TEST(MocCMP0071)
 endif()
+if(NOT QT_TEST_VERSION STREQUAL 4)
+  ADD_AUTOGEN_TEST(MocOsMacros mocOsMacros)
+endif()
 ADD_AUTOGEN_TEST(UicInclude uicInclude)
 ADD_AUTOGEN_TEST(UicInterface QtAutoUicInterface)
 ADD_AUTOGEN_TEST(ObjectLibrary someProgram)

+ 16 - 0
Tests/QtAutogen/MocOsMacros/CMakeLists.txt

@@ -0,0 +1,16 @@
+cmake_minimum_required(VERSION 3.11)
+project(MocOsMacros)
+include("../AutogenTest.cmake")
+
+# Tests if moc processes the macro Q_OS_MAC
+
+set(CMAKE_AUTOMOC True)
+
+add_executable(mocOsMacros
+  main.cpp
+  TestClass.cpp
+  TestClass.hpp
+)
+target_link_libraries(mocOsMacros PRIVATE ${QT_QTCORE_TARGET})
+
+message ( "CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES: ${CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES}" )

+ 77 - 0
Tests/QtAutogen/MocOsMacros/TestClass.cpp

@@ -0,0 +1,77 @@
+#include "TestClass.hpp"
+#include <iostream>
+
+// -- Mac
+#ifndef Q_OS_MAC
+void TestClass::MacNotDef()
+{
+  std::cout << "MacNotDef\n";
+}
+#else
+void TestClass::MacNotDefElse()
+{
+  std::cout << "MacNotDefElse\n";
+}
+#endif
+
+#ifdef Q_OS_MAC
+void TestClass::MacDef()
+{
+  std::cout << "MacDef\n";
+}
+#else
+void TestClass::MacDefElse()
+{
+  std::cout << "MacDefElse\n";
+}
+#endif
+
+// -- Unix
+#ifndef Q_OS_UNIX
+void TestClass::UnixNotDef()
+{
+  std::cout << "UnixNotDef\n";
+}
+#else
+void TestClass::UnixNotDefElse()
+{
+  std::cout << "UnixNotDefElse\n";
+}
+#endif
+
+#ifdef Q_OS_UNIX
+void TestClass::UnixDef()
+{
+  std::cout << "UnixDef\n";
+}
+#else
+void TestClass::UnixDefElse()
+{
+  std::cout << "UnixDefElse\n";
+}
+#endif
+
+// -- Windows
+#ifndef Q_OS_WIN
+void TestClass::WindowsNotDef()
+{
+  std::cout << "WindowsNotDef\n";
+}
+#else
+void TestClass::WindowsNotDefElse()
+{
+  std::cout << "WindowsNotDefElse\n";
+}
+#endif
+
+#ifdef Q_OS_WIN
+void TestClass::WindowsDef()
+{
+  std::cout << "WindowsDef\n";
+}
+#else
+void TestClass::WindowsDefElse()
+{
+  std::cout << "WindowsDefElse\n";
+}
+#endif

+ 52 - 0
Tests/QtAutogen/MocOsMacros/TestClass.hpp

@@ -0,0 +1,52 @@
+#ifndef TestClass_hpp
+#define TestClass_hpp
+
+#include <QObject>
+#include <QtGlobal>
+
+class TestClass : public QObject
+{
+  Q_OBJECT
+public Q_SLOTS:
+
+// -- Mac
+#ifndef Q_OS_MAC
+  void MacNotDef();
+#else
+  void MacNotDefElse();
+#endif
+
+#ifdef Q_OS_MAC
+  void MacDef();
+#else
+  void MacDefElse();
+#endif
+
+// -- Unix
+#ifndef Q_OS_UNIX
+  void UnixNotDef();
+#else
+  void UnixNotDefElse();
+#endif
+
+#ifdef Q_OS_UNIX
+  void UnixDef();
+#else
+  void UnixDefElse();
+#endif
+
+// -- Windows
+#ifndef Q_OS_WIN
+  void WindowsNotDef();
+#else
+  void WindowsNotDefElse();
+#endif
+
+#ifdef Q_OS_WIN
+  void WindowsDef();
+#else
+  void WindowsDefElse();
+#endif
+};
+
+#endif /* TestClass_hpp */

+ 32 - 0
Tests/QtAutogen/MocOsMacros/main.cpp

@@ -0,0 +1,32 @@
+#include "TestClass.hpp"
+#include <QtGlobal>
+
+int main()
+{
+  TestClass a;
+#ifdef Q_OS_MAC
+  a.MacNotDefElse();
+  a.MacDef();
+#else
+  a.MacNotDef();
+  a.MacDefElse();
+#endif
+
+#ifdef Q_OS_UNIX
+  a.UnixNotDefElse();
+  a.UnixDef();
+#else
+  a.UnixNotDef();
+  a.UnixDefElse();
+#endif
+
+#ifdef Q_OS_WIN
+  a.WindowsNotDefElse();
+  a.WindowsDef();
+#else
+  a.WindowsNotDef();
+  a.WindowsDefElse();
+#endif
+
+  return 0;
+}