# File gstreamer/tests/tc_clock.rb, line 80 def test_timer_sync ret_codes = [ Gst::Clock::STOPPED, Gst::Clock::TIMEOUT, Gst::Clock::EARLY, Gst::Clock::ERROR, Gst::Clock::UNSUPPORTED ] clock = Gst::SystemClock.obtain assert_instance_of(Gst::Clock, clock) # one shot clock.reset! clock.active = true id = Gst::ClockEntry.new(clock, 2 * Gst::SECOND) assert id.single_shot? assert !id.periodic? assert_equal(2 * Gst::SECOND, id.time) #assert_equal(0, id.interval) # does not work yet, see below assert_equal(clock, id.clock) [ 2, 0, 0, 0 ].each do |desired_interval| now = Time.now.to_i assert ret_codes.include?(c = id.wait) elapsed = Time.now.to_i - now assert_equal(desired_interval, elapsed) end # periodic (does not work yet, because of 'interval' bug. # http://bugzilla.gnome.org/show_bug.cgi?id=121015 # clock.reset! # clock.active = true # id = Gst::ClockEntry.new(clock, 1 * Gst::SECOND, 2 * Gst::SECOND) # assert id.periodic? # assert !id.single_shot? # assert_equal(2 * Gst::SECOND, id.time) # assert_equal(1 * Gst::SECOND, id.interval) # assert_equal(clock, id.clock) # [ 2, 2 ].each do |desired_interval| # now = Time.now.to_i # assert ret_codes.include?(c = id.wait) # elapsed = Time.now.to_i - now # assert_equal(desired_interval, elapsed) # end end