Modifying the corruption-checking test.
It is now more likely to fail if there's a problem, since the yaml should be corrupt, causing a yaml failure. Also removing the equivalent test from the Storage module. Signed-off-by: Luke Kanies <luke@madstop.com>
This commit is contained in:
Родитель
1f34bcac62
Коммит
b966ea02a9
|
@ -11,7 +11,7 @@ describe Puppet::Util::FileLocking do
|
|||
file = file.path
|
||||
File.open(file, "w") { |f| f.puts "starting" }
|
||||
|
||||
value = {:a => :b}
|
||||
data = {:a => :b, :c => "A string", :d => "another string", :e => %w{an array of strings}}
|
||||
threads = []
|
||||
sync = Sync.new
|
||||
9.times { |a|
|
||||
|
@ -19,13 +19,13 @@ describe Puppet::Util::FileLocking do
|
|||
9.times { |b|
|
||||
sync.synchronize(Sync::SH) {
|
||||
Puppet::Util::FileLocking.readlock(file) { |f|
|
||||
f.read
|
||||
YAML.load(f.read)
|
||||
}
|
||||
}
|
||||
sleep 0.01
|
||||
sync.synchronize(Sync::EX) {
|
||||
Puppet::Util::FileLocking.writelock(file) { |f|
|
||||
f.puts "%s %s" % [a, b]
|
||||
f.puts YAML.dump(data)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -63,30 +63,6 @@ class TestStorage < Test::Unit::TestCase
|
|||
assert_equal(state["name"], hash)
|
||||
end
|
||||
|
||||
# we're getting corrupt files, probably because multiple processes
|
||||
# are reading or writing the file at once
|
||||
# so we need to test that
|
||||
def test_multiwrite
|
||||
f = mkfile()
|
||||
|
||||
value = {:a => :b}
|
||||
threads = []
|
||||
9.times { |a|
|
||||
threads << Thread.new {
|
||||
9.times { |b|
|
||||
assert_nothing_raised {
|
||||
Puppet::Util::Storage.load
|
||||
state = Puppet::Util::Storage.cache(f)
|
||||
value.each { |k,v| state[k] = v }
|
||||
state[:e] = rand(100)
|
||||
Puppet::Util::Storage.store
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
threads.each { |th| th.join }
|
||||
end
|
||||
|
||||
def test_emptyrestore
|
||||
Puppet::Util::Storage.load
|
||||
Puppet::Util::Storage.store
|
||||
|
|
Загрузка…
Ссылка в новой задаче