diff --git a/Lib/io.py b/Lib/io.py
index 4d46b47..4c9ddbb 100644
--- a/Lib/io.py
+++ b/Lib/io.py
@@ -300,17 +300,23 @@
 
     def readline(self, limit: int = -1) -> bytes:
         """For backwards compatibility, a (slowish) readline()."""
+        if hasattr(self, "peek"):
+            def nreadahead():
+                readahead = self.peek(1, unsafe=True)
+                if not readahead:
+                    return 1
+                n = (readahead.find(b"\n") + 1) or len(readahead)
+                if limit >= 0:
+                    n = min(n, limit)
+                return n
+        else:
+            def nreadahead():
+                return 1
         if limit is None:
             limit = -1
         res = bytes()
         while limit < 0 or len(res) < limit:
-            readahead = self.peek(1, unsafe=True)
-            if not readahead:
-                break
-            n = (readahead.find(b"\n") + 1) or len(readahead)
-            if limit >= 0:
-                n = min(n, limit)
-            b = self.read(n)
+            b = self.read(nreadahead())
             if not b:
                 break
             res += b
diff --git a/runtests.sh b/runtests.sh
index 5a03b0a..c90460e 100755
--- a/runtests.sh
+++ b/runtests.sh
@@ -27,7 +27,7 @@
 # Compute the list of tests to run.
 case $# in
 0) 
-    TESTS=`(cd Lib/test; ls test_*.py | sed 's/\.py//' | grep -v  test_socket)`
+    TESTS=`(cd Lib/test; ls test_*.py | sed 's/\.py//')`
     ;;
 *)
     TESTS="$@"
