[Top][All Lists]
[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);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gnash-commit] gnash ChangeLog testsuite/MovieTester.cpp tests...,
Sandro Santilli <=