use base "installedtest"; use strict; use modularity; use testapi; use utils; sub run { my $self = shift; my $hook_run = 0; # switch to tty and login as root $self->root_console(tty => 3); # Enable the module. my $name = "ruby"; my $stream = "3.1"; assert_script_run("dnf module enable -y $name:$stream"); # Check that it is listed in the enabled list. my $enabled = script_output('dnf module list --enabled'); my @enabled_modules = parse_module_list($enabled); unless (is_listed($name, $stream, \@enabled_modules)) { die "The enabled module is not listed in the list of enabled modules but it should be."; } # Check that it is not listed in the disabled list. my $disabled = script_output('dnf module list --disabled'); my @disabled_modules = parse_module_list($disabled); if (is_listed($name, $stream, \@disabled_modules)) { die "The enabled module is listed in the list of disabled modules but it should not be."; } # Disable some other module. my $name_alt = "ruby"; my $stream_alt = "3.1"; assert_script_run("dnf module disable -y $name_alt:$stream_alt"); # Check that it is listed in the disabled list. $disabled = script_output('dnf module list --disabled'); @disabled_modules = parse_module_list($disabled); unless (is_listed($name_alt, $stream_alt, \@disabled_modules)) { die "The disabled module is not listed in the list of disabled modules but it should be."; } # Check that it is not listed in the enabled list. $enabled = script_output('dnf module list --enabled'); @enabled_modules = parse_module_list($enabled); if (is_listed($name_alt, $stream_alt, \@enabled_modules)) { die "The disabled module is listed in the list of enabled modules but it should not be."; } # Reset the first module to its original state and do the list checks. assert_script_run("dnf module reset -y $name"); # Check that the module has disappeared from both the lists. $disabled = script_output('dnf module list --disabled'); @disabled_modules = parse_module_list($disabled); if (is_listed($name, $stream, \@disabled_modules)) { die "The disabled module is listed in the list of disabled modules but it should not be."; } $enabled = script_output('dnf module list --enabled'); @enabled_modules = parse_module_list($enabled); if (is_listed($name, $stream, \@enabled_modules)) { die "The disabled module is listed in the list of enabled modules but it should not be."; } # Reset the second module but do not perform any list checks. assert_script_run("dnf module reset -y $name_alt"); } 1; # vim: set sw=4 et: