/t/core_timer.t
http://github.com/PerlGameDev/SDL · Perl · 66 lines · 51 code · 14 blank · 1 comment · 4 complexity · 91d4821cd3f261d191d4293e9560b468 MD5 · raw file
- #!/usr/bin/perl -w
- BEGIN { # http://wiki.cpantesters.org/wiki/CPANAuthorNotes
- use Config;
- if ( !$Config{'useithreads'} ) {
- print("1..0 # Skip: Perl not compiled with 'useithreads'\n");
- exit(0);
- }
- }
- use threads;
- use threads::shared;
- use strict;
- use warnings;
- use SDL;
- use Test::More;
- use SDL::Time;
- use Config;
- use lib 't/lib';
- use SDL::TestTool;
- if ( !SDL::TestTool->init(SDL_INIT_TIMER) ) {
- plan( skip_all => 'Failed to init timer' );
- } else {
- plan( tests => 6 );
- }
- my @done = qw/get_ticks
- delay/;
- my $before = SDL::get_ticks();
- like( $before, qr/^\d+$/, '[get_ticks] returns a number' );
- SDL::delay(250);
- my $after = SDL::get_ticks();
- like( $after, qr/^\d+$/, '[get_ticks] returns a number again' );
- my $diff = $after - $before;
- ok( $diff > 100 && $diff < 400, '[delay](250) delayed for ' . $diff . 'ms' );
- my $fired : shared = 0;
- sub fire { $fired++; return 100 }
- my $id = SDL::Time::add_timer( 101, 'main::fire' );
- sleep(2);
- is( SDL::Time::remove_timer($id), 1, "[remove_timer] removed $id timer" );
- isnt( $fired, 0, '[add_timer] ran ' . $fired );
- my @left = qw/set_timer new_timer_callback add_timer remove_timer/;
- my $why =
- '[Percentage Completion] '
- . int( 100 * ( $#done + 1 ) / ( $#done + $#left + 2 ) )
- . "\% implementation. "
- . ( $#done + 1 ) . " / "
- . ( $#done + $#left + 2 );
- TODO:
- {
- local $TODO = $why;
- pass "\nThe following functions:\n" . join ",", @left;
- }
- print "$why\n";
- sleep(2);