[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