Matthew Woehlke 612d6f29f8 Tests: Refactor GenerateExportHeader test code
Refactor the library code used in the GenerateExportHeader test to use
an improved naming convention that more directly identifies what it
being tested, making use of namespaces to avoid possible symbol
collisions. This also eliminates duplicate cases such as `libshared()`
and `libshared_not_exported()` which had the same decoration, and adds
consistent pairings of <name>_EXPORT and <name>_DEPRECATED_EXPORT which
were missing previously. The data tests from the previous commit are
also added to `libstatic` and `libshared_and_static` for consistency.

Note that there are no exported members of exported classes, as these
are not allowed on Windows.
2016-09-12 10:29:20 -04:00

87 lines
1.7 KiB
C++

#ifndef LIBSTATIC_H
#define LIBSTATIC_H
#include "libstatic_export.h"
namespace libstatic {
class Class
{
public:
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_NO_EXPORT method_excluded() const;
static int const data;
static int const LIBSTATIC_EXPORT data_exported;
static int const LIBSTATIC_NO_EXPORT data_excluded;
};
class LIBSTATIC_EXPORT ExportedClass
{
public:
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_NO_EXPORT method_excluded() const;
static int const data;
static int const LIBSTATIC_EXPORT data_exported;
static int const LIBSTATIC_NO_EXPORT data_excluded;
};
class LIBSTATIC_NO_EXPORT ExcludedClass
{
public:
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_NO_EXPORT method_excluded() const;
static int const data;
static int const LIBSTATIC_EXPORT data_exported;
static int const LIBSTATIC_NO_EXPORT data_excluded;
};
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;
extern int const LIBSTATIC_EXPORT data_exported;
extern int const LIBSTATIC_NO_EXPORT data_excluded;
} // namespace libstatic
#endif