Gcov coverage tool issue

0

Hej,

Mam pytanie do osób które miały styczność z toolem gcov. Od pewnego momentu używam nowszej wersji tego toola 5.2.0 dla architektury 64 bitowej i tutaj pojawił się pewien problem otóz:
Dla przykładowego kodu:

doSomethink(x,
                    y,
                    z);

W wersji wcześniejszej(32 bity) w przypadku braku pokrycia dostałem w wyniku jedno "0", natomiast teraz dla 64 bitow dostaje trzy "0" dla każdej linijki osobno - mówie tu o line coveragu. Nie wiem dlaczego tak się dzieje, bo gdy ustawie przekazywane argumenty w jednej linijce to wtedy jest ok i dostaje informacje o jednej nie pokrytej linijce. Dlaczego zmiana formatu wpływa na pokryci, skoro tak naprawdę jest to jedno wywołanie, czy coś się zmieniło w wersji 5.2.0 ?

Z góry dziękuje za każda pomoc!

0

To raczej zasługa kompilatora.
To on definiuje, gdzie jest linijka kodu, a gdzie nie.

Pytanie też, co masz pod x y z.
Jeśli tam następują jakieś czynności (np konwersje, wywołanie innych funkcji, trenery operator), to takie zachowanie kompilatora jest wysoce wskazane.
Chciałbym móc łatwo debugować ewaluację argumentów.

0

Tak właśnie przypuszczam że to kompilator A przekjazywane są tam zwykle zmienne int. Czy jest na to jakieś rozwiązanie ?

0

Jest. "Nie dzielić włosa na czworo".
gcov ma pokazać co należy jeszcze przetestować, a ta różnica nic w tej materii nie zmienia.
Zamiast ci pokazać pokrycie 66% pokaże 65%, no i co z tego?
Patrz na pozytywy, jak pokryjesz testami to będzie sytuacja odwrotna zamiast 66% pokaże 67%.

0

Nie do końca się z tym zgadzam bo teraz wystarczy zmienić format kodu żeby dostać lepszy wynik pokrycia co by oznaczało że jest luka dzięki której można kombinowac z pokryciem kodu A nie może to zależeć od formatu W jakim piszemy musi to być elastyczne. Spoko jak mamy prosty kod A co w przypadku wielkich projektów

0

Skupiasz się na nieistotnych detalach.
Co te parę linijek zmienia? Zmienia to istotnie ocenę jakości kodu lub pokrycia testami? NIE!
Jedynie co się zmienia to statystyki i to o ułamki procent. Jeśli się będziesz skupiał na takich pierdołach jak ułamek procenta w statystykach, to pewnie wyrośnie z ciebie upierdliwy menadżer.

0

Jeżeli masz wymagania że pokrycie ma wynosić konkretna wartość to dzięki odpowiedniemu formatowaniu przez to możesz zmienić pokrycie nie o 0.1% ale nawet o 20 % na swoją korzyść tak żeby tylko przeszło. Radzę przerobić sobie prosty przykład na krótkim kodzie i dopiero zrozumiesz sens. Natomiast moje pytanie dotyczyło czy da się to zmienić i czy jest to wina kompilatora, a nie porady na życie

1 użytkowników online, w tym zalogowanych: 0, gości: 1