bpo-33660: Fix PosixPath to resolve a relative path on root
diff --git a/Lib/pathlib.py b/Lib/pathlib.py
index 9f5e27b..babc443 100644
--- a/Lib/pathlib.py
+++ b/Lib/pathlib.py
@@ -329,7 +329,10 @@
                     # parent dir
                     path, _, _ = path.rpartition(sep)
                     continue
-                newpath = path + sep + name
+                if path.endswith(sep):
+                    newpath = path + name
+                else:
+                    newpath = path + sep + name
                 if newpath in seen:
                     # Already seen this path
                     path = seen[newpath]
diff --git a/Lib/test/test_pathlib.py b/Lib/test/test_pathlib.py
index 04f7c3d..2cb6738 100644
--- a/Lib/test/test_pathlib.py
+++ b/Lib/test/test_pathlib.py
@@ -2349,6 +2349,15 @@
         st = os.stat(join('other_new_file'))
         self.assertEqual(stat.S_IMODE(st.st_mode), 0o644)
 
+    def test_resolve_root(self):
+        current_directory = os.getcwd()
+        try:
+            os.chdir('/')
+            p = self.cls('spam')
+            self.assertEqual(str(p.resolve()), '/spam')
+        finally:
+            os.chdir(current_directory)
+
     def test_touch_mode(self):
         old_mask = os.umask(0)
         self.addCleanup(os.umask, old_mask)