Test for xreadline.
diff --git a/Lib/test/test_xreadline.py b/Lib/test/test_xreadline.py
new file mode 100644
index 0000000..84f7ba4
--- /dev/null
+++ b/Lib/test/test_xreadline.py
@@ -0,0 +1,42 @@
+from test_support import verbose
+
+class XReader:
+	def __init__(self):
+		self.count = 5
+
+	def readlines(self, sizehint = None):
+		self.count = self.count - 1
+		return map(lambda x: "%d\n" % x, range(self.count))
+
+class Null: pass
+
+import xreadlines
+
+
+lineno = 0
+
+try:
+	xreadlines.xreadlines(Null())[0]
+except AttributeError, detail:
+	print "AttributeError"
+else:
+	print "Did not throw attribute error"
+
+try:
+	xreadlines.xreadlines(XReader)[0]
+except TypeError, detail:
+	print "TypeError"
+else:
+	print "Did not throw type error"
+
+try:
+	xreadlines.xreadlines(XReader())[1]
+except RuntimeError, detail:
+	print "RuntimeError", detail
+else:
+	print "Did not throw runtime error"
+
+xresult = ['0\n', '1\n', '2\n', '3\n', '0\n', '1\n', '2\n', '0\n', '1\n', '0\n']
+for line in xreadlines.xreadlines(XReader()):
+	if line != xresult[lineno]: print "line %d differs" % lineno
+	lineno = lineno + 1