summaryrefslogtreecommitdiffstats
path: root/Tests/RunCMake
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2016-09-12 15:57:15 (GMT)
committerCMake Topic Stage <kwrobot@kitware.com>2016-09-12 15:57:15 (GMT)
commita7305ef00a70518f7abb66211ef09b0ca6d4af71 (patch)
tree2a0bf2a802f4891ca4cfe6199b67f168fc53d9c1 /Tests/RunCMake
parent03bae46865f2abb3a74728986f523a30d79eb095 (diff)
parent612d6f29f8743ec100f135aed55d0920b3ea9fda (diff)
downloadCMake-a7305ef00a70518f7abb66211ef09b0ca6d4af71.zip
CMake-a7305ef00a70518f7abb66211ef09b0ca6d4af71.tar.gz
CMake-a7305ef00a70518f7abb66211ef09b0ca6d4af71.tar.bz2
Merge topic 'geh-failure-tests'
612d6f29 Tests: Refactor GenerateExportHeader test code ce76abb4 Tests: Add data symbols to GenerateExportHeader test 8f95b93b Tests: Add failure test for GenerateExportHeader
Diffstat (limited to 'Tests/RunCMake')
-rw-r--r--Tests/RunCMake/GenerateExportHeader/GEH-failures.cmake67
-rw-r--r--Tests/RunCMake/GenerateExportHeader/GEH-link-error-result.txt1
-rw-r--r--Tests/RunCMake/GenerateExportHeader/GEH-link-error-stderr.txt1
-rw-r--r--Tests/RunCMake/GenerateExportHeader/GEH.cmake2
-rw-r--r--Tests/RunCMake/GenerateExportHeader/RunCMakeTest.cmake10
-rw-r--r--Tests/RunCMake/GenerateExportHeader/exportheader_test.cpp138
-rw-r--r--Tests/RunCMake/GenerateExportHeader/lib_shared_and_static/libshared_and_static.cpp65
-rw-r--r--Tests/RunCMake/GenerateExportHeader/lib_shared_and_static/libshared_and_static.h85
-rw-r--r--Tests/RunCMake/GenerateExportHeader/libshared/libshared.cpp65
-rw-r--r--Tests/RunCMake/GenerateExportHeader/libshared/libshared.h71
-rw-r--r--Tests/RunCMake/GenerateExportHeader/libstatic/libstatic.cpp68
-rw-r--r--Tests/RunCMake/GenerateExportHeader/libstatic/libstatic.h75
12 files changed, 445 insertions, 203 deletions
diff --git a/Tests/RunCMake/GenerateExportHeader/GEH-failures.cmake b/Tests/RunCMake/GenerateExportHeader/GEH-failures.cmake
new file mode 100644
index 0000000..7182cdf
--- /dev/null
+++ b/Tests/RunCMake/GenerateExportHeader/GEH-failures.cmake
@@ -0,0 +1,67 @@
+set(failure_test_executables
+ ${CMAKE_CURRENT_BINARY_DIR}/failure_test_targets)
+file(WRITE ${failure_test_executables} "")
+
+# Check if we should do anything. If the compiler doesn't support hidden
+# visibility, the failure tests won't fail, so just write an empty targets
+# list and punt.
+if(NOT WIN32 AND NOT CYGWIN AND NOT COMPILER_HAS_HIDDEN_VISIBILITY)
+ return()
+endif()
+
+# Read the input source file
+file(READ ${CMAKE_CURRENT_SOURCE_DIR}/exportheader_test.cpp content_post)
+set(content_pre "")
+
+# Generate source files for failure test executables
+set(counter 0)
+while(1)
+ # Find first occurrence of link error marker in remaining content
+ string(REGEX MATCH "//([^;\n]+;) LINK ERROR( [(][^)]+[)])?\n(.*)"
+ match "${content_post}")
+ if(match STREQUAL "")
+ # No more matches
+ break()
+ endif()
+
+ # Shift content buffers and extract failing statement
+ string(LENGTH "${content_post}" content_post_length)
+ string(LENGTH "${match}" matched_length)
+ math(EXPR shift_length "${content_post_length} - ${matched_length}")
+
+ string(SUBSTRING "${content_post}" 0 ${shift_length} shift)
+ set(content_pre "${content_pre}${shift}")
+ set(content_post "${CMAKE_MATCH_3}")
+ set(content_active "//${CMAKE_MATCH_1} LINK ERROR${CMAKE_MATCH_2}")
+ set(statement "${CMAKE_MATCH_1}")
+
+ # Check if potential error is conditional, and evaluate condition if so
+ string(REGEX REPLACE " [(]([^)]+)[)]" "\\1" condition "${CMAKE_MATCH_2}")
+ if(NOT condition STREQUAL "")
+ string(REGEX REPLACE " +" ";" condition "${condition}")
+ if(${condition})
+ else()
+ message(STATUS "Not testing '${statement}'; "
+ "condition (${condition}) is FALSE")
+ set(content_pre "${content_pre}// link error removed\n")
+ continue()
+ endif()
+ endif()
+
+ if(NOT skip)
+ message(STATUS "Creating failure test for '${statement}'")
+ math(EXPR counter "${counter} + 1")
+
+ # Write new source file
+ set(out ${CMAKE_CURRENT_BINARY_DIR}/exportheader_failtest-${counter}.cpp)
+ file(WRITE ${out} "${content_pre}${statement}\n${content_post}")
+
+ # Add executable for failure test
+ add_executable(GEH-fail-${counter} EXCLUDE_FROM_ALL ${out})
+ target_link_libraries(GEH-fail-${counter} ${link_libraries})
+ file(APPEND ${failure_test_executables} "GEH-fail-${counter}\n")
+ endif()
+
+ # Add placeholder where failing statement was removed
+ set(content_pre "${content_pre}${content_active}\n")
+endwhile()
diff --git a/Tests/RunCMake/GenerateExportHeader/GEH-link-error-result.txt b/Tests/RunCMake/GenerateExportHeader/GEH-link-error-result.txt
new file mode 100644
index 0000000..d197c91
--- /dev/null
+++ b/Tests/RunCMake/GenerateExportHeader/GEH-link-error-result.txt
@@ -0,0 +1 @@
+[^0]
diff --git a/Tests/RunCMake/GenerateExportHeader/GEH-link-error-stderr.txt b/Tests/RunCMake/GenerateExportHeader/GEH-link-error-stderr.txt
new file mode 100644
index 0000000..8d98f9d
--- /dev/null
+++ b/Tests/RunCMake/GenerateExportHeader/GEH-link-error-stderr.txt
@@ -0,0 +1 @@
+.*
diff --git a/Tests/RunCMake/GenerateExportHeader/GEH.cmake b/Tests/RunCMake/GenerateExportHeader/GEH.cmake
index ee0871b..cddba29 100644
--- a/Tests/RunCMake/GenerateExportHeader/GEH.cmake
+++ b/Tests/RunCMake/GenerateExportHeader/GEH.cmake
@@ -123,3 +123,5 @@ target_compile_definitions(GenerateExportHeader
"SRC_DIR=\"${CMAKE_CURRENT_SOURCE_DIR}/reference/${_platform}\""
"BIN_DIR=\"${CMAKE_CURRENT_BINARY_DIR}\""
)
+
+include(${CMAKE_CURRENT_LIST_DIR}/GEH-failures.cmake)
diff --git a/Tests/RunCMake/GenerateExportHeader/RunCMakeTest.cmake b/Tests/RunCMake/GenerateExportHeader/RunCMakeTest.cmake
index e534c1f..9423ef5 100644
--- a/Tests/RunCMake/GenerateExportHeader/RunCMakeTest.cmake
+++ b/Tests/RunCMake/GenerateExportHeader/RunCMakeTest.cmake
@@ -12,6 +12,16 @@ function(run_GEH)
run_cmake(GEH)
run_cmake_command(GEH-build ${CMAKE_COMMAND} --build . --config Debug)
run_cmake_command(GEH-run ${RunCMake_TEST_BINARY_DIR}/GenerateExportHeader)
+
+ file(STRINGS "${RunCMake_TEST_BINARY_DIR}/failure_test_targets"
+ failure_test_targets)
+
+ foreach(failure_test_target ${failure_test_targets})
+ run_cmake_command(GEH-link-error ${CMAKE_COMMAND}
+ --build .
+ --config Debug
+ --target ${failure_test_target})
+ endforeach()
endfunction()
run_GEH()
diff --git a/Tests/RunCMake/GenerateExportHeader/exportheader_test.cpp b/Tests/RunCMake/GenerateExportHeader/exportheader_test.cpp
index 26bea7e..7e3e0e4 100644
--- a/Tests/RunCMake/GenerateExportHeader/exportheader_test.cpp
+++ b/Tests/RunCMake/GenerateExportHeader/exportheader_test.cpp
@@ -3,14 +3,6 @@
#include "libstatic.h"
-// #define BUILD_FAIL
-
-#ifndef BUILD_FAIL
-#define DOES_NOT_BUILD(function)
-#else
-#define DOES_NOT_BUILD(function) function
-#endif
-
#include <fstream>
#include <iostream>
#include <stdlib.h>
@@ -64,74 +56,114 @@ void compare(const char* refName, const char* testName)
int main()
{
{
- Libshared l;
- l.libshared();
- l.libshared_exported();
- l.libshared_deprecated();
- l.libshared_not_exported();
-
- DOES_NOT_BUILD(l.libshared_excluded();)
+ libshared::Class l;
+ // l.method(); LINK ERROR
+ l.method_exported();
+ // l.method_deprecated(); LINK ERROR
+ l.method_deprecated_exported();
+ // l.method_excluded(); LINK ERROR
+
+ // use_int(l.data); LINK ERROR
+ use_int(l.data_exported);
+ // use_int(l.data_excluded); LINK ERROR
}
{
- LibsharedNotExported l;
- DOES_NOT_BUILD(l.libshared();)
- l.libshared_exported();
- l.libshared_deprecated();
- DOES_NOT_BUILD(l.libshared_not_exported();)
- DOES_NOT_BUILD(l.libshared_excluded();)
+ libshared::ExportedClass l;
+ l.method();
+ l.method_deprecated();
+#if defined(_WIN32) || defined(__CYGWIN__)
+ l.method_excluded();
+#else
+// l.method_excluded(); LINK ERROR (NOT WIN32 AND NOT CYGWIN)
+#endif
+
+ use_int(l.data);
+#if defined(_WIN32) || defined(__CYGWIN__)
+ use_int(l.data_excluded);
+#else
+// use_int(l.data_excluded); LINK ERROR (NOT WIN32 AND NOT CYGWIN)
+#endif
}
{
- LibsharedExcluded l;
- DOES_NOT_BUILD(l.libshared();)
- l.libshared_exported();
- l.libshared_deprecated();
- DOES_NOT_BUILD(l.libshared_not_exported();)
- DOES_NOT_BUILD(l.libshared_excluded();)
+ libshared::ExcludedClass l;
+ // l.method(); LINK ERROR
+ l.method_exported();
+ // l.method_deprecated(); LINK ERROR
+ l.method_deprecated_exported();
+ // l.method_excluded(); LINK ERROR
+
+ // use_int(l.data); LINK ERROR
+ use_int(l.data_exported);
+ // use_int(l.data_excluded); LINK ERROR
}
- libshared_exported();
- libshared_deprecated();
- DOES_NOT_BUILD(libshared_not_exported();)
- DOES_NOT_BUILD(libshared_excluded();)
+ // libshared::function(); LINK ERROR
+ libshared::function_exported();
+ // libshared::function_deprecated(); LINK ERROR
+ libshared::function_deprecated_exported();
+ // libshared::function_excluded(); LINK ERROR
+
+ // use_int(libshared::data); LINK ERROR
+ use_int(libshared::data_exported);
+ // use_int(libshared::data_excluded); LINK ERROR
{
- Libstatic l;
- l.libstatic();
- l.libstatic_exported();
- l.libstatic_deprecated();
- l.libstatic_not_exported();
- l.libstatic_excluded();
+ libstatic::Class l;
+ l.method();
+ l.method_exported();
+ l.method_deprecated();
+ l.method_deprecated_exported();
+ l.method_excluded();
+
+ use_int(l.data);
+ use_int(l.data_exported);
+ use_int(l.data_excluded);
}
{
- LibstaticNotExported l;
- l.libstatic();
- l.libstatic_exported();
- l.libstatic_deprecated();
- l.libstatic_not_exported();
- l.libstatic_excluded();
+ libstatic::ExportedClass l;
+ l.method();
+ l.method_exported();
+ l.method_deprecated();
+ l.method_deprecated_exported();
+ l.method_excluded();
+
+ use_int(l.data);
+ use_int(l.data_exported);
+ use_int(l.data_excluded);
}
{
- LibstaticExcluded l;
- l.libstatic();
- l.libstatic_exported();
- l.libstatic_deprecated();
- l.libstatic_not_exported();
- l.libstatic_excluded();
+ libstatic::ExcludedClass l;
+ l.method();
+ l.method_exported();
+ l.method_deprecated();
+ l.method_deprecated_exported();
+ l.method_excluded();
+
+ use_int(l.data);
+ use_int(l.data_exported);
+ use_int(l.data_excluded);
}
- libstatic_exported();
- libstatic_deprecated();
- libstatic_not_exported();
- libstatic_excluded();
+ libstatic::function();
+ libstatic::function_exported();
+ libstatic::function_deprecated();
+ libstatic::function_deprecated_exported();
+ libstatic::function_excluded();
+
+ use_int(libstatic::data);
+ use_int(libstatic::data_exported);
+ use_int(libstatic::data_excluded);
+#if defined(SRC_DIR) && defined(BIN_DIR)
compare(SRC_DIR "/libshared_export.h",
BIN_DIR "/libshared/libshared_export.h");
compare(SRC_DIR "/libstatic_export.h",
BIN_DIR "/libstatic/libstatic_export.h");
+#endif
return 0;
}
diff --git a/Tests/RunCMake/GenerateExportHeader/lib_shared_and_static/libshared_and_static.cpp b/Tests/RunCMake/GenerateExportHeader/lib_shared_and_static/libshared_and_static.cpp
index 846c207..9ac8381 100644
--- a/Tests/RunCMake/GenerateExportHeader/lib_shared_and_static/libshared_and_static.cpp
+++ b/Tests/RunCMake/GenerateExportHeader/lib_shared_and_static/libshared_and_static.cpp
@@ -1,106 +1,121 @@
-
#include "libshared_and_static.h"
#ifndef MY_CUSTOM_CONTENT_ADDED
#error "MY_CUSTOM_CONTENT_ADDED not defined!"
#endif
-int LibsharedAndStatic::libshared_and_static() const
+int libshared_and_static::Class::method() const
{
return 0;
}
-int LibsharedAndStatic::libshared_and_static_exported() const
+int libshared_and_static::Class::method_exported() const
{
return 0;
}
-int LibsharedAndStatic::libshared_and_static_deprecated() const
+int libshared_and_static::Class::method_deprecated() const
{
return 0;
}
-int LibsharedAndStatic::libshared_and_static_not_exported() const
+int libshared_and_static::Class::method_deprecated_exported() const
{
return 0;
}
-int LibsharedAndStatic::libshared_and_static_excluded() const
+int libshared_and_static::Class::method_excluded() const
{
return 0;
}
-int LibsharedAndStaticNotExported::libshared_and_static() const
-{
- return 0;
-}
+int const libshared_and_static::Class::data = 1;
-int LibsharedAndStaticNotExported::libshared_and_static_exported() const
+int const libshared_and_static::Class::data_exported = 1;
+
+int const libshared_and_static::Class::data_excluded = 1;
+
+int libshared_and_static::ExportedClass::method() const
{
return 0;
}
-int LibsharedAndStaticNotExported::libshared_and_static_deprecated() const
+int libshared_and_static::ExportedClass::method_deprecated() const
{
return 0;
}
-int LibsharedAndStaticNotExported::libshared_and_static_not_exported() const
+int libshared_and_static::ExportedClass::method_excluded() const
{
return 0;
}
-int LibsharedAndStaticNotExported::libshared_and_static_excluded() const
+int const libshared_and_static::ExportedClass::data = 1;
+
+int const libshared_and_static::ExportedClass::data_excluded = 1;
+
+int libshared_and_static::ExcludedClass::method() const
{
return 0;
}
-int LibsharedAndStaticExcluded::libshared_and_static() const
+int libshared_and_static::ExcludedClass::method_exported() const
{
return 0;
}
-int LibsharedAndStaticExcluded::libshared_and_static_exported() const
+int libshared_and_static::ExcludedClass::method_deprecated() const
{
return 0;
}
-int LibsharedAndStaticExcluded::libshared_and_static_deprecated() const
+int libshared_and_static::ExcludedClass::method_deprecated_exported() const
{
return 0;
}
-int LibsharedAndStaticExcluded::libshared_and_static_not_exported() const
+int libshared_and_static::ExcludedClass::method_excluded() const
{
return 0;
}
-int LibsharedAndStaticExcluded::libshared_and_static_excluded() const
+int const libshared_and_static::ExcludedClass::data = 1;
+
+int const libshared_and_static::ExcludedClass::data_exported = 1;
+
+int const libshared_and_static::ExcludedClass::data_excluded = 1;
+
+int libshared_and_static::function()
{
return 0;
}
-int libshared_and_static()
+int libshared_and_static::function_exported()
{
return 0;
}
-int libshared_and_static_exported()
+int libshared_and_static::function_deprecated()
{
return 0;
}
-int libshared_and_static_deprecated()
+int libshared_and_static::function_deprecated_exported()
{
return 0;
}
-int libshared_and_static_not_exported()
+int libshared_and_static::function_excluded()
{
return 0;
}
-int libshared_and_static_excluded()
+int const libshared_and_static::data = 1;
+
+int const libshared_and_static::data_exported = 1;
+
+int const libshared_and_static::data_excluded = 1;
+
+void use_int(int)
{
- return 0;
}
diff --git a/Tests/RunCMake/GenerateExportHeader/lib_shared_and_static/libshared_and_static.h b/Tests/RunCMake/GenerateExportHeader/lib_shared_and_static/libshared_and_static.h
index ea672fe..2c3fcfd 100644
--- a/Tests/RunCMake/GenerateExportHeader/lib_shared_and_static/libshared_and_static.h
+++ b/Tests/RunCMake/GenerateExportHeader/lib_shared_and_static/libshared_and_static.h
@@ -1,66 +1,83 @@
-
-#ifndef SHARED_AND_STATIC_H
-#define SHARED_AND_STATIC_H
+#ifndef LIBSHARED_AND_STATIC_H
+#define LIBSHARED_AND_STATIC_H
#include "libshared_and_static_export.h"
-class MYPREFIX_LIBSHARED_AND_STATIC_EXPORT LibsharedAndStatic
+namespace libshared_and_static {
+
+class Class
{
public:
- int libshared_and_static() const;
+ int method() const;
+
+ int MYPREFIX_LIBSHARED_AND_STATIC_EXPORT method_exported() const;
+
+ int MYPREFIX_LIBSHARED_AND_STATIC_DEPRECATED method_deprecated() const;
- int libshared_and_static_exported() const;
+ int MYPREFIX_LIBSHARED_AND_STATIC_DEPRECATED_EXPORT
+ method_deprecated_exported() const;
- int MYPREFIX_LIBSHARED_AND_STATIC_DEPRECATED
- libshared_and_static_deprecated() const;
+ int MYPREFIX_LIBSHARED_AND_STATIC_NO_EXPORT method_excluded() const;
- int libshared_and_static_not_exported() const;
+ static int const data;
- int MYPREFIX_LIBSHARED_AND_STATIC_NO_EXPORT
- libshared_and_static_excluded() const;
+ static int const MYPREFIX_LIBSHARED_AND_STATIC_EXPORT data_exported;
+
+ static int const MYPREFIX_LIBSHARED_AND_STATIC_NO_EXPORT data_excluded;
};
-class LibsharedAndStaticNotExported
+class MYPREFIX_LIBSHARED_AND_STATIC_EXPORT ExportedClass
{
public:
- int libshared_and_static() const;
+ int method() const;
- int MYPREFIX_LIBSHARED_AND_STATIC_EXPORT
- libshared_and_static_exported() const;
+ int MYPREFIX_LIBSHARED_AND_STATIC_DEPRECATED method_deprecated() const;
- int MYPREFIX_LIBSHARED_AND_STATIC_DEPRECATED
- libshared_and_static_deprecated() const;
+ int MYPREFIX_LIBSHARED_AND_STATIC_NO_EXPORT method_excluded() const;
- int libshared_and_static_not_exported() const;
+ static int const data;
- int MYPREFIX_LIBSHARED_AND_STATIC_NO_EXPORT
- libshared_and_static_excluded() const;
+ static int const MYPREFIX_LIBSHARED_AND_STATIC_NO_EXPORT data_excluded;
};
-class MYPREFIX_LIBSHARED_AND_STATIC_NO_EXPORT LibsharedAndStaticExcluded
+class MYPREFIX_LIBSHARED_AND_STATIC_NO_EXPORT ExcludedClass
{
public:
- int libshared_and_static() const;
+ int method() const;
+
+ int MYPREFIX_LIBSHARED_AND_STATIC_EXPORT method_exported() const;
+
+ int MYPREFIX_LIBSHARED_AND_STATIC_DEPRECATED method_deprecated() const;
- int MYPREFIX_LIBSHARED_AND_STATIC_EXPORT
- libshared_and_static_exported() const;
+ int MYPREFIX_LIBSHARED_AND_STATIC_DEPRECATED_EXPORT
+ method_deprecated_exported() const;
- int MYPREFIX_LIBSHARED_AND_STATIC_DEPRECATED
- libshared_and_static_deprecated() const;
+ int MYPREFIX_LIBSHARED_AND_STATIC_NO_EXPORT method_excluded() const;
- int libshared_and_static_not_exported() const;
+ static int const data;
- int MYPREFIX_LIBSHARED_AND_STATIC_NO_EXPORT
- libshared_and_static_excluded() const;
+ static int const MYPREFIX_LIBSHARED_AND_STATIC_EXPORT data_exported;
+
+ static int const MYPREFIX_LIBSHARED_AND_STATIC_NO_EXPORT data_excluded;
};
-MYPREFIX_LIBSHARED_AND_STATIC_EXPORT int libshared_and_static_exported();
+int function();
+
+int MYPREFIX_LIBSHARED_AND_STATIC_EXPORT function_exported();
+
+int MYPREFIX_LIBSHARED_AND_STATIC_DEPRECATED function_deprecated();
+
+int MYPREFIX_LIBSHARED_AND_STATIC_DEPRECATED_EXPORT
+function_deprecated_exported();
+
+int MYPREFIX_LIBSHARED_AND_STATIC_NO_EXPORT function_excluded();
+
+extern int const data;
-MYPREFIX_LIBSHARED_AND_STATIC_DEPRECATED_EXPORT int
-libshared_and_static_deprecated();
+extern int const MYPREFIX_LIBSHARED_AND_STATIC_EXPORT data_exported;
-int libshared_and_static_not_exported();
+extern int const MYPREFIX_LIBSHARED_AND_STATIC_NO_EXPORT data_excluded;
-int MYPREFIX_LIBSHARED_AND_STATIC_NO_EXPORT libshared_and_static_excluded();
+} // namespace libshared_and_static
#endif
diff --git a/Tests/RunCMake/GenerateExportHeader/libshared/libshared.cpp b/Tests/RunCMake/GenerateExportHeader/libshared/libshared.cpp
index ad6d356..328ef6f 100644
--- a/Tests/RunCMake/GenerateExportHeader/libshared/libshared.cpp
+++ b/Tests/RunCMake/GenerateExportHeader/libshared/libshared.cpp
@@ -1,102 +1,117 @@
-
#include "libshared.h"
-int Libshared::libshared() const
+int libshared::Class::method() const
{
return 0;
}
-int Libshared::libshared_exported() const
+int libshared::Class::method_exported() const
{
return 0;
}
-int Libshared::libshared_deprecated() const
+int libshared::Class::method_deprecated() const
{
return 0;
}
-int Libshared::libshared_not_exported() const
+int libshared::Class::method_deprecated_exported() const
{
return 0;
}
-int Libshared::libshared_excluded() const
+int libshared::Class::method_excluded() const
{
return 0;
}
-int LibsharedNotExported::libshared() const
-{
- return 0;
-}
+int const libshared::Class::data = 1;
-int LibsharedNotExported::libshared_exported() const
+int const libshared::Class::data_exported = 1;
+
+int const libshared::Class::data_excluded = 1;
+
+int libshared::ExportedClass::method() const
{
return 0;
}
-int LibsharedNotExported::libshared_deprecated() const
+int libshared::ExportedClass::method_deprecated() const
{
return 0;
}
-int LibsharedNotExported::libshared_not_exported() const
+int libshared::ExportedClass::method_excluded() const
{
return 0;
}
-int LibsharedNotExported::libshared_excluded() const
+int const libshared::ExportedClass::data = 1;
+
+int const libshared::ExportedClass::data_excluded = 1;
+
+int libshared::ExcludedClass::method() const
{
return 0;
}
-int LibsharedExcluded::libshared() const
+int libshared::ExcludedClass::method_exported() const
{
return 0;
}
-int LibsharedExcluded::libshared_exported() const
+int libshared::ExcludedClass::method_deprecated() const
{
return 0;
}
-int LibsharedExcluded::libshared_deprecated() const
+int libshared::ExcludedClass::method_deprecated_exported() const
{
return 0;
}
-int LibsharedExcluded::libshared_not_exported() const
+int libshared::ExcludedClass::method_excluded() const
{
return 0;
}
-int LibsharedExcluded::libshared_excluded() const
+int const libshared::ExcludedClass::data = 1;
+
+int const libshared::ExcludedClass::data_exported = 1;
+
+int const libshared::ExcludedClass::data_excluded = 1;
+
+int libshared::function()
{
return 0;
}
-int libshared()
+int libshared::function_exported()
{
return 0;
}
-int libshared_exported()
+int libshared::function_deprecated()
{
return 0;
}
-int libshared_deprecated()
+int libshared::function_deprecated_exported()
{
return 0;
}
-int libshared_not_exported()
+int libshared::function_excluded()
{
return 0;
}
-int libshared_excluded()
+int const libshared::data = 1;
+
+int const libshared::data_exported = 1;
+
+int const libshared::data_excluded = 1;
+
+void use_int(int)
{
- return 0;
}
diff --git a/Tests/RunCMake/GenerateExportHeader/libshared/libshared.h b/Tests/RunCMake/GenerateExportHeader/libshared/libshared.h
index bd9f2e3..6574bd5 100644
--- a/Tests/RunCMake/GenerateExportHeader/libshared/libshared.h
+++ b/Tests/RunCMake/GenerateExportHeader/libshared/libshared.h
@@ -1,57 +1,82 @@
-
#ifndef LIBSHARED_H
#define LIBSHARED_H
#include "libshared_export.h"
-class LIBSHARED_EXPORT Libshared
+namespace libshared {
+
+class Class
{
public:
- int libshared() const;
+ int method() const;
+
+ int LIBSHARED_EXPORT method_exported() const;
+
+ int LIBSHARED_DEPRECATED method_deprecated() const;
- int libshared_exported() const;
+ int LIBSHARED_DEPRECATED_EXPORT method_deprecated_exported() const;
- int LIBSHARED_DEPRECATED libshared_deprecated() const;
+ int LIBSHARED_NO_EXPORT method_excluded() const;
- int libshared_not_exported() const;
+ static int const data;
- int LIBSHARED_NO_EXPORT libshared_excluded() const;
+ static int const LIBSHARED_EXPORT data_exported;
+
+ static int const LIBSHARED_NO_EXPORT data_excluded;
};
-class LibsharedNotExported
+class LIBSHARED_EXPORT ExportedClass
{
public:
- int libshared() const;
+ int method() const;
- int LIBSHARED_EXPORT libshared_exported() const;
+ int LIBSHARED_DEPRECATED method_deprecated() const;
- int LIBSHARED_DEPRECATED_EXPORT libshared_deprecated() const;
+ int LIBSHARED_NO_EXPORT method_excluded() const;
- int libshared_not_exported() const;
+ static int const data;
- int LIBSHARED_NO_EXPORT libshared_excluded() const;
+ static int const LIBSHARED_NO_EXPORT data_excluded;
};
-class LIBSHARED_NO_EXPORT LibsharedExcluded
+class LIBSHARED_NO_EXPORT ExcludedClass
{
public:
- int libshared() const;
+ int method() const;
+
+ int LIBSHARED_EXPORT method_exported() const;
+
+ int LIBSHARED_DEPRECATED method_deprecated() const;
- int LIBSHARED_EXPORT libshared_exported() const;
+ int LIBSHARED_DEPRECATED_EXPORT method_deprecated_exported() const;
- int LIBSHARED_DEPRECATED_EXPORT libshared_deprecated() const;
+ int LIBSHARED_NO_EXPORT method_excluded() const;
- int libshared_not_exported() const;
+ static int const data;
- int LIBSHARED_NO_EXPORT libshared_excluded() const;
+ static int const LIBSHARED_EXPORT data_exported;
+
+ static int const LIBSHARED_NO_EXPORT data_excluded;
};
-LIBSHARED_EXPORT int libshared_exported();
+int function();
+
+int LIBSHARED_EXPORT function_exported();
+
+int LIBSHARED_DEPRECATED function_deprecated();
+
+int LIBSHARED_DEPRECATED_EXPORT function_deprecated_exported();
+
+int LIBSHARED_NO_EXPORT function_excluded();
+
+extern int const data;
+
+extern int const LIBSHARED_EXPORT data_exported;
-LIBSHARED_DEPRECATED_EXPORT int libshared_deprecated();
+extern int const LIBSHARED_NO_EXPORT data_excluded;
-int libshared_not_exported();
+} // namespace libshared
-int LIBSHARED_NO_EXPORT libshared_excluded();
+LIBSHARED_EXPORT void use_int(int);
#endif
diff --git a/Tests/RunCMake/GenerateExportHeader/libstatic/libstatic.cpp b/Tests/RunCMake/GenerateExportHeader/libstatic/libstatic.cpp
index 89381af..e1d1255 100644
--- a/Tests/RunCMake/GenerateExportHeader/libstatic/libstatic.cpp
+++ b/Tests/RunCMake/GenerateExportHeader/libstatic/libstatic.cpp
@@ -1,97 +1,125 @@
-
#include "libstatic.h"
-int Libstatic::libstatic() const
+int libstatic::Class::method() const
{
return 0;
}
-int Libstatic::libstatic_exported() const
+int libstatic::Class::method_exported() const
{
return 0;
}
-int Libstatic::libstatic_deprecated() const
+int libstatic::Class::method_deprecated() const
{
return 0;
}
-int Libstatic::libstatic_not_exported() const
+int libstatic::Class::method_deprecated_exported() const
{
return 0;
}
-int Libstatic::libstatic_excluded() const
+int libstatic::Class::method_excluded() const
{
return 0;
}
-int LibstaticNotExported::libstatic() const
+int const libstatic::Class::data = 1;
+
+int const libstatic::Class::data_exported = 1;
+
+int const libstatic::Class::data_excluded = 1;
+
+int libstatic::ExportedClass::method() const
{
return 0;
}
-int LibstaticNotExported::libstatic_exported() const
+int libstatic::ExportedClass::method_exported() const
{
return 0;
}
-int LibstaticNotExported::libstatic_deprecated() const
+int libstatic::ExportedClass::method_deprecated() const
{
return 0;
}
-int LibstaticNotExported::libstatic_not_exported() const
+int libstatic::ExportedClass::method_deprecated_exported() const
{
return 0;
}
-int LibstaticNotExported::libstatic_excluded() const
+int libstatic::ExportedClass::method_excluded() const
{
return 0;
}
-int LibstaticExcluded::libstatic() const
+int const libstatic::ExportedClass::data = 1;
+
+int const libstatic::ExportedClass::data_exported = 1;
+
+int const libstatic::ExportedClass::data_excluded = 1;
+
+int libstatic::ExcludedClass::method() const
{
return 0;
}
-int LibstaticExcluded::libstatic_exported() const
+int libstatic::ExcludedClass::method_exported() const
{
return 0;
}
-int LibstaticExcluded::libstatic_deprecated() const
+int libstatic::ExcludedClass::method_deprecated() const
{
return 0;
}
-int LibstaticExcluded::libstatic_not_exported() const
+int libstatic::ExcludedClass::method_deprecated_exported() const
{
return 0;
}
-int LibstaticExcluded::libstatic_excluded() const
+int libstatic::ExcludedClass::method_excluded() const
{
return 0;
}
-int libstatic_exported()
+int const libstatic::ExcludedClass::data = 1;
+
+int const libstatic::ExcludedClass::data_exported = 1;
+
+int const libstatic::ExcludedClass::data_excluded = 1;
+
+int libstatic::function()
+{
+ return 0;
+}
+
+int libstatic::function_exported()
{
return 0;
}
-int libstatic_deprecated()
+int libstatic::function_deprecated()
{
return 0;
}
-int libstatic_not_exported()
+int libstatic::function_deprecated_exported()
{
return 0;
}
-int libstatic_excluded()
+int libstatic::function_excluded()
{
return 0;
}
+
+int const libstatic::data = 1;
+
+int const libstatic::data_exported = 1;
+
+int const libstatic::data_excluded = 1;
diff --git a/Tests/RunCMake/GenerateExportHeader/libstatic/libstatic.h b/Tests/RunCMake/GenerateExportHeader/libstatic/libstatic.h
index 6072d9b..1017e12 100644
--- a/Tests/RunCMake/GenerateExportHeader/libstatic/libstatic.h
+++ b/Tests/RunCMake/GenerateExportHeader/libstatic/libstatic.h
@@ -1,57 +1,86 @@
-
#ifndef LIBSTATIC_H
#define LIBSTATIC_H
#include "libstatic_export.h"
-class LIBSTATIC_EXPORT Libstatic
+namespace libstatic {
+
+class Class
{
public:
- int libstatic() const;
+ int method() const;
+
+ int LIBSTATIC_EXPORT method_exported() const;
+
+ int LIBSTATIC_DEPRECATED method_deprecated() const;
- int libstatic_exported() const;
+ int LIBSTATIC_DEPRECATED_EXPORT method_deprecated_exported() const;
- int LIBSTATIC_DEPRECATED libstatic_deprecated() const;
+ int LIBSTATIC_NO_EXPORT method_excluded() const;
- int libstatic_not_exported() const;
+ static int const data;
- int LIBSTATIC_NO_EXPORT libstatic_excluded() const;
+ static int const LIBSTATIC_EXPORT data_exported;
+
+ static int const LIBSTATIC_NO_EXPORT data_excluded;
};
-class LibstaticNotExported
+class LIBSTATIC_EXPORT ExportedClass
{
public:
- int libstatic() const;
+ int method() const;
+
+ int LIBSTATIC_EXPORT method_exported() const;
+
+ int LIBSTATIC_DEPRECATED method_deprecated() const;
+
+ int LIBSTATIC_DEPRECATED_EXPORT method_deprecated_exported() const;
- int LIBSTATIC_EXPORT libstatic_exported() const;
+ int LIBSTATIC_NO_EXPORT method_excluded() const;
- int LIBSTATIC_DEPRECATED libstatic_deprecated() const;
+ static int const data;
- int libstatic_not_exported() const;
+ static int const LIBSTATIC_EXPORT data_exported;
- int LIBSTATIC_NO_EXPORT libstatic_excluded() const;
+ static int const LIBSTATIC_NO_EXPORT data_excluded;
};
-class LIBSTATIC_NO_EXPORT LibstaticExcluded
+class LIBSTATIC_NO_EXPORT ExcludedClass
{
public:
- int libstatic() const;
+ int method() const;
- int LIBSTATIC_EXPORT libstatic_exported() const;
+ int LIBSTATIC_EXPORT method_exported() const;
- int LIBSTATIC_DEPRECATED libstatic_deprecated() const;
+ int LIBSTATIC_DEPRECATED method_deprecated() const;
- int libstatic_not_exported() const;
+ int LIBSTATIC_DEPRECATED_EXPORT method_deprecated_exported() const;
- int LIBSTATIC_NO_EXPORT libstatic_excluded() const;
+ int LIBSTATIC_NO_EXPORT method_excluded() const;
+
+ static int const data;
+
+ static int const LIBSTATIC_EXPORT data_exported;
+
+ static int const LIBSTATIC_NO_EXPORT data_excluded;
};
-LIBSTATIC_EXPORT int libstatic_exported();
+int function();
+
+int LIBSTATIC_EXPORT function_exported();
+
+int LIBSTATIC_DEPRECATED function_deprecated();
+
+int LIBSTATIC_DEPRECATED_EXPORT function_deprecated_exported();
+
+int LIBSTATIC_NO_EXPORT function_excluded();
+
+extern int const data;
-LIBSTATIC_DEPRECATED_EXPORT int libstatic_deprecated();
+extern int const LIBSTATIC_EXPORT data_exported;
-int libstatic_not_exported();
+extern int const LIBSTATIC_NO_EXPORT data_excluded;
-int LIBSTATIC_NO_EXPORT libstatic_excluded();
+} // namespace libstatic
#endif