impala-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Philip Zeyliger <phi...@cloudera.com>
Subject Re: A test failure at Jenkins build is not reproducible on my local
Date Thu, 16 Nov 2017 04:23:23 GMT
>
>
> Regarding guidance of E2E tests in "How to load and run Impala tests
> <https://cwiki.apache.org/confluence/display/IMPALA/How+
> to+load+and+run+Impala+tests>"
> wiki page, I wish there are more detailed information. Let me put the
> information on the wiki after you answer my question: What is the
> difference between "./test/run-tests.py" and "impala-py.test"?
>

Thank you for volunteering to update the wiki page.

py.test (https://docs.pytest.org/en/latest/) is a framework for writing
tests in Python. It's got a bunch of features.

impala-py.test is a small wrapper that invokes py.test in the right
environment (i.e., from the "virtualenv") and with LD_LIBRARY_PATH updated.
When you're using impala-py.test, you're using py.test's mechanisms.

Meanwhile, test/run-tests.py is a wrapper that invokes py.test a few times.
It uses environment variables for control. Then it executes any "serial"
tests, and then it executes some stress tests, and then, it instructs
py.test to execute the "parallel" tests (those not marked serial or stress)
with a bunch of parallelism. If you plotted your CPU graph while this was
happening, you'd see something like. You can tell where the parallel
testing happens about 3/4 of the way through.
[image: Inline image 1]

To make things even more complicated, there's bin/run-all-tests.sh, which
invokes run-tests.py (but also "mvn test" and the C++ tests), and
buildall.sh, which invokes run-all-tests.sh.

Cheers,

-- Philip

Mime
  • Unnamed multipart/related (inline, None, 0 bytes)
View raw message