The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.
# general subroutines for this test suite

# $Id: TESTsetup 1.1 Wed, 26 Nov 1997 00:33:07 +0100 ach $

# set test $::verbose equal
#	1	print infos and carp on failure

$| = 1;

use Tk;
use strict;
use vars '$mw';
use Carp;

{ # start for private lexicals :-)

my $counter = 0;
my $mw;
my $msg;
my $bye;

sub ok ($) {
    my ($bool) = @_;
    $mw->idletasks();
    $counter++;
    carp "\n" if not $bool and $::verbose;
    print $bool ? '' : 'not ', "ok $counter\n";
    $bool;
}

sub testarea {
    my $num = shift;
    print "1..$num\n";
    $mw = MainWindow->new();
    $mw->title($0);
    $mw->iconname($0);
    $mw->protocol('WM_DELETE_WINDOW' => sub {$mw->destroy});

    my $work = $mw->Frame(-width=>4,-height=>4,-borderwidth=>2,-relief=>'sunken')
	->pack(-fill=>'both', -expand=>'yes');

    if (@ARGV) {
	$msg = $mw->Entry(-width=> 20)->pack();
	$msg->insert(0,'Running...');
	$bye = $mw->Button(-text=>'Exit', -command=>sub{$mw->destroy})->pack;
    }
    $work;
};

sub testend {
     print "# Done\n";
     if (@ARGV) {
         $msg->delete(0,'end');
         $msg->insert(0,'All tests done.');
         $bye->focus;
         MainLoop;
     }
}

sub testprint { print @_; }

} # end of private lexicals :-)
1;
__END__