332a955814
This should solve all those annoying "Failed to synchronize cache for repo 'updates'" failures we've had: there's no need for the 'updates' repository to be enabled when we've decided we want the `repo_setup` changes to be made, and having it enabled causes problems when we run right after the Rawhide compose completes. We hit the awkward period where the rawhide repo has been synced but mirrormanager has not been updated with the new metadata checksums, so mirrormanager rejects the metadata from dl.fp.o and DNF has to go out and hit other mirrors until it finds one which didn't sync yet. Since the point of `repo_setup` is specifically to hack up the config so we only use packages from the compose *anyway*, there's no reason at all to worry about leaving 'updates' enabled and nerfing it like we do 'fedora' and 'rawhide', we can just turn it off.
101 lines
3.3 KiB
Perl
101 lines
3.3 KiB
Perl
package installedtest;
|
|
use base 'fedorabase';
|
|
|
|
# base class for tests that run on installed system
|
|
|
|
# should be used when with tests, where system is already installed, e. g all parts
|
|
# of upgrade tests, postinstall phases...
|
|
|
|
use testapi;
|
|
use main_common;
|
|
|
|
sub root_console {
|
|
my $self = shift;
|
|
my %args = (
|
|
tty => 1, # what TTY to login to
|
|
@_);
|
|
|
|
send_key "ctrl-alt-f$args{tty}";
|
|
console_login;
|
|
}
|
|
|
|
sub post_fail_hook {
|
|
my $self = shift;
|
|
|
|
$self->root_console(tty=>6);
|
|
|
|
# We can't rely on tar being in minimal installs
|
|
assert_script_run "dnf -y install tar", 180;
|
|
|
|
# Note: script_run returns the exit code, so the logic looks weird.
|
|
# We're testing that the directory exists and contains something.
|
|
unless (script_run 'test -n "$(ls -A /var/tmp/abrt)" && cd /var/tmp/abrt && tar czvf tmpabrt.tar.gz *') {
|
|
upload_logs "/var/tmp/abrt/tmpabrt.tar.gz";
|
|
}
|
|
|
|
unless (script_run 'test -n "$(ls -A /var/spool/abrt)" && cd /var/spool/abrt && tar czvf spoolabrt.tar.gz *') {
|
|
upload_logs "/var/spool/abrt/spoolabrt.tar.gz";
|
|
}
|
|
|
|
# Upload /var/log
|
|
# lastlog can mess up tar sometimes and it's not much use
|
|
unless (script_run "tar czvf /tmp/var_log.tar.gz --exclude='lastlog' /var/log") {
|
|
upload_logs "/tmp/var_log.tar.gz";
|
|
}
|
|
}
|
|
|
|
sub check_release {
|
|
my $self = shift;
|
|
my $release = shift;
|
|
my $check_command = "grep SUPPORT_PRODUCT_VERSION /usr/lib/os.release.d/os-release-fedora";
|
|
validate_script_output $check_command, sub { $_ =~ m/REDHAT_SUPPORT_PRODUCT_VERSION=$release/ };
|
|
}
|
|
|
|
sub menu_launch_type {
|
|
my $self = shift;
|
|
my $app = shift;
|
|
# super does not work on KDE, because fml
|
|
send_key 'alt-f1';
|
|
# srsly KDE y u so slo
|
|
wait_still_screen 3;
|
|
type_very_safely $app;
|
|
send_key 'ret';
|
|
}
|
|
|
|
sub start_cockpit {
|
|
my $self = shift;
|
|
my $login = shift || 0;
|
|
# run firefox directly in X as root. never do this, kids!
|
|
type_string "startx /usr/bin/firefox -width 1024 -height 768 http://localhost:9090\n";
|
|
assert_screen "cockpit_login";
|
|
wait_still_screen 5;
|
|
if ($login) {
|
|
type_safely "root";
|
|
wait_screen_change { send_key "tab"; };
|
|
type_safely get_var("ROOT_PASSWORD", "weakpassword");
|
|
send_key "ret";
|
|
assert_screen "cockpit_main";
|
|
# wait for any animation or other weirdness
|
|
# can't use wait_still_screen because of that damn graph
|
|
sleep 3;
|
|
}
|
|
}
|
|
|
|
sub repo_setup {
|
|
# disable updates-testing and updates and use the compose location
|
|
# as the target for fedora and rawhide rather than mirrorlist, so
|
|
# tools see only packages from the compose under test
|
|
my $location = get_var("LOCATION");
|
|
assert_script_run 'dnf config-manager --set-disabled updates-testing updates';
|
|
# we use script_run here as the rawhide repo file won't always exist
|
|
# and we don't want to bother testing or predicting its existence;
|
|
# assert_script_run doesn't buy you much with sed anyway as it'll
|
|
# return 0 even if it replaced nothing
|
|
script_run "sed -i -e 's,^metalink,#metalink,g' -e 's,^#baseurl.*basearch,baseurl=${location}/Everything/\$basearch,g' /etc/yum.repos.d/{fedora,fedora-rawhide}.repo", 0;
|
|
script_run "cat /etc/yum.repos.d/{fedora,fedora-rawhide}.repo", 0;
|
|
}
|
|
|
|
1;
|
|
|
|
# vim: set sw=4 et:
|