teemtee / tmt

Test Management Tool
MIT License
82 stars 123 forks source link

tmt test import failing on some makefiles #1127

Open sbertramrh opened 2 years ago

sbertramrh commented 2 years ago

If the makefile does not follow below structure for run entry it fails. run: build ./runtest.sh

Attached are examples and hopefully all occurrences of this in /kernel repo. kernel.txt

List was created using the following:

find . -name Makefile -exec grep -A 2 "run: build" {} \; -print > ~/kernel.txt

So every fourth line contains the location of the Makefile relative to /kernel.

lukaszachy commented 2 years ago

Could you try with latest copr build? If it was about missing 'build' target it will be fixed. If not, we have more bugs to fix in convert.

juk commented 2 years ago

Some Makefiles fail to import due to a "run" target is more then two lines, ex

run: build
    @echo "============ Run Tests ============"
    LANG=C ./runtest.sh

The matching regex expects two lines: regex_test = r'^run:.*\n\t(.*)$'

thrix commented 1 year ago

@lukaszachy so is the expectation here that the automatic imported adds both build and run target scripts?

I would think in cases like this manual import is needed, not complicate our lives

lukaszachy commented 1 year ago

@thrix Expectation is that if Makefile deviates from the simplest beaker-wizard produced Makefile (e.g. multiple lines in run target) then tmt warns user but leaves it up to them.

The linked PR just make import continue when someone deleted 'build' target. At the second look it is a unused code (the only usage is to produce the warning when multiple lines are present in the target).