[pypy-svn] r20980 - in pypy/dist/pypy: module/_socket/test translator/c/test
nik at codespeak.net
nik at codespeak.net
Fri Dec 9 23:19:33 CET 2005
Author: nik
Date: Fri Dec 9 23:19:32 2005
New Revision: 20980
Added:
pypy/dist/pypy/module/_socket/test/echoserver.py (contents, props changed)
pypy/dist/pypy/translator/c/test/test_ext__socket_conn.py (contents, props changed)
Log:
(ale, nik)
start of a trivial tcp server to use in socket tests. we can't terminate it
gracefully, yet.
Added: pypy/dist/pypy/module/_socket/test/echoserver.py
==============================================================================
--- (empty file)
+++ pypy/dist/pypy/module/_socket/test/echoserver.py Fri Dec 9 23:19:32 2005
@@ -0,0 +1,22 @@
+import SocketServer
+import sys, time
+
+# user-accessible port
+PORT = 8037
+
+class EchoRequestHandler(SocketServer.StreamRequestHandler):
+
+ def handle(self):
+ while True:
+ client_string = ""
+ char = ""
+ while char != "\n":
+ char = self.rfile.read(1)
+ client_string += char
+ if client_string.startswith("shutdown"):
+ sys.exit(1)
+ self.wfile.write(client_string)
+
+if __name__ == "__main__":
+ server = SocketServer.TCPServer(("", PORT), EchoRequestHandler)
+ server.serve_forever()
Added: pypy/dist/pypy/translator/c/test/test_ext__socket_conn.py
==============================================================================
--- (empty file)
+++ pypy/dist/pypy/translator/c/test/test_ext__socket_conn.py Fri Dec 9 23:19:32 2005
@@ -0,0 +1,34 @@
+import autopath
+import py
+import os.path, subprocess, sys
+import _socket
+from pypy.translator.c.test.test_genc import compile
+from pypy.translator.translator import Translator
+
+HOST = "localhost"
+PORT = 8037
+
+def setup_module(mod):
+ import pypy.module._socket.rpython.exttable # for declare()/declaretype()
+ serverpath = os.path.join(autopath.pypydir, "module/_socket/test/echoserver.py")
+ mod.server_pid = subprocess.Popen([sys.executable, serverpath]).pid
+
+def teardown_module(mod):
+ import telnetlib
+ tn = telnetlib.Telnet(HOST, PORT)
+ tn.write("shutdown\n")
+ tn.close()
+
+def DONOT_test_connect():
+ import os
+ from pypy.module._socket.rpython import rsocket
+ def does_stuff():
+ fd = rsocket.newsocket(_socket.AF_INET, _socket.SOCK_STREAM, 0)
+ # XXX need to think of a test without connecting to outside servers
+ rsocket.connect(fd, (HOST, PORT, 0, 0))
+ sockname = rsocket.getpeername(fd)
+ os.close(fd)
+ return sockname[1]
+ f1 = compile(does_stuff, [])
+ res = f1()
+ assert res == PORT
More information about the Pypy-commit
mailing list