Merge branch 'upstream-KWSys' into update-kwsys

* upstream-KWSys:
  KWSys 2016-09-23 (80f820fc)
This commit is contained in:
Brad King 2016-09-26 09:45:51 -04:00
commit 1798e49595
1 changed files with 21 additions and 16 deletions

View File

@ -103,7 +103,7 @@ static void dumpBuffers(const T *expected, const T *received, size_t size) {
} }
std::cerr << std::endl; std::cerr << std::endl;
} }
std::cerr << std::endl << std::flush; std::cerr << std::endl;
} }
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
@ -331,21 +331,23 @@ static int testPipe()
didFail = encodedTestString.compare(buffer2) == 0 ? 0 : 1; didFail = encodedTestString.compare(buffer2) == 0 ? 0 : 1;
} }
if (didFail != 0) { if (didFail != 0) {
std::cerr << "Pipe's output didn't match expected output!" << std::endl << std::flush; std::cerr << "Pipe's output didn't match expected output!" << std::endl;
dumpBuffers<char>(encodedTestString.c_str(), buffer, encodedTestString.size()); dumpBuffers<char>(encodedTestString.c_str(), buffer, encodedTestString.size());
dumpBuffers<char>(encodedInputTestString.c_str(), buffer + encodedTestString.size() + 1, encodedInputTestString.size()); dumpBuffers<char>(encodedInputTestString.c_str(), buffer + encodedTestString.size() + 1, encodedInputTestString.size());
dumpBuffers<char>(encodedTestString.c_str(), buffer2, encodedTestString.size()); dumpBuffers<char>(encodedTestString.c_str(), buffer2, encodedTestString.size());
} }
} catch (const std::runtime_error &ex) { } catch (const std::runtime_error &ex) {
DWORD lastError = GetLastError(); DWORD lastError = GetLastError();
std::cerr << "In function " << __FUNCTION__ << ":" << ex.what() << std::endl << std::flush; std::cerr << "In function testPipe, line " << __LINE__ << ": "
<< ex.what() << std::endl;
displayError(lastError); displayError(lastError);
} }
finishProcess(didFail == 0); finishProcess(didFail == 0);
} }
} catch (const std::runtime_error &ex) { } catch (const std::runtime_error &ex) {
DWORD lastError = GetLastError(); DWORD lastError = GetLastError();
std::cerr << "In function " << __FUNCTION__ << ":" << ex.what() << std::endl << std::flush; std::cerr << "In function testPipe, line " << __LINE__ << ": "
<< ex.what() << std::endl;
displayError(lastError); displayError(lastError);
} }
finishPipe(inPipeRead, inPipeWrite); finishPipe(inPipeRead, inPipeWrite);
@ -368,11 +370,11 @@ static int testFile()
(errFile = createFile(L"stderrFile.txt")) == INVALID_HANDLE_VALUE) { (errFile = createFile(L"stderrFile.txt")) == INVALID_HANDLE_VALUE) {
throw std::runtime_error("createFile failed!"); throw std::runtime_error("createFile failed!");
} }
int length = 0;
DWORD bytesWritten = 0; DWORD bytesWritten = 0;
char buffer[200]; char buffer[200];
char buffer2[200]; char buffer2[200];
int length;
if ((length = WideCharToMultiByte(TestCodepage, 0, UnicodeInputTestString, -1, if ((length = WideCharToMultiByte(TestCodepage, 0, UnicodeInputTestString, -1,
buffer, sizeof(buffer), buffer, sizeof(buffer),
NULL, NULL)) == 0) { NULL, NULL)) == 0) {
@ -424,21 +426,23 @@ static int testFile()
didFail = encodedTestString.compare(buffer2) == 0 ? 0 : 1; didFail = encodedTestString.compare(buffer2) == 0 ? 0 : 1;
} }
if (didFail != 0) { if (didFail != 0) {
std::cerr << "File's output didn't match expected output!" << std::endl << std::flush; std::cerr << "File's output didn't match expected output!" << std::endl;
dumpBuffers<char>(encodedTestString.c_str(), buffer, encodedTestString.size()); dumpBuffers<char>(encodedTestString.c_str(), buffer, encodedTestString.size());
dumpBuffers<char>(encodedInputTestString.c_str(), buffer + encodedTestString.size() + 1, encodedInputTestString.size() - 1); dumpBuffers<char>(encodedInputTestString.c_str(), buffer + encodedTestString.size() + 1, encodedInputTestString.size() - 1);
dumpBuffers<char>(encodedTestString.c_str(), buffer2, encodedTestString.size()); dumpBuffers<char>(encodedTestString.c_str(), buffer2, encodedTestString.size());
} }
} catch (const std::runtime_error &ex) { } catch (const std::runtime_error &ex) {
DWORD lastError = GetLastError(); DWORD lastError = GetLastError();
std::cerr << "In function " << __FUNCTION__ << ":" << ex.what() << std::endl << std::flush; std::cerr << "In function testFile, line " << __LINE__ << ": "
<< ex.what() << std::endl;
displayError(lastError); displayError(lastError);
} }
finishProcess(didFail == 0); finishProcess(didFail == 0);
} }
} catch (const std::runtime_error &ex) { } catch (const std::runtime_error &ex) {
DWORD lastError = GetLastError(); DWORD lastError = GetLastError();
std::cerr << "In function " << __FUNCTION__ << ":" << ex.what() << std::endl << std::flush; std::cerr << "In function testFile, line " << __LINE__ << ": "
<< ex.what() << std::endl;
displayError(lastError); displayError(lastError);
} }
finishFile(inFile); finishFile(inFile);
@ -508,18 +512,18 @@ static int testConsole()
forceNewConsole = true; forceNewConsole = true;
} }
} else { } else {
std::cerr << "RegGetValueW(FontFamily) failed!" << std::endl << std::flush; std::cerr << "RegGetValueW(FontFamily) failed!" << std::endl;
} }
RegCloseKey(hConsoleKey); RegCloseKey(hConsoleKey);
} else { } else {
std::cerr << "RegOpenKeyExW(HKEY_CURRENT_USER\\Console) failed!" << std::endl << std::flush; std::cerr << "RegOpenKeyExW(HKEY_CURRENT_USER\\Console) failed!" << std::endl;
} }
} }
if (forceNewConsole || GetConsoleMode(parentOut, &consoleMode) == 0) { if (forceNewConsole || GetConsoleMode(parentOut, &consoleMode) == 0) {
// Not a real console, let's create new one. // Not a real console, let's create new one.
FreeConsole(); FreeConsole();
if (!AllocConsole()) { if (!AllocConsole()) {
std::cerr << "AllocConsole failed!" << std::endl << std::flush; std::cerr << "AllocConsole failed!" << std::endl;
return didFail; return didFail;
} }
SECURITY_ATTRIBUTES securityAttributes; SECURITY_ATTRIBUTES securityAttributes;
@ -561,11 +565,11 @@ static int testConsole()
consoleFont.FontFamily = TestFontFamily; consoleFont.FontFamily = TestFontFamily;
wcscpy(consoleFont.FaceName, TestFaceName); wcscpy(consoleFont.FaceName, TestFaceName);
if (!setConsoleFont(hOut, FALSE, &consoleFont)) { if (!setConsoleFont(hOut, FALSE, &consoleFont)) {
std::cerr << "SetCurrentConsoleFontEx failed!" << std::endl << std::flush; std::cerr << "SetCurrentConsoleFontEx failed!" << std::endl;
} }
} }
} else { } else {
std::cerr << "GetCurrentConsoleFontEx failed!" << std::endl << std::flush; std::cerr << "GetCurrentConsoleFontEx failed!" << std::endl;
} }
} else { } else {
#endif #endif
@ -599,7 +603,7 @@ static int testConsole()
INPUT_RECORD inputBuffer[(sizeof(UnicodeInputTestString) / INPUT_RECORD inputBuffer[(sizeof(UnicodeInputTestString) /
sizeof(UnicodeInputTestString[0])) * 2]; sizeof(UnicodeInputTestString[0])) * 2];
memset(&inputBuffer, 0, sizeof(inputBuffer)); memset(&inputBuffer, 0, sizeof(inputBuffer));
unsigned int i = 0; unsigned int i;
for (i = 0; i < (sizeof(UnicodeInputTestString) / for (i = 0; i < (sizeof(UnicodeInputTestString) /
sizeof(UnicodeInputTestString[0]) - 1); i++) { sizeof(UnicodeInputTestString[0]) - 1); i++) {
writeInputKeyEvent(&inputBuffer[i*2], UnicodeInputTestString[i]); writeInputKeyEvent(&inputBuffer[i*2], UnicodeInputTestString[i]);
@ -650,7 +654,7 @@ static int testConsole()
) { ) {
didFail = 0; didFail = 0;
} else { } else {
std::cerr << "Console's output didn't match expected output!" << std::endl << std::flush; std::cerr << "Console's output didn't match expected output!" << std::endl;
dumpBuffers<wchar_t>(wideTestString.c_str(), outputBuffer, wideTestString.size()); dumpBuffers<wchar_t>(wideTestString.c_str(), outputBuffer, wideTestString.size());
dumpBuffers<wchar_t>(wideTestString.c_str(), outputBuffer + screenBufferInfo.dwSize.X * 1, wideTestString.size()); dumpBuffers<wchar_t>(wideTestString.c_str(), outputBuffer + screenBufferInfo.dwSize.X * 1, wideTestString.size());
dumpBuffers<wchar_t>(UnicodeInputTestString, outputBuffer + screenBufferInfo.dwSize.X * 2, (sizeof(UnicodeInputTestString) - 1) / sizeof(WCHAR)); dumpBuffers<wchar_t>(UnicodeInputTestString, outputBuffer + screenBufferInfo.dwSize.X * 2, (sizeof(UnicodeInputTestString) - 1) / sizeof(WCHAR));
@ -659,7 +663,8 @@ static int testConsole()
delete[] outputBuffer; delete[] outputBuffer;
} catch (const std::runtime_error &ex) { } catch (const std::runtime_error &ex) {
DWORD lastError = GetLastError(); DWORD lastError = GetLastError();
std::cerr << "In function " << __FUNCTION__ << ":" << ex.what() << std::endl << std::flush; std::cerr << "In function testConsole, line " << __LINE__ << ": "
<< ex.what() << std::endl;
displayError(lastError); displayError(lastError);
} }
finishProcess(didFail == 0); finishProcess(didFail == 0);