51 lines
1.3 KiB
Ruby
51 lines
1.3 KiB
Ruby
require 'puppet'
|
|
require 'puppet/type/cgclassify'
|
|
|
|
describe 'Puppet::Type.type(:cgclassify)' do
|
|
|
|
before :each do
|
|
@cgclassify = Puppet::Type.type(:cgclassify).new(
|
|
:name => 'service_x',
|
|
:cgroup => ['memory:/group_x'],
|
|
:sticky => true,
|
|
)
|
|
end
|
|
|
|
it 'should require a name' do
|
|
expect {
|
|
Puppet::Type.type(:cgclassify).new({})
|
|
}.to raise_error Puppet::Error, 'Title or name must be provided'
|
|
end
|
|
|
|
it 'should set sticky option' do
|
|
expect(@cgclassify[:sticky]).to eq('--sticky')
|
|
end
|
|
|
|
context 'should reject invalid cgroup pattern' do
|
|
it 'with swapped /:' do
|
|
expect {
|
|
@cgclassify[:cgroup] = ['memory/:group_x']
|
|
}.to raise_error Puppet::ResourceError, /Invalid value/
|
|
end
|
|
|
|
it 'with absent controller' do
|
|
expect {
|
|
@cgclassify[:cgroup] = [':/group_x']
|
|
}.to raise_error Puppet::ResourceError, /Invalid value/
|
|
end
|
|
end
|
|
|
|
context 'should accept valid cgroup pattern' do
|
|
it 'with cpu:/group_x' do
|
|
@cgclassify[:cgroup] = ['cpu:/group_x']
|
|
expect(@cgclassify[:cgroup]).to eq(['cpu:/group_x'])
|
|
end
|
|
|
|
it 'with two cgroups at once' do
|
|
@cgclassify[:cgroup] = ['blkio:/', 'cpuset:/group_x']
|
|
expect(@cgclassify[:cgroup]).to eq(['blkio:/', 'cpuset:/group_x'])
|
|
end
|
|
end
|
|
|
|
end
|