Skip to content

test-run always reports a single test status for a test with TAP13 output #386

Open
@ligurio

Description

@ligurio

imagine we have a test with TAP13 output:

[0] ~/sources/MRG/tarantool$ cat test/box-tap/sample.test.lua 
#!/usr/bin/env tarantool

local report = [[
TAP version 13
1..3
ok 1
ok 2
ok 3
]]
print(report)

test-run reports only a single test status, even we have a number testcases in a test:

[0] ~/sources/MRG/tarantool$ ./test/test-run.py box-tap/sample.test.lua 

<snipped>

======================================================================================
WORKR TEST                                            PARAMS          RESULT
---------------------------------------------------------------------------------
[001] box-tap/sample.test.lua                                         [ pass ]
---------------------------------------------------------------------------------
Top 10 tests by occupied memory (RSS, Mb):

(Tests quicker than 0.1 seconds may be missed.)


[0] ~/sources/MRG/tarantool$ ./test/test-run.py box-tap/sample.test.lua --verbose

<snipped>

======================================================================================
WORKR TEST                                            PARAMS          RESULT
---------------------------------------------------------------------------------
[001] box-tap/sample.test.lua                                         
[001] TAP version 13
[001] 1..3
[001] ok 1
[001] ok 2
[001] ok 3
[001] 
[001] [ pass ]
---------------------------------------------------------------------------------
Top 10 tests by occupied memory (RSS, Mb):

(Tests quicker than 0.1 seconds may be missed.)

It would be convenient to report all testcases in test-run output. Especially it would be useful when all TAP13 testcases are passed and some are not, a detailed report will give an overview of the status of testing.

By examples

How output looks now when test is passed
$ ./test/test-run.py box-tap/feedback_daemon.test.lua

<snipped>

Detected build mode: Release

======================================================================================
WORKR TEST                                            PARAMS          RESULT
---------------------------------------------------------------------------------
[001] box-tap/feedback_daemon.test.lua                                [ pass ]
---------------------------------------------------------------------------------
Top 10 tests by occupied memory (RSS, Mb):
*   25.8 box-tap/feedback_daemon.test.lua                             

(Tests quicker than 0.1 seconds may be missed.)

---------------------------------------------------------------------------------
Top 10 longest tests (seconds):
*   0.16 box-tap/feedback_daemon.test.lua                             
---------------------------------------------------------------------------------
Statistics:
* pass: 1
How output looks now when test is failed
Started ./test/test-run.py box-tap/feedback_daemon.test.lua

<snipped>

======================================================================================
WORKR TEST                                            PARAMS          RESULT
---------------------------------------------------------------------------------
[001] box-tap/feedback_daemon.test.lua                                [ fail ]
[001] Test failed! Output from reject file /tmp/t/rejects/box-tap/feedback_daemon.reject:
[001] TAP version 13
[001] 1..31
[001] ok - initial check
[001] ok - feedback received after reload
[001] ok - feedback received after errinj
[001] ok - feedback received after explicit sending
[001] ok - no feedback after disabling
[001] ok - feedback after start
[001] ok - no feedback after stop
[001] ok - feedback after start
[001] ok - feedback after feedback send
[001] ok - file is created
[001] ok - data is equal
[001] ok - feedback contains "os" key
[001] ok - feedback contains "arch" key
[001] ok - feedback contains "cgroup" key
[001] ok - features field is present
[001] ok - schema stats are present
[001] ok - schema stats are empty at the moment
[001]     # features.schema
[001]     1..13
[001]     ok - memtx engine usage gathered
[001]     ok - vinyl engine usage gathered
[001]     ok - temporary space usage gathered
[001]     ok - local space usage gathered
[001]     ok - sync space usage gathered
[001]     ok - tree index gathered
[001]     ok - hash index gathered
[001]     ok - rtree index gathered
[001]     ok - bitset index gathered
[001]     ok - jsonpath index gathered
[001]     ok - jsonpath multikey index gathered
[001]     ok - functional index gathered
[001]     ok - functional multikey index gathered
[001]     # features.schema: end
[001] ok - features.schema
[001] ok - internal cache invalidates when schema changes
[001] ok - on_reload_configuration reported
[001] ok - election_mode option reported
[001] ok - replication_synchro_quorum option reported
[001] ok - memtx_use_mvcc_engine option reported
[001] ok - Time of report generation is correct
[001]     1..27
[001]     ok - DELETE total is reported
[001]     ok - COMMIT total is reported
[001]     ok - SELECT total is reported
[001]     ok - ROLLBACK total is reported
[001]     ok - INSERT total is reported
[001]     ok - EVAL total is reported
[001]     ok - ERROR total is reported
[001]     ok - CALL total is reported
[001]     ok - BEGIN total is reported
[001]     ok - PREPARE total is reported
[001]     ok - REPLACE total is reported
[001]     ok - UPSERT total is reported
[001]     ok - AUTH total is reported
[001]     ok - EXECUTE total is reported
[001]     ok - UPDATE total is reported
[001]     ok - CONNECTIONS total is reported
[001]     ok - CONNECTIONS current is reported
[001]     ok - REQUESTS total is reported
[001]     ok - REQUESTS current is reported
[001]     ok - REQUESTS_IN_PROGRESS total is reported
[001]     ok - REQUESTS_IN_PROGRESS current is reported
[001]     ok - SENT total is reported
[001]     ok - REQUESTS_IN_STREAM_QUEUE total is reported
[001]     ok - REQUESTS_IN_STREAM_QUEUE current is reported
[001]     ok - STREAMS total is reported
[001]     ok - STREAMS current is reported
[001]     ok - RECEIVED total is reported
[001] ok - feedback operation stats
[001] ok - Time of report generation is correct
[001]     1..27
[001]     ok - DELETE total is reported
[001]     ok - COMMIT total is reported
[001]     ok - SELECT total is reported
[001]     ok - ROLLBACK total is reported
[001]     ok - INSERT total is reported
[001]     ok - EVAL total is reported
[001]     ok - ERROR total is reported
[001]     ok - CALL total is reported
[001]     ok - BEGIN total is reported
[001]     ok - PREPARE total is reported
[001]     ok - REPLACE total is reported
[001]     ok - UPSERT total is reported
[001]     ok - AUTH total is reported
[001]     ok - EXECUTE total is reported
[001]     ok - UPDATE total is reported
[001]     ok - CONNECTIONS total is reported
[001]     ok - CONNECTIONS current is reported
How, I suppose, output should look like

<snipped>

======================================================================================
WORKR TEST                                            PARAMS          RESULT
---------------------------------------------------------------------------------
box-tap/feedback_daemon.test.lua                                [ pass ]
box-tap/feedback_daemon.test.lua                                [ pass ]
box-tap/feedback_daemon.test.lua:"initial check"                [ pass ]
box-tap/feedback_daemon.test.lua:"feedback received after re..  [ pass ]
box-tap/feedback_daemon.test.lua:"feedback received after er..  [ pass ]
box-tap/feedback_daemon.test.lua:"feedback received after ex..  [ pass ]
box-tap/feedback_daemon.test.lua:"no feedback after disablin..  [ pass ]
box-tap/feedback_daemon.test.lua:"feedback after start"         [ pass ]
box-tap/feedback_daemon.test.lua:"no feedback after stop"       [ pass ]
box-tap/feedback_daemon.test.lua:"feedback after start"         [ pass ]
box-tap/feedback_daemon.test.lua:"feedback after feedback se..  [ pass ]
box-tap/feedback_daemon.test.lua:"file is created"              [ pass ]
box-tap/feedback_daemon.test.lua:"data is equal"                [ pass ]
box-tap/feedback_daemon.test.lua:"feedback contains "os" key..  [ pass ]
box-tap/feedback_daemon.test.lua:"feedback contains "arch" k..  [ pass ]
box-tap/feedback_daemon.test.lua:"feedback contains "cgroup""   [ pass ]
box-tap/feedback_daemon.test.lua:"features field is present"    [ pass ]
box-tap/feedback_daemon.test.lua:"schema stats are present"     [ pass ]
box-tap/feedback_daemon.test.lua:"schema stats are empty at..   [ pass ]
box-tap/feedback_daemon.test.lua:"features.schema":"memtx en..  [ pass ]
box-tap/feedback_daemon.test.lua:"features.schema":"vinyl en..  [ pass ]
box-tap/feedback_daemon.test.lua:"features.schema":"temporar..  [ pass ]
box-tap/feedback_daemon.test.lua:"features.schema":"local sp..  [ pass ]
box-tap/feedback_daemon.test.lua:"features.schema":"sync spa..  [ pass ]
box-tap/feedback_daemon.test.lua:"features.schema":"tree ind..  [ pass ]
box-tap/feedback_daemon.test.lua:"features.schema":"hash ind..  [ pass ]
box-tap/feedback_daemon.test.lua:"features.schema":"rtree in..  [ pass ]
box-tap/feedback_daemon.test.lua:"features.schema":"bitset i..  [ pass ]
box-tap/feedback_daemon.test.lua:"features.schema":"jsonpath..  [ pass ]
box-tap/feedback_daemon.test.lua:"features.schema":"jsonpath..  [ pass ]
box-tap/feedback_daemon.test.lua:"features.schema":"function..  [ pass ]
box-tap/feedback_daemon.test.lua:"features.schema":"function..  [ pass ]
box-tap/feedback_daemon.test.lua:"internal cache invalidates..  [ pass ]
box-tap/feedback_daemon.test.lua:"on_reload_configuration re..  [ pass ]
box-tap/feedback_daemon.test.lua:"election_mode option repor..  [ pass ]
box-tap/feedback_daemon.test.lua:"replication_synchro_quorum..  [ pass ]
box-tap/feedback_daemon.test.lua:"memtx_use_mvcc_engine opti..  [ pass ]

...

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions