You can probably rewrite foo.pl like this:

sub foo { # original foo.pl code here return "all right"; } foo() unless defined caller(); # call foo() unless require'd

And then in your tests do something like

# Test::More style used.... use Test::More tests => 1; require "foo.pl"; is(foo(),"all right","Foo() executed normally")
Update: You'll probably not want everything in the foo() function, just the stuff that's needed to set up the gui.

For instance, the run loop will probably be set up by the test module (but I'm only guessing, I've never used the Gtk test modules).

Update 2:: Actually, most of the above is wrong. It will give you some hints on how to solve your problem, though. I'm going to eat something now.

Joost.


In reply to Re: Re: Re: Including a Gtk2 app in a Test by Joost
in thread Including a Gtk2 app in a Test by mutated

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.