From: Daniel Pittman <[email protected]> This code depended on the time written by the configurer, and Time.now about half a dozen lines later, being the same integer value. This would work almost all the time, because our code is pretty fast, but can race.
We now capture the time on both sides of the call, and verify that the emitted time was in that range; this actually tests the whole purpose much better, and more thoroughly. Reviewed-by: Paul Berry <[email protected]> --- spec/integration/configurer_spec.rb | 7 ++++++- 1 files changed, 6 insertions(+), 1 deletions(-) diff --git a/spec/integration/configurer_spec.rb b/spec/integration/configurer_spec.rb index 825b632..05b3d61 100755 --- a/spec/integration/configurer_spec.rb +++ b/spec/integration/configurer_spec.rb @@ -50,7 +50,12 @@ describe Puppet::Configurer do Puppet[:lastrunfile] = tmpfile("lastrunfile") Puppet[:report] = true + # We only record integer seconds in the timestamp, and truncate + # backwards, so don't use a more accurate timestamp in the test. + # --daniel 2011-03-07 + t1 = Time.now.tv_sec @configurer.run :catalog => @catalog, :report => report + t2 = Time.now.tv_sec summary = nil File.open(Puppet[:lastrunfile], "r") do |fd| @@ -62,7 +67,7 @@ describe Puppet::Configurer do summary.should be_key(key) end summary["time"].should be_key("notify") - summary["time"]["last_run"].should >= Time.now.tv_sec + summary["time"]["last_run"].should be_between(t1, t2) end end end -- 1.7.4.1 -- You received this message because you are subscribed to the Google Groups "Puppet Developers" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/puppet-dev?hl=en.
