Skip to content

Commit 7b43f43

Browse files
committed
[Test] Fix spec tests failures for Ubuntu24.04 and Amazon Linux 2023.
1 parent d876474 commit 7b43f43

File tree

15 files changed

+112
-58
lines changed

15 files changed

+112
-58
lines changed

cookbooks/aws-parallelcluster-environment/spec/unit/resources/efa_spec.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,9 +53,9 @@ def self.configure(chef_run)
5353
for_all_oses do |platform, version|
5454
context "on #{platform}#{version}" do
5555
cached(:prerequisites) do
56-
if %(redhat rocky).include?(platform)
56+
if %(redhat rocky).include?(platform) || platform == 'amazon' && version == '2023'
5757
%w(environment-modules libibverbs-utils librdmacm-utils rdma-core-devel)
58-
elsif platform == 'amazon'
58+
elsif platform == 'amazon' && version == '2'
5959
%w(environment-modules libibverbs-utils librdmacm-utils)
6060
else
6161
"environment-modules"

cookbooks/aws-parallelcluster-environment/spec/unit/resources/network_service_spec.rb

Lines changed: 28 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -27,19 +27,28 @@ def self.reload(chef_run)
2727
end
2828
cached(:node) { chef_run.node }
2929
cached(:network_service_name) do
30-
{
31-
'amazon' => 'network',
32-
'centos' => 'network',
33-
'redhat' => 'NetworkManager',
34-
'rocky' => 'NetworkManager',
35-
'ubuntu' => 'systemd-resolved',
36-
}[platform]
30+
if platform == 'amazon' && version == '2' || platform == 'centos'
31+
'network'
32+
elsif platform == 'amazon' && version == '2023'
33+
'systemd-networkd'
34+
elsif platform == 'ubuntu'
35+
'systemd-resolved'
36+
elsif %(redhat rocky).include?(platform)
37+
'NetworkManager'
38+
else
39+
raise "Cannot determine network_service_name: unrecognized platform #{platform}"
40+
end
3741
end
3842

3943
it "restarts network service" do
4044
is_expected.to restart_network_service('restart')
45+
network_services_to_restart = if platform == 'amazon' && version == '2023'
46+
[network_service_name, 'systemd-resolved']
47+
else
48+
[network_service_name]
49+
end
4150

42-
is_expected.to write_log("Restarting '#{network_service_name}' service, platform #{platform} '#{node['platform_version']}'")
51+
is_expected.to write_log("Restarting '#{network_services_to_restart.join(' ')}' service, platform #{platform} '#{node['platform_version']}'")
4352

4453
is_expected.to restart_service(network_service_name)
4554
.with(ignore_failure: true)
@@ -56,13 +65,17 @@ def self.reload(chef_run)
5665
ConvergeNetworkService.reload(runner)
5766
end
5867
cached(:network_service_name) do
59-
{
60-
'amazon' => 'network',
61-
'centos' => 'network',
62-
'redhat' => 'NetworkManager',
63-
'rocky' => 'NetworkManager',
64-
'ubuntu' => 'systemd-resolved',
65-
}[platform]
68+
if platform == 'amazon' && version == '2' || platform == 'centos'
69+
'network'
70+
elsif platform == 'amazon' && version == '2023'
71+
'systemd-networkd'
72+
elsif platform == 'ubuntu'
73+
'systemd-resolved'
74+
elsif %(redhat rocky).include?(platform)
75+
'NetworkManager'
76+
else
77+
raise "Cannot determine network_service_name: unrecognized platform #{platform}"
78+
end
6679
end
6780

6881
it 'reloads network_service' do

cookbooks/aws-parallelcluster-environment/spec/unit/resources/raid_mount_unmount_spec.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ def wait_for_block_dev(_path)
1111
context "on #{platform}#{version}" do
1212
cached(:venv_path) { 'venv' }
1313
cached(:raid_superblock_version) do
14-
%(redhat rocky).include?(platform) || "#{platform}#{version}" == 'ubuntu20.04' || "#{platform}#{version}" == 'ubuntu22.04' ? '1.2' : '0.90'
14+
%(redhat rocky ubuntu).include?(platform) || "#{platform}#{version}" == 'amazon2023' ? '1.2' : '0.90'
1515
end
1616
cached(:chef_run) do
1717
runner = runner(

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

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,14 +26,19 @@ def self.setup(chef_run)
2626
when 'ubuntu'
2727
"Ubuntu-#{version}"
2828
when 'amazon'
29-
"AmazonLinux-2"
29+
if version == '2'
30+
"AmazonLinux-2"
31+
elsif version == '2023'
32+
'RHEL-9'
33+
end
3034
else
3135
"RHEL-#{version}"
3236
end
3337
end
3438

3539
cached(:gcc_major_minor_version) do
36-
if platform == 'ubuntu' && version == '22.04' || version == '9'
40+
case "#{platform}#{version}"
41+
when 'amazon2023', 'ubuntu24.04', 'ubuntu22.04', 'redhat9', 'rocky9'
3742
'11.3'
3843
else
3944
'9.3'

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

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,8 @@ def self.nothing(chef_run)
4242
allow_any_instance_of(Object).to receive(:arm_instance?).and_return(true)
4343
end
4444

45-
if platform == 'ubuntu' && version.to_i == 20
45+
case "#{platform}#{version}"
46+
when "amazon2023", "ubuntu20.04"
4647
it "is false" do
4748
expect(resource.dcv_supported?).to eq(false)
4849
end
@@ -58,9 +59,10 @@ def self.nothing(chef_run)
5859
end
5960

6061
context 'when not on arm' do
61-
it "is true" do
62+
is_supported = !("#{platform}#{version}" == 'amazon2023')
63+
it "is #{is_supported}" do
6264
allow_any_instance_of(Object).to receive(:arm_instance?).and_return(false)
63-
expect(resource.dcv_supported?).to eq(true)
65+
expect(resource.dcv_supported?).to eq(is_supported)
6466
end
6567
end
6668
end
@@ -142,8 +144,8 @@ def self.nothing(chef_run)
142144
expect(resource.xdcv).to eq("nice-xdcv_#{xdcv_version}_#{dcv_pkg_arch}.#{base_os}.deb")
143145
expect(resource.dcv_web_viewer).to eq("nice-dcv-web-viewer_#{dcv_webviewer_version}_#{dcv_pkg_arch}.#{base_os}.deb")
144146
expect(resource.dcv_gl).to eq("/nice-dcv-gl_#{dcv_gl_version}_#{dcv_pkg_arch}.#{base_os}.deb")
145-
else
146-
dcv_platform_version = platform == "amazon" ? "7" : version.to_i
147+
elsif "#{platform}#{version}" != 'amazon2023'
148+
dcv_platform_version = "#{platform}#{version}" == "amazon2" ? "7" : version.to_i
147149
dcv_platform_version_pkg = platform == "amazon" ? "amzn2" : "el" + version
148150
expect(resource.dcv_package).to eq("nice-dcv-#{dcv_version}-#{dcv_platform_version_pkg}-#{dcv_url_arch}")
149151
expect(resource.dcv_server).to eq("nice-dcv-server-#{dcv_server_version}.el#{dcv_platform_version}.#{dcv_url_arch}.rpm")
@@ -479,14 +481,16 @@ def self.nothing(chef_run)
479481
.with_code(/apt -y purge ifupdown/)
480482
.with_code(%r{wget https://d1uj6qtbmh3dt5.cloudfront.net/NICE-GPG-KEY})
481483
when 'amazon'
482-
is_expected.to install_package(alinux_prereq_packages).with_retries(10).with_retry_delay(5)
483-
is_expected.to create_file('Setup Gnome standard').with(
484-
content: "PREFERRED=/usr/bin/gnome-session",
485-
owner: "root",
486-
group: "root",
487-
mode: "0755",
488-
path: "/etc/sysconfig/desktop"
489-
)
484+
if version == '2'
485+
is_expected.to install_package(alinux_prereq_packages).with_retries(10).with_retry_delay(5)
486+
is_expected.to create_file('Setup Gnome standard').with(
487+
content: "PREFERRED=/usr/bin/gnome-session",
488+
owner: "root",
489+
group: "root",
490+
mode: "0755",
491+
path: "/etc/sysconfig/desktop"
492+
)
493+
end
490494
else
491495
is_expected.to run_execute('Install gnome desktop').with_command('yum -y install @gnome').with_retries(3).with_retry_delay(5)
492496
is_expected.to install_package('xorg-x11-server-Xorg').with_retries(3).with_retry_delay(5)

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,12 @@ def self.configure(chef_run)
201201
case platform
202202
when 'ubuntu'
203203
%w(build-essential devscripts debhelper check libsubunit-dev fakeroot pkg-config dkms)
204+
when 'amazon'
205+
if version == '2023'
206+
%w(dkms rpm-build make check check-devel)
207+
else
208+
%w(dkms rpm-build make check check-devel subunit subunit-devel)
209+
end
204210
else
205211
%w(dkms rpm-build make check check-devel subunit subunit-devel)
206212
end
@@ -209,13 +215,15 @@ def self.configure(chef_run)
209215
cached(:gdrcopy_platform) do
210216
platforms = {
211217
'amazon2' => 'amzn-2',
218+
'amazon2023' => 'amzn-2023',
212219
'centos7' => 'el7',
213220
'rhel8' => 'el8',
214221
'rocky8' => 'el8',
215222
'rhel9' => 'el9',
216223
'rocky9' => 'el9',
217224
'ubuntu20.04' => 'Ubuntu20_04',
218225
'ubuntu22.04' => 'Ubuntu22_04',
226+
'ubuntu24.04' => 'Ubuntu24_04',
219227
}
220228
platforms["#{platform}#{version}"]
221229
end

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ def self.setup(chef_run)
5959
end
6060
end
6161

62-
if platform == 'amazon'
62+
if platform == 'amazon' && version == '2'
6363
it 'installs extra packages' do
6464
is_expected.to install_alinux_extras_topic('R3.4')
6565
end

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@
3838
"/usr/share/modules/init/.modulespath"
3939
when 'redhat', 'rocky'
4040
'/etc/environment-modules/modulespath'
41+
when 'amazon'
42+
version == '2' ? '/usr/share/Modules/init/.modulespath' : '/etc/environment-modules/modulespath'
4143
else
4244
"/usr/share/Modules/init/.modulespath"
4345
end

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ def self.setup(chef_run, nvidia_enabled: nil)
8989
chef_run.find_resource('nvidia_dcgm', 'setup')
9090
end
9191

92-
if %w(centos amazon).include?(platform)
92+
if %w(centos7 amazon2).include?("#{platform}#{version}")
9393
it "is not enabled" do
9494
expect(resource._nvidia_dcgm_enabled).to eq(false)
9595
end
@@ -164,7 +164,7 @@ def self.setup(chef_run, nvidia_enabled: nil)
164164
ConvergeNvidiaDcgm.setup(chef_run)
165165
end
166166

167-
if %w(centos amazon).include?(platform)
167+
if %w(centos7 amazon2).include?("#{platform}#{version}")
168168
it 'does not install datacenter gpu manager' do
169169
is_expected.not_to run_bash('Install datacenter-gpu-manager')
170170
end

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

Lines changed: 26 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -221,21 +221,34 @@ def self.setup(chef_run, nvidia_driver_version: nil)
221221
end
222222

223223
if platform == 'amazon'
224-
compiler_path = version == 2023 ? 'CC=/usr/bin/gcc' : 'CC=/usr/bin/gcc10-gcc'
225-
it 'installs gcc10' do
226-
is_expected.to install_package('gcc10').with_retries(10).with_retry_delay(5)
224+
compiler_version = version == '2023' ? 'gcc' : 'gcc10'
225+
compiler_path = version == '2023' ? 'CC=/usr/bin/gcc' : 'CC=/usr/bin/gcc10-gcc'
226+
if version == '2'
227+
it "installs #{compiler_version}" do
228+
is_expected.to install_package(compiler_version).with_retries(10).with_retry_delay(5)
229+
end
230+
it 'creates dkms/nvidia.conf' do
231+
is_expected.to create_template('/etc/dkms/nvidia.conf').with(
232+
source: 'nvidia/amazon/dkms/nvidia.conf.erb',
233+
cookbook: 'aws-parallelcluster-platform',
234+
owner: 'root',
235+
group: 'root',
236+
mode: '0644',
237+
variables: { compiler_path: compiler_path }
238+
)
239+
end
240+
else
241+
# Amazon Linux 2023 is expected to install the compiler and create nvidia conf when kernel version is 6.
242+
# Here we are testing with kernel version 5
243+
it "does not install #{compiler_version}" do
244+
is_expected.not_to install_package(compiler_version).with_retries(10).with_retry_delay(5)
245+
end
246+
247+
it 'does not create dkms/nvidia.conf' do
248+
is_expected.not_to create_template('/etc/dkms/nvidia.conf')
249+
end
227250
end
228251

229-
it 'creates dkms/nvidia.conf' do
230-
is_expected.to create_template('/etc/dkms/nvidia.conf').with(
231-
source: 'nvidia/amazon/dkms/nvidia.conf.erb',
232-
cookbook: 'aws-parallelcluster-platform',
233-
owner: 'root',
234-
group: 'root',
235-
mode: '0644',
236-
variables: { compiler_path: compiler_path }
237-
)
238-
end
239252
it 'installs nvidia driver' do
240253
is_expected.to run_bash('nvidia.run advanced')
241254
.with(

0 commit comments

Comments
 (0)