gnash-commit
[Top][All Lists]
Advanced

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

[Gnash-commit] gnash ChangeLog testsuite/MovieTester.cpp tests...


From: Sandro Santilli
Subject: [Gnash-commit] gnash ChangeLog testsuite/MovieTester.cpp tests...
Date: Mon, 17 Dec 2007 11:12:10 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Sandro Santilli <strk>  07/12/17 11:12:10

Modified files:
        .              : ChangeLog 
        testsuite      : MovieTester.cpp MovieTester.h 
        testsuite/misc-ming.all: intervalTestRunner.cpp 

Log message:
        Use a predictable manual clock in MovieTester

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.5191&r2=1.5192
http://cvs.savannah.gnu.org/viewcvs/gnash/testsuite/MovieTester.cpp?cvsroot=gnash&r1=1.61&r2=1.62
http://cvs.savannah.gnu.org/viewcvs/gnash/testsuite/MovieTester.h?cvsroot=gnash&r1=1.34&r2=1.35
http://cvs.savannah.gnu.org/viewcvs/gnash/testsuite/misc-ming.all/intervalTestRunner.cpp?cvsroot=gnash&r1=1.10&r2=1.11

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.5191
retrieving revision 1.5192
diff -u -b -r1.5191 -r1.5192
--- ChangeLog   17 Dec 2007 11:09:15 -0000      1.5191
+++ ChangeLog   17 Dec 2007 11:12:09 -0000      1.5192
@@ -1,5 +1,13 @@
 2007-12-17 Sandro Santilli <address@hidden>
 
+       * testsuite/MovieTester.{cpp,h}: use a manual clock, to make
+         time predictable. Expose an additional advanceClock method
+         to control it (one way)
+       * testsuite/misc-ming.all/intervalTestRunner.cpp: use advanceClock
+         instead of unpredictable usleep() calls.
+
+2007-12-17 Sandro Santilli <address@hidden>
+
        * testsuite/actionscript.all/case.as: fix testcase, add test for
          .length.
 

Index: testsuite/MovieTester.cpp
===================================================================
RCS file: /sources/gnash/gnash/testsuite/MovieTester.cpp,v
retrieving revision 1.61
retrieving revision 1.62
diff -u -b -r1.61 -r1.62
--- testsuite/MovieTester.cpp   7 Dec 2007 15:34:37 -0000       1.61
+++ testsuite/MovieTester.cpp   17 Dec 2007 11:12:09 -0000      1.62
@@ -57,8 +57,7 @@
 
 MovieTester::MovieTester(const std::string& url)
        :
-       _forceRedraw(true),
-       _clock(new SystemClock()) // TODO: use a manual clock
+       _forceRedraw(true)
 {
 
        // Initialize gnash code lib
@@ -89,7 +88,7 @@
        // Initialize the sound handler(s)
        initTestingSoundHandlers();
 
-       _movie_root = &(VM::init(*_movie_def, *_clock).getRoot());
+       _movie_root = &(VM::init(*_movie_def, _clock).getRoot());
 
        // Initialize viewport size with the one advertised in the header
        _width = unsigned(_movie_def->get_width_pixels());
@@ -203,8 +202,22 @@
 }
 
 void
-MovieTester::advance()
+MovieTester::advanceClock(unsigned long ms)
 {
+       _clock.advance(ms);
+}
+
+void
+MovieTester::advance(bool updateClock)
+{
+       if ( updateClock )
+       {
+               // TODO: cache 'clockAdvance' 
+               float fps = _movie_def->get_frame_rate();
+               unsigned long clockAdvance = long(1000/fps);
+               advanceClock(clockAdvance);
+       }
+
        _movie_root->advance(1.0);
 
        render();

Index: testsuite/MovieTester.h
===================================================================
RCS file: /sources/gnash/gnash/testsuite/MovieTester.h,v
retrieving revision 1.34
retrieving revision 1.35
diff -u -b -r1.34 -r1.35
--- testsuite/MovieTester.h     7 Dec 2007 15:34:37 -0000       1.34
+++ testsuite/MovieTester.h     17 Dec 2007 11:12:09 -0000      1.35
@@ -107,7 +107,14 @@
        MovieTester(const std::string& filespec);
 
        /// Advance the movie by one frame
-       void advance();
+       //
+       /// @param updateClock
+       ///     If true (the default), this method also
+       ///     advances the clock by the nominal delay expected
+       ///     between frame advancements before performing the
+       ///     actual playhead advancement.
+       ///
+       void advance(bool updateClock=true);
 
        /// Advance the clock by the given amount of milliseconds
        void advanceClock(unsigned long ms);
@@ -326,7 +333,8 @@
 
        /// Virtual clock to use to let test runners
        /// control time flow
-       std::auto_ptr<VirtualClock> _clock;
+       ManualClock _clock;
+       //std::auto_ptr<VirtualClock> _clock;
 };
 
 } // namespace gnash

Index: testsuite/misc-ming.all/intervalTestRunner.cpp
===================================================================
RCS file: /sources/gnash/gnash/testsuite/misc-ming.all/intervalTestRunner.cpp,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- testsuite/misc-ming.all/intervalTestRunner.cpp      1 Dec 2007 00:15:01 
-0000       1.10
+++ testsuite/misc-ming.all/intervalTestRunner.cpp      17 Dec 2007 11:12:09 
-0000      1.11
@@ -53,6 +53,7 @@
        check_equals(root->get_current_frame(), 0);
        check_equals(root->get_play_state(), sprite_instance::PLAY);
 
+       tester.advanceClock(50); // "sleep" 50 milliseconds
        tester.advance(); // execute actions in second frame frame
 
        check_equals(root->get_current_frame(), 1);
@@ -66,49 +67,56 @@
        root->get_member(st.find("that_counter"), &tmp);
        check_equals(tmp.to_number(), 0);
 
-       usleep(500000); tester.advance(); // run expired timers
+       tester.advanceClock(500); // "sleep" 500 milliseconds
+       tester.advance(); // run expired timers
 
        root->get_member(st.find("this_counter"), &tmp);
        check_equals(tmp.to_number(), 1);
        root->get_member(st.find("that_counter"), &tmp);
        check_equals(tmp.to_number(), 0);
 
-       usleep(500000); tester.advance(); // run expired timers
+       tester.advanceClock(600); // "sleep" 500 milliseconds
+       tester.advance(); // run expired timers
 
        root->get_member(st.find("this_counter"), &tmp);
        check_equals(tmp.to_number(), 2);
        root->get_member(st.find("that_counter"), &tmp);
        check_equals(tmp.to_number(), 1);
 
-       usleep(500000); tester.advance(); // run expired timers
+       tester.advanceClock(500); // "sleep" 500 milliseconds
+       tester.advance(); // run expired timers
 
        root->get_member(st.find("this_counter"), &tmp);
        check_equals(tmp.to_number(), 3);
        root->get_member(st.find("that_counter"), &tmp);
        check_equals(tmp.to_number(), 1);
 
-       usleep(500000); tester.advance(); // run expired timers
+       tester.advanceClock(520); // "sleep" 520 milliseconds
+       tester.advance(); // run expired timers
 
        root->get_member(st.find("this_counter"), &tmp);
        check_equals(tmp.to_number(), 4);
        root->get_member(st.find("that_counter"), &tmp);
        check_equals(tmp.to_number(), 2);
 
-       usleep(1000000); tester.advance(); // run expired timers
+       tester.advanceClock(1020); // "sleep" 1020 milliseconds
+       tester.advance(); // run expired timers
 
        root->get_member(st.find("this_counter"), &tmp);
        check_equals(tmp.to_number(), 4);
        root->get_member(st.find("that_counter"), &tmp);
        check_equals(tmp.to_number(), 3);
 
-       usleep(1000000); tester.advance(); // run expired timers
+       tester.advanceClock(1020); // "sleep" 1020 milliseconds
+       tester.advance(); // run expired timers
 
        root->get_member(st.find("this_counter"), &tmp);
        check_equals(tmp.to_number(), 4);
        root->get_member(st.find("that_counter"), &tmp);
        check_equals(tmp.to_number(), 4);
 
-       usleep(500000); tester.advance(); // run expired timers
+       tester.advanceClock(520); // "sleep" 520 milliseconds
+       tester.advance(); // run expired timers
 
        root->get_member(st.find("this_counter"), &tmp);
        check_equals(tmp.to_number(), 5);




reply via email to

[Prev in Thread] Current Thread [Next in Thread]