Re: Strategy for unit testing GTK+ applications in C



you also might want to have a look at google test. at first glance, it seems to satisfy your needs:

http://en.wikipedia.org/wiki/Google_Test

On Sat, May 16, 2015 at 4:45 AM, John Tall <mjtallx gmail com> wrote:
Hello.

I'm about to start working on a new GTK+ application that will be
written in C. I want to use unit tests, probably the GTest APIs from
GLib.

I've used the GTest APIs before when building a library. What I did
then was that I put all the source code for the library in one
directory, all unit tests in another directory. Using Automake I built
each unit test as a standalone program that linked to the library, and
could just run each unit test to test the library.

This time however I'm building an application, so it will already have
its own main routine. I can't link my unit tests to the application
because that would give me two main routines, the main entry point of
the application and the main entry point of the unit test. So my
question is how to construct the application so that I can test it
with unit tests?

My first thought was to just build the entire application as a library
and link the unit tests with it, then all I would need for the actual
application would be a separate program that just creates an instance
of my GtkApplication subclass and runs it. It would be small enough
that it doesn't need any unit tests, and I could even link it
statically when installing the program.

This sounds to me like the perfect solution, but I haven't found other
applications that follows the same approach. I would therefore like to
ask if this is a good idea or if there are better ways to do this?
Especially if there are good examples from existing applications that
I could look at that would be very useful.

John
_______________________________________________
gtk-list mailing list
gtk-list gnome org
https://mail.gnome.org/mailman/listinfo/gtk-list



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]