Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

What is the difference between impala-py.test and test/run-tests.py?

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.

...

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.