[prev in list] [next in list] [prev in thread] [next in thread]
List: gtk-devel
Subject: Re: Gtk+ unit tests (brainstorming)
From: Tim Janik <timj () imendio ! com>
Date: 2006-10-30 14:34:32
Message-ID: Pine.LNX.4.62.0610301527400.25336 () master ! birnet ! private
[Download RAW message or body]
On Wed, 25 Oct 2006, Havoc Pennington wrote:
> Hi,
>
> When coding dbus I thought I'd try a project with a focus on unit tests.
> It has (or at least had for a while) exceptionally high test coverage,
> around 75% of basic blocks executed in make check. The coverage-analyzer
> has been busted for a couple years though.
>
> Here are my thoughts from dbus:
>
> - the "make coverage-report" was by far the biggest win I spent time
> on.
ah, interesting. could you please explain why you consider it
such a big win?
> - frequently I needed to add extra interfaces or levels of
> abstraction to be able to test effectively. For example,
> allowing "dummy" implementations of dependency
> module to be inserted underneath a module I was testing.
>
> dbus is heavily conditionalized on a DBUS_BUILD_TESTS
> parameter, which allows adding all kinds of test-only code
> without fear of bloating the production version. One price
> of this is that the tested lib is slightly different from the
> production lib.
ah, good to know. though i'd consider that price considerably high for a
project of the size and build time of Gtk+, and where we'd really benefit
from having *many* developers and contributors run make check.
especially, when you have a quite large legacy code base, instead of
developing with conditionalized test hooks from the start.
> - based on how nautilus does unit tests, I put the tests in the file
> with the code being tested. The rationale is similar to the
> rationale for inline documentation. I think it's a good approach,
> but it does require a distinct "test build" (DBUS_BUILD_TESTS).
sounds interesting as well. the downsize is of course the assorted
file growth, and gtk+ already isn't a particularly good citizen in
terms of loc per file ;)
$ wc -l *.c | sort -r | head
380899 total
14841 gtktreeview.c
11360 gtkaliasdef.c
9154 gtkiconview.c
8764 gtkfilechooserdefault.c
8632 gtktextview.c
8060 gtkwidget.c
> Another advantage of this is that internal code can be tested, while
> it may not be possible to fully exercise internal code using the
> public API.
thanks for your insight havoc. i'll definitely look into the coverage
report generation at some later point.
> Havoc
---
ciaoTJ
_______________________________________________
gtk-devel-list mailing list
gtk-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-devel-list
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic