| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169 | 
							
- #include "libshared.h"
 
- #include "libstatic.h"
 
- #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);
 
-     // Some very old Borland runtimes (C++ Builder 5 WITHOUT Update 1) add a
 
-     // trailing null to the string that we need to strip before testing for a
 
-     // trailing space.
 
-     if (refLine.size() && refLine[refLine.size() - 1] == 0) {
 
-       refLine = refLine.substr(0, refLine.size() - 1);
 
-     }
 
-     if (testLine.size() && testLine[testLine.size() - 1] == 0) {
 
-       testLine = testLine.substr(0, testLine.size() - 1);
 
-     }
 
-     // The reference files never have trailing spaces:
 
-     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::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
 
-   }
 
-   {
 
-     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
 
-   }
 
-   {
 
-     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::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::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);
 
-   }
 
-   {
 
-     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);
 
-   }
 
-   {
 
-     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::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;
 
- }
 
 
  |