summaryrefslogtreecommitdiff
path: root/adb/sysdeps_win32_test.cpp
diff options
context:
space:
mode:
authorJosh Gao <jmgao@google.com>2016-12-05 13:15:55 -0800
committerJosh Gao <jmgao@google.com>2016-12-05 13:15:55 -0800
commit43c02b27cd50a75f0fecb44e56a9bf32c6923aef (patch)
tree190fcea98aed75dabc9200985431eafc1c97236d /adb/sysdeps_win32_test.cpp
parent97e228e903518dd77e88d0e82a6ee9fee6e0c553 (diff)
Revert "adb: move adb_strerror to sysdeps/win32/errno.cpp."
This reverts commit 4fba3d2638ecec0f87fe8d8913490bfbd7234d19.
Diffstat (limited to 'adb/sysdeps_win32_test.cpp')
-rwxr-xr-xadb/sysdeps_win32_test.cpp30
1 files changed, 30 insertions, 0 deletions
diff --git a/adb/sysdeps_win32_test.cpp b/adb/sysdeps_win32_test.cpp
index 529b21215a..c3a3fd7c17 100755
--- a/adb/sysdeps_win32_test.cpp
+++ b/adb/sysdeps_win32_test.cpp
@@ -70,6 +70,36 @@ TEST(sysdeps_win32, adb_getenv) {
}
}
+void TestAdbStrError(int err, const char* expected) {
+ errno = 12345;
+ const char* result = adb_strerror(err);
+ // Check that errno is not overwritten.
+ EXPECT_EQ(12345, errno);
+ EXPECT_STREQ(expected, result);
+}
+
+TEST(sysdeps_win32, adb_strerror) {
+ // Test an error code that should not have a mapped string. Use an error
+ // code that is not used by the internal implementation of adb_strerror().
+ TestAdbStrError(-2, "Unknown error");
+ // adb_strerror() uses -1 internally, so test that it can still be passed
+ // as a parameter.
+ TestAdbStrError(-1, "Unknown error");
+ // Test very big, positive unknown error.
+ TestAdbStrError(1000000, "Unknown error");
+
+ // Test success case.
+ // Wine returns "Success" for strerror(0), Windows returns "No error", so accept both.
+ std::string success = adb_strerror(0);
+ EXPECT_TRUE(success == "Success" || success == "No error") << "strerror(0) = " << success;
+
+ // Test error that regular strerror() should have a string for.
+ TestAdbStrError(EPERM, "Operation not permitted");
+ // Test error that regular strerror() doesn't have a string for, but that
+ // adb_strerror() returns.
+ TestAdbStrError(ECONNRESET, "Connection reset by peer");
+}
+
TEST(sysdeps_win32, unix_isatty) {
// stdin and stdout should be consoles. Use CONIN$ and CONOUT$ special files
// so that we can test this even if stdin/stdout have been redirected. Read