diff --git a/adb/adb_utils_test.cpp b/adb/adb_utils_test.cpp
index f1ebaa1304fea62a0f2e7fa8a6229b892351c2f0..d5c33d36fd8e6388137b6c58351cbc94a4da9954 100644
--- a/adb/adb_utils_test.cpp
+++ b/adb/adb_utils_test.cpp
@@ -52,25 +52,35 @@ TEST(adb_utils, directory_exists) {
 
   ASSERT_TRUE(directory_exists(profiles_dir));
 
+  ASSERT_FALSE(directory_exists(subdir(profiles_dir, "does-not-exist")));
+#else
+  ASSERT_TRUE(directory_exists("/proc"));
+  ASSERT_FALSE(directory_exists("/proc/self")); // Symbolic link.
+  ASSERT_FALSE(directory_exists("/proc/does-not-exist"));
+#endif
+}
+
+#if defined(_WIN32)
+TEST(adb_utils, directory_exists_win32_symlink_junction) {
+  char profiles_dir[MAX_PATH];
+  DWORD cch = arraysize(profiles_dir);
+
+  // On typical Windows 7, returns C:\Users
+  ASSERT_TRUE(GetProfilesDirectoryA(profiles_dir, &cch));
+
   // On modern (English?) Windows, this is a directory symbolic link to
   // C:\ProgramData. Symbolic links are rare on Windows and the user requires
   // a special permission (by default granted to Administrative users) to
   // create symbolic links.
-  ASSERT_FALSE(directory_exists(subdir(profiles_dir, "All Users")));
+  EXPECT_FALSE(directory_exists(subdir(profiles_dir, "All Users")));
 
   // On modern (English?) Windows, this is a directory junction to
   // C:\Users\Default. Junctions are used throughout user profile directories
   // for backwards compatibility and they don't require any special permissions
   // to create.
-  ASSERT_FALSE(directory_exists(subdir(profiles_dir, "Default User")));
-
-  ASSERT_FALSE(directory_exists(subdir(profiles_dir, "does-not-exist")));
-#else
-  ASSERT_TRUE(directory_exists("/proc"));
-  ASSERT_FALSE(directory_exists("/proc/self")); // Symbolic link.
-  ASSERT_FALSE(directory_exists("/proc/does-not-exist"));
-#endif
+  EXPECT_FALSE(directory_exists(subdir(profiles_dir, "Default User")));
 }
+#endif
 
 TEST(adb_utils, escape_arg) {
   ASSERT_EQ(R"('')", escape_arg(""));