> On March 14, 2013, 9:20 a.m., Philip Harvey wrote:
> > I generally like what you're doing here.
My only real concern is that the tests folder is starting to look rather
complicated. To some extent this is unavoidable. However, I do have some
suggestions about how to mitigate this:
- To my mind, a lot of the pre-existing tests are either integration or system
tests. Therefore, to avoid confusion in discussions, could we always refer to
the new ones as soak tests?
- We have a mixture of -'s and _'s in file and folder names. Personally I'd
prefer us to use -'s throughout.
- I think the apps all relate to soak tests. If so, would you consider
rearranging the folder structure as shown below?
tests
|
+--java (these are integration tests)
|
+--python (these are integration tests too)
|
+--soak-tests
|
+--apps
| |
| +--(I might collapse the "messenger" layer. It seems unnecessary).
|
+--python
|
+--messenger.py
We might even consider creating an integration-tests folder alongside the
soak-tests folder, but I don't think that's essential right now.
The test directory has experienced a bit of "unconstrained" growth, resulting
in what we have today.
>>To my mind, a lot of the pre-existing tests are either integration or system
>>tests.
I think this is more accident than by design. IIRC, the original test/python
directory was intended for unit tests - exercising the APIs and individual
modules (usually) in isolation. Python was chosen as the driving language
because it allowed the tests to be run with both the proton-j and proton-c
implementations "underneath".
Which is fine, but didn't give us enough test coverage (defects slipped
through), or, specifically in the case of the Messenger tests, required the
full stack (engine + driver), plus separate threads (in order to have two
Messengers talk to each other).
> - I think the apps all relate to soak tests. If so, would you consider
> rearranging the folder structure as shown below?
The proposed layout was somewhat 'forced' by the need to leverage the existing
python-based test harness (the proton-test and common.py files). But that
could change - we could put the python harness in a common place, and break out
the test directories in the manner in which you suggest?
I think perhaps we should move this to the proton mailing list.
> On March 14, 2013, 9:20 a.m., Philip Harvey wrote:
> > /proton/trunk/proton-c/CMakeLists.txt, line 220
> > <https://reviews.apache.org/r/9903/diff/1/?file=270187#file270187line220>
> >
> > I'm no CMake guru but using add_subdirectory to refer to a sibling
> > rather than child seems strange to me. Would it be possible to move this
> > line to the top level CMakeLists.txt instead?
Good point - I was just following a (bad) pattern here. I'll give that a go.
> On March 14, 2013, 9:20 a.m., Philip Harvey wrote:
> > /proton/trunk/tests/apps/messenger/python/msgr-recv.py, line 44
> > <https://reviews.apache.org/r/9903/diff/1/?file=270194#file270194line44>
> >
> > Reformat to use two space indentation?
Gah! Never!!! :)
- Kenneth
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/9903/#review17868
-----------------------------------------------------------
On March 13, 2013, 5:19 p.m., Kenneth Giusti wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/9903/
> -----------------------------------------------------------
>
> (Updated March 13, 2013, 5:19 p.m.)
>
>
> Review request for qpid, Rafael Schloming and Justin Ross.
>
>
> Description
> -------
>
> This patch puts the infrastructure in place for system and soak tests as
> described in proton-223.
>
> In summary:
>
> o) it adds a set of simple messenger-based applications for sending a
> receiving messages; implementations done in python and C (for now).
> o) creates a set of python test scripts for driving these tests
>
> Right now I've got a small set of tests that generate traffic between the
> applications and verify that no messages are dropped. These are run as part
> of "ctest", or can be run directly using the python test tool:
>
> ./test/python/proton-test -m system_tests
>
>
> Todo:
>
> 1) I need a Java-based version of the Messenger apps. Other languages are
> desired too, but we need Java for coverage of that implementation.
> 2) Enhance the receivers to explicitly accept messages based on window size.
> 3) More tests - connection scale, link scale, a test that covers proton-131,
> long running traffic tests, etc
> 4) Benchmark tests and related support for gathering throughput and latency.
> 5) Valgrind coverage exists for the C application, but fails for any cross
> language tests. A small set of C-only tests would be useful for valgrind
> tests.
> 6) anything else???
>
>
> This addresses bugs proton-131 and proton-223.
> https://issues.apache.org/jira/browse/proton-131
> https://issues.apache.org/jira/browse/proton-223
>
>
> Diffs
> -----
>
> /proton/trunk/config.sh 1455926
> /proton/trunk/proton-c/CMakeLists.txt 1455926
> /proton/trunk/tests/apps/README.txt PRE-CREATION
> /proton/trunk/tests/apps/messenger/c/CMakeLists.txt PRE-CREATION
> /proton/trunk/tests/apps/messenger/c/msgr-common.h PRE-CREATION
> /proton/trunk/tests/apps/messenger/c/msgr-common.c PRE-CREATION
> /proton/trunk/tests/apps/messenger/c/msgr-recv.c PRE-CREATION
> /proton/trunk/tests/apps/messenger/c/msgr-send.c PRE-CREATION
> /proton/trunk/tests/apps/messenger/python/msgr-recv.py PRE-CREATION
> /proton/trunk/tests/apps/messenger/python/msgr-send.py PRE-CREATION
> /proton/trunk/tests/python/common.py PRE-CREATION
> /proton/trunk/tests/python/proton_tests/common.py 1455926
> /proton/trunk/tests/python/system_tests/__init__.py PRE-CREATION
> /proton/trunk/tests/python/system_tests/messenger.py PRE-CREATION
>
> Diff: https://reviews.apache.org/r/9903/diff/
>
>
> Testing
> -------
>
> The short tests have been added to ctest, only tested on Linux (fedora 17)
> thus far.
>
>
> Thanks,
>
> Kenneth Giusti
>
>