| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
- file Copyright.txt or https://cmake.org/licensing#kwsys for details. */
- #include "kwsysPrivate.h"
- #include KWSYS_HEADER(Status.hxx)
- // Work-around CMake dependency scanning limitation. This must
- // duplicate the above list of headers.
- #if 0
- # include "Status.hxx.in"
- #endif
- #include <cerrno>
- #include <iostream>
- #ifdef _WIN32
- # include <windows.h>
- #endif
- int testStatus(int, char* [])
- {
- bool res = true;
- {
- kwsys::Status status;
- if (status.GetKind() != kwsys::Status::Kind::Success) {
- std::cerr << "Status default constructor does not produce Success\n";
- res = false;
- }
- status = kwsys::Status::Success();
- if (status.GetKind() != kwsys::Status::Kind::Success) {
- std::cerr << "Status Success constructor does not produce Success\n";
- res = false;
- }
- if (!status) {
- std::cerr << "Status Success kind is not true\n";
- res = false;
- }
- if (status.GetPOSIX() != 0) {
- std::cerr << "Status Success kind does not return POSIX 0\n";
- res = false;
- }
- #ifdef _WIN32
- if (status.GetWindows() != 0) {
- std::cerr << "Status Success kind does not return Windows 0\n";
- res = false;
- }
- #endif
- if (status.GetString() != "Success") {
- std::cerr << "Status Success kind does not return \"Success\" string\n";
- res = false;
- }
- status = kwsys::Status::POSIX(EINVAL);
- if (status.GetKind() != kwsys::Status::Kind::POSIX) {
- std::cerr << "Status POSIX constructor does not produce POSIX\n";
- res = false;
- }
- if (status) {
- std::cerr << "Status POSIX kind is not false\n";
- res = false;
- }
- if (status.GetPOSIX() != EINVAL) {
- std::cerr << "Status POSIX kind does not preserve POSIX value\n";
- res = false;
- }
- #ifdef _WIN32
- if (status.GetWindows() != 0) {
- std::cerr << "Status POSIX kind does not return Windows 0\n";
- res = false;
- }
- #endif
- if (status.GetString().empty()) {
- std::cerr << "Status POSIX kind returns empty string\n";
- res = false;
- }
- errno = ENOENT;
- status = kwsys::Status::POSIX_errno();
- if (status.GetPOSIX() != ENOENT) {
- std::cerr << "Status POSIX_errno did not use errno\n";
- res = false;
- }
- errno = 0;
- #ifdef _WIN32
- status = kwsys::Status::Windows(ERROR_INVALID_PARAMETER);
- if (status.GetKind() != kwsys::Status::Kind::Windows) {
- std::cerr << "Status Windows constructor does not produce Windows\n";
- res = false;
- }
- if (status) {
- std::cerr << "Status Windows kind is not false\n";
- res = false;
- }
- if (status.GetWindows() != ERROR_INVALID_PARAMETER) {
- std::cerr << "Status Windows kind does not preserve Windows value\n";
- res = false;
- }
- if (status.GetPOSIX() != 0) {
- std::cerr << "Status Windows kind does not return POSIX 0\n";
- res = false;
- }
- if (status.GetString().empty()) {
- std::cerr << "Status Windows kind returns empty string\n";
- res = false;
- }
- SetLastError(ERROR_FILE_NOT_FOUND);
- status = kwsys::Status::Windows_GetLastError();
- if (status.GetWindows() != ERROR_FILE_NOT_FOUND) {
- std::cerr << "Status Windows_GetLastError did not use GetLastError()\n";
- res = false;
- }
- SetLastError(ERROR_SUCCESS);
- #endif
- }
- return res ? 0 : 1;
- }
|