| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- #include "libshared.h"
- #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>
- #include <string>
- void compare(const char* refName, const char* testName)
- {
- std::ifstream ref;
- ref.open(refName);
- if (!ref.is_open())
- {
- std::cout << "Could not open \"" << refName << "\"." << std::endl;
- exit(1);
- }
- std::ifstream test;
- test.open(testName);
- if (!test.is_open())
- {
- std::cout << "Could not open \"" << testName << "\"." << std::endl;
- exit(1);
- }
- while (!ref.eof() && !test.eof())
- {
- std::string refLine;
- std::string testLine;
- std::getline(ref, refLine);
- std::getline(test, testLine);
- if (testLine.size() && testLine[testLine.size()-1] == ' ')
- {
- testLine = testLine.substr(0, testLine.size() - 1);
- }
- if (refLine != testLine)
- {
- std::cout << "Ref and test are not the same:\n Ref: \""
- << refLine << "\"\n Test: \"" << testLine << "\"\n";
- exit(1);
- }
- }
- if (!ref.eof() || !test.eof())
- {
- std::cout << "Ref and test have differing numbers of lines.";
- exit(1);
- }
- }
- int main()
- {
- {
- Libshared l;
- l.libshared();
- l.libshared_exported();
- l.libshared_deprecated();
- l.libshared_not_exported();
- DOES_NOT_BUILD(l.libshared_excluded();)
- }
- {
- 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();)
- }
- {
- 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_exported();
- libshared_deprecated();
- DOES_NOT_BUILD(libshared_not_exported();)
- DOES_NOT_BUILD(libshared_excluded();)
- {
- Libstatic l;
- l.libstatic();
- l.libstatic_exported();
- l.libstatic_deprecated();
- l.libstatic_not_exported();
- l.libstatic_excluded();
- }
- {
- LibstaticNotExported l;
- l.libstatic();
- l.libstatic_exported();
- l.libstatic_deprecated();
- l.libstatic_not_exported();
- l.libstatic_excluded();
- }
- {
- LibstaticExcluded l;
- l.libstatic();
- l.libstatic_exported();
- l.libstatic_deprecated();
- l.libstatic_not_exported();
- l.libstatic_excluded();
- }
- libstatic_exported();
- libstatic_deprecated();
- libstatic_not_exported();
- libstatic_excluded();
- #define STRINGIFY_IMPL(A) #A
- #define STRINGIFY(A) STRINGIFY_IMPL(A)
- compare(STRINGIFY(SRC_DIR) "/libshared_export.h",
- STRINGIFY(BIN_DIR) "/libshared/libshared_export.h");
- compare(STRINGIFY(SRC_DIR) "/libstatic_export.h",
- STRINGIFY(BIN_DIR) "/libstatic/libstatic_export.h");
- return 0;
- }
|