-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/15818/
-----------------------------------------------------------

(Updated Dec. 6, 2013, 5:05 p.m.)


Review request for qpid, Andrew Stitcher, Chug Rolke, Justin Ross, Rafael 
Schloming, and Steve Huston.


Changes
-------

Rebased on latest trunk -r1548596


Bugs: qpid-5307
    https://issues.apache.org/jira/browse/qpid-5307


Repository: qpid


Description (updated)
-------

QPID-5307: Make brokertest.py framework run on Windows, convert some tests.

The brokertest framework is a python unittest framework designed for test
that need to run brokers and other processes. This commit makes the framework
portable to window and converts the following test shell/ps1 scripts to python:

- run_python_tests -> python_tests.py
- run_acl_tests  -> acl_tests.py

Each test module is a set of python unittests, and also an executable script
that runs itself using qpid/python/qpid-python-test.

- No environment setting required, test_env.sh and test_env.ps1 are not 
required.
  (Note they are still useful for working with a build from the command line.)
- Configuration formerly in the test_env scripts is provided in test_config.py
- Only requirement to run test modules is that the current directory:
  - contains a test_config.py script (cmake creates one in build/src/tests)
  - is writable so the tests can create output directories.

Each BrokerTest stores broker logs, data directories, command line, stderr
and stdout of all processes run in <test-module>.tmp/<test-name>.

The framework automaticaly handles shutting down brokers and killing leftover
processes at the end of the test, and verifies that all process exit with the
expected exit status (expectation of running/exit-ok/crash can be set for each
process.)

Some broker tests start a broker and then run other python tests against it
(e.g. pyton_tests runs the tests under qpid/python, acl_tests runs the
pre-existing acl.py tests.) Those sub-tests don't store output on disk so
there's no corresponding directory in the <test-module>.tmp tree.

This is not yet complete, things to do include:

- Generate test_config.py to run tests against a qpid install.

- Tests failing on windows:
  - broker crashes during python_tests.PythonTest.test_run_python_tests
  - acl_tests.AclTests.test_noacl_noauth_deny_create_link assertion fails.
  - ha_tests hang.
  - missing store setup specific to windows stores.

- Broke pre-existing tests that use brokertest: configuration has moved.
  - store.py
  - qpidd_qmfv2_tests.py
  - interlink_tests.py
  - legacystore/python_tests/client_persistence.py
  - legacystore/python_tests/resize.py
  - legacystore/python_tests/store_test.py

- Nested test implementation self.run_test_modules is clunky.
  - confusing reporting of # tests run.
  - tests selection patterns need to include the parent test and the sub-tests.


Diffs (updated)
-----

  /trunk/qpid/cpp/src/tests/CMakeLists.txt 1548596 
  /trunk/qpid/cpp/src/tests/acl.py 1548596 
  /trunk/qpid/cpp/src/tests/acl_tests.py PRE-CREATION 
  /trunk/qpid/cpp/src/tests/brokertest.py 1548596 
  /trunk/qpid/cpp/src/tests/ha_test.py 1548596 
  /trunk/qpid/cpp/src/tests/ha_tests.py 1548596 
  /trunk/qpid/cpp/src/tests/python_tests.py PRE-CREATION 
  /trunk/qpid/cpp/src/tests/run_acl_tests 1548596 
  /trunk/qpid/cpp/src/tests/run_acl_tests.ps1 1548596 
  /trunk/qpid/cpp/src/tests/test_config.py.in PRE-CREATION 
  /trunk/qpid/python/qpid-python-test 1548596 

Diff: https://reviews.apache.org/r/15818/diff/


Testing
-------

ha_tests.py passing


Thanks,

Alan Conway

Reply via email to