From 9a1c3b5ad48a254ff2a6becc72f54feb37bb3de1 Mon Sep 17 00:00:00 2001 From: Daniel Pittman Date: Mon, 7 Mar 2011 18:44:28 -0800 Subject: maint: spec/integration/configurer has races in time checking. 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 --- spec/integration/configurer_spec.rb | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/spec/integration/configurer_spec.rb b/spec/integration/configurer_spec.rb index 825b6322e..05b3d6146 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 -- cgit