[pypy-svn] r31020 - pypy/dist/pypy/doc/discussion

fijal at codespeak.net fijal at codespeak.net
Sat Aug 5 13:21:00 CEST 2006


Author: fijal
Date: Sat Aug  5 13:20:59 2006
New Revision: 31020

Modified:
   pypy/dist/pypy/doc/discussion/summer-of-pypy-pytest.txt
Log:
Loaded full version of proposal.


Modified: pypy/dist/pypy/doc/discussion/summer-of-pypy-pytest.txt
==============================================================================
--- pypy/dist/pypy/doc/discussion/summer-of-pypy-pytest.txt	(original)
+++ pypy/dist/pypy/doc/discussion/summer-of-pypy-pytest.txt	Sat Aug  5 13:20:59 2006
@@ -13,19 +13,44 @@
 Method:
 =======
 
-XXX: some draft
+Remote imports:
+---------------
 
-- remote import (which I've already implemented)
-- run on session level probably (like RemoteSession)
-- do not run on low level (around `call(*args)`) [previous,
-  Executor approach], because there are problems with displaying and
-  we need everything to get every data.
-- We need to get data on higher level - perform remote import of py lib
-  and run session there (ServerSession or so) to send data to client
-  and get info. Probably more sophisticated stuff such as PDB, or any other
-  input will get run by re-running test on client side (transfering every pdb
-  call seems hard and what if they implement readline-like approach in pdb?)
+On the beggining of communication, master server sends to client
+import hook code, which then can import all needed libraries.
 
-XXX: Remote import, how it works
+Libraries are uploaded server -> client if they're needed (when
+__import__ is called). Possible extension is to add some kind of
+checksum (md5?) and store files in some directory.
 
-Sending data as new files. Possible additions of some kind of checksums.
+Previous experiments:
+---------------------
+
+Previous experiments tried to run on the lowest level - when function/
+method is called. This is pretty clear (you run as few code on client
+side as possible), but has got some drawbacks:
+
+- You must simulate *everything* and transform it to server side in
+  case of need of absolutely anything (tracebacks, short and long,
+  source code etc.)
+- It's sometimes hard to catch exceptions.
+- Top level code in testing module does not work at all.
+
+Possible approach:
+------------------
+
+On client side (side really running tests) run some kind of cut-down
+session, which is imported by remote import at the very beginning and
+after that, we run desired tests (probably by importing whole test
+file which allows us to have top-level imports).
+
+Then we transfer output data to server as string, possibly tweaking
+file names (which is quite easy).
+
+Delivarables:
+=============
+
+- better use of testing machines
+- cut down test time
+- possible extension to run distributed code testing, by running and
+  controlling several distributed parts on different machines.



More information about the Pypy-commit mailing list