Skip to content

Commit 037ef0b

Browse files
author
Himani Anil Deshpande
committed
[Nvidia-imex] Add unit tests for NVidia Imex
1 parent e3b9ae3 commit 037ef0b

File tree

1 file changed

+61
-28
lines changed

1 file changed

+61
-28
lines changed

cookbooks/aws-parallelcluster-platform/spec/unit/resources/nvidia_imex_spec.rb

Lines changed: 61 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
shared_dir = "SHARED_DIR"
44
nvidia_version = "NVIDIA_VERSION"
55
nvidia_imex_shared_dir = "#{shared_dir}/nvidia-imex"
6+
imex_binary = '/usr/bin/nvidia-imex'
7+
imex_ctl_binary = '/usr/bin/nvidia-imex-ctl'
68

79
class ConvergeNvidiaImex
810
def self.install(chef_run)
@@ -64,8 +66,6 @@ def self.install(chef_run)
6466
describe 'nvidia_imex:imex_installed' do
6567
for_all_oses do |platform, version|
6668
context "on #{platform}#{version}" do
67-
imex_binary = '/usr/bin/nvidia-imex'
68-
imex_ctl_binary = '/usr/bin/nvidia-imex-ctl'
6969
cached(:chef_run) do
7070
runner(platform: platform, version: version, step_into: ['nvidia_imex'])
7171
end
@@ -80,8 +80,14 @@ def self.install(chef_run)
8080
allow(File).to receive(:exist?).with(imex_binary).and_return(false)
8181
end
8282

83-
it 'is false' do
84-
expect(resource.imex_installed).to eq(false)
83+
if platform == 'amazon' && version =='2'
84+
it 'is true' do
85+
expect(resource.imex_installed).to eq(true)
86+
end
87+
else
88+
it 'is false' do
89+
expect(resource.imex_installed).to eq(false)
90+
end
8591
end
8692
end
8793

@@ -158,7 +164,8 @@ def self.install(chef_run)
158164
cached(:chef_run) do
159165
stubs_for_resource('nvidia_imex') do |res|
160166
allow(res).to receive(:nvidia_enabled_or_installed?).and_return(true)
161-
allow(res).to receive(:imex_installed).and_return(false)
167+
allow(File).to receive(:exist?).with(imex_ctl_binary).and_return(false)
168+
allow(File).to receive(:exist?).with(imex_binary).and_return(false)
162169
end
163170
runner(platform: platform, version: version, step_into: ['nvidia_imex'])
164171
end
@@ -170,29 +177,55 @@ def self.install(chef_run)
170177
ConvergeNvidiaImex.install(chef_run)
171178
end
172179

173-
it 'installs nvidia-imex' do
174-
is_expected.to add_nvidia_repo('add nvidia repository')
175-
is_expected.to create_directory(nvidia_imex_shared_dir)
176-
177-
is_expected.to create_template("#{nvidia_imex_shared_dir}/config.cfg")
178-
.with(source: 'nvidia-imex/nvidia-imex-config.erb')
179-
.with(user: 'root')
180-
.with(group: 'root')
181-
.with(mode: '0755')
182-
is_expected.to create_template("#{nvidia_imex_shared_dir}/nodes_config.cfg")
183-
.with(source: 'nvidia-imex/nvidia-imex-nodes.erb')
184-
.with(user: 'root')
185-
.with(group: 'root')
186-
.with(mode: '0755')
187-
is_expected.to create_template("/etc/systemd/system/nvidia-imex.service")
188-
.with(source: 'nvidia-imex/nvidia-imex.service.erb')
189-
.with(user: 'root')
190-
.with(group: 'root')
191-
.with(mode: '0644')
192-
is_expected.to install_package('nvidia-imex')
193-
.with(retries: 3)
194-
.with(retry_delay: 5)
195-
.with(version: nvidia_version)
180+
if platform == 'amazon' && version == '2'
181+
it 'does not install nvidia-imex' do
182+
is_expected.not_to add_nvidia_repo('add nvidia repository')
183+
is_expected.not_to create_directory(nvidia_imex_shared_dir)
184+
is_expected.not_to create_template("#{nvidia_imex_shared_dir}/config.cfg")
185+
.with(source: 'nvidia-imex/nvidia-imex-config.erb')
186+
.with(user: 'root')
187+
.with(group: 'root')
188+
.with(mode: '0755')
189+
is_expected.not_to create_template("#{nvidia_imex_shared_dir}/nodes_config.cfg")
190+
.with(source: 'nvidia-imex/nvidia-imex-nodes.erb')
191+
.with(user: 'root')
192+
.with(group: 'root')
193+
.with(mode: '0755')
194+
is_expected.not_to create_template("/etc/systemd/system/nvidia-imex.service")
195+
.with(source: 'nvidia-imex/nvidia-imex.service.erb')
196+
.with(user: 'root')
197+
.with(group: 'root')
198+
.with(mode: '0644')
199+
is_expected.not_to install_package('nvidia-imex')
200+
.with(retries: 3)
201+
.with(retry_delay: 5)
202+
.with(version: nvidia_version)
203+
end
204+
else
205+
it 'installs nvidia-imex' do
206+
is_expected.to add_nvidia_repo('add nvidia repository')
207+
is_expected.to create_directory(nvidia_imex_shared_dir)
208+
209+
is_expected.to create_template("#{nvidia_imex_shared_dir}/config.cfg")
210+
.with(source: 'nvidia-imex/nvidia-imex-config.erb')
211+
.with(user: 'root')
212+
.with(group: 'root')
213+
.with(mode: '0755')
214+
is_expected.to create_template("#{nvidia_imex_shared_dir}/nodes_config.cfg")
215+
.with(source: 'nvidia-imex/nvidia-imex-nodes.erb')
216+
.with(user: 'root')
217+
.with(group: 'root')
218+
.with(mode: '0755')
219+
is_expected.to create_template("/etc/systemd/system/nvidia-imex.service")
220+
.with(source: 'nvidia-imex/nvidia-imex.service.erb')
221+
.with(user: 'root')
222+
.with(group: 'root')
223+
.with(mode: '0644')
224+
is_expected.to install_package('nvidia-imex')
225+
.with(retries: 3)
226+
.with(retry_delay: 5)
227+
.with(version: nvidia_version)
228+
end
196229
end
197230
end
198231
end

0 commit comments

Comments
 (0)