1
0
mirror of https://pagure.io/fedora-qa/os-autoinst-distri-fedora.git synced 2025-02-20 14:24:35 +00:00

Compare commits

..

No commits in common. "ffab8bce758c7e75389c276b43f11ace2379d87d" and "7429b438fd483e48dc925fee51fb8e69a47324bf" have entirely different histories.

7 changed files with 46 additions and 61 deletions

View File

@ -158,14 +158,13 @@ sub post_fail_hook {
upload_logs "/var/tmp/imgbuild/lorax.log", failok => 1;
upload_logs "/var/tmp/imgbuild/program.log", failok => 1;
}
# For update tests, let's do the update package info log stuff,
# it may be useful for diagnosing the cause of the failure
advisory_get_installed_packages;
advisory_check_nonmatching_packages(fatal => 0);
}
# For update tests, let's do the update package info log stuff,
# it may be useful for diagnosing the cause of the failure
advisory_get_installed_packages;
advisory_check_nonmatching_packages(fatal => 0);
1;
# vim: set sw=4 et:

View File

@ -553,7 +553,7 @@ sub _repo_setup_compose {
sub _repo_setup_updates {
# Appropriate repo setup steps for testing a Bodhi update
# Check if we already ran, bail if so
return unless script_run "test -f /mnt/updatepkgs.txt";
return if (get_var("_ADVISORY_REPO_DONE"));
my $version = get_var("VERSION");
my $currrel = get_var("CURRREL", "0");
my $arch = get_var("ARCH");
@ -677,6 +677,9 @@ sub _repo_setup_updates {
type_string "exit\n";
wait_still_screen 5;
}
# mark via a variable that we've set up the update/task repo and done
# all the logging stuff above
set_var('_ADVISORY_REPO_DONE', '1');
}
sub repo_setup {
@ -1103,14 +1106,12 @@ sub quit_with_shortcut {
}
# For update tests (this only works if we've been through
# _repo_setup_updates), figure out which packages from the update
# are currently installed. This is here so we can do it both in
# _advisory_post and post_fail_hook.
sub advisory_get_installed_packages {
# bail out if the file doesn't exist: this is in case we get
# here in the post-fail hook but we failed before creating it
return if script_run "test -f /mnt/updatepkgs.txt";
# For update tests (this only works if we've been through
# _repo_setup_updates), figure out which packages from the update
# are currently installed. This is here so we can do it both in
# _advisory_post and post_fail_hook.
return unless (get_var("_ADVISORY_REPO_DONE"));
assert_script_run 'rpm -qa --qf "%{SOURCERPM} %{EPOCH} %{NAME}-%{VERSION}-%{RELEASE}\n" | sort -u > /tmp/allpkgs.txt', timeout => 90;
# this finds lines which appear in both files
# http://www.unix.com/unix-for-dummies-questions-and-answers/34549-find-matching-lines-between-2-files.html
@ -1136,9 +1137,7 @@ sub advisory_check_nonmatching_packages {
fatal => 1,
@_
);
# bail out if the file doesn't exist: this is in case we get
# here in the post-fail hook but we failed before creating it
return if script_run "test -f /mnt/updatepkgnames.txt";
return unless (get_var("_ADVISORY_REPO_DONE"));
# if this fails in advisory_post, we don't want to do it *again*
# unnecessarily in post_fail_hook
return if (get_var("_ACNMP_DONE"));

View File

@ -295,11 +295,9 @@ sub load_postinstall_tests() {
# install the updates to be tested). Don't do this for UPGRADE tests, as
# the update gets installed as part of the upgrade in that case and we
# don't need the extra reboot. Don't do this for INSTALL test(s); these
# are checking that an installer image built from the update works, and
# packages from the update should have been installed as part of the
# install process. Don't do this for START_AFTER_TEST tests, as there we
# presume the previous test already did this, and it saves a reboot.
if (get_var("ADVISORY_OR_TASK") && !get_var("UPGRADE") && !get_var("INSTALL") && !get_var("START_AFTER_TEST")) {
# are checking that an installer image built from the update works and do
# not install the update themselves in this manner
if (get_var("ADVISORY_OR_TASK") && !get_var("UPGRADE") && !get_var("INSTALL")) {
autotest::loadtest "tests/_advisory_update.pm";
# now load the early boot tests again, as _advisory_update reboots
_load_early_postinstall_tests(2);

View File

@ -87,27 +87,31 @@ sub run {
}
}
# For GNOME, handle initial-setup or welcome tour, unless _WELCOME_DONE
# is set (indicating it's been done previously within this test run,
# e.g. the second time this module runs on the update flow, or earlier
# in the boot process on the INSTALL_NO_USER flow), or START_AFTER_TEST
# is set to the same value as DEPLOY_UPLOAD_TEST (in which case it will
# have been done by the previous test run)
# the point of the default values here is to make the check fail if
# neither var is set, without needing an extra condition
my $sat = get_var("START_AFTER_TEST", "1");
my $dut = get_var("DEPLOY_UPLOAD_TEST", "2");
handle_welcome_screen if ($desktop eq 'gnome' && $sat ne $dut && !get_var("_WELCOME_DONE"));
if (get_var("IMAGE_DEPLOY")) {
# For GNOME, handle initial-setup or welcome tour, unless START_AFTER_TEST
# is set in which case it will have been done already. Always
# do it if ADVISORY_OR_TASK is set, as for the update testing flow,
# START_AFTER_TEST is set but a no-op and this hasn't happened
if ($desktop eq 'gnome' && (get_var("ADVISORY_OR_TASK") || !get_var("START_AFTER_TEST"))) {
# as this test gets loaded twice on the ADVISORY_OR_TASK flow, and
# we might be on the INSTALL_NO_USER flow, check whether
# this happened already
handle_welcome_screen unless (get_var("_WELCOME_DONE"));
}
if ($desktop eq 'gnome' && get_var("INSTALL_NO_USER")) {
# handle welcome screen if we didn't do it above (holy flow
# control, Batman!)
handle_welcome_screen unless (get_var("_WELCOME_DONE"));
# if this was an image deployment, we also need to create
# root user now, for subsequent tests to work
send_key "ctrl-alt-f3";
console_login(user => get_var("USER_LOGIN", "test"), password => get_var("USER_PASSWORD", "weakpassword"));
type_string "sudo su\n";
type_string "$password\n";
my $root_password = get_var("ROOT_PASSWORD") || "weakpassword";
assert_script_run "echo 'root:$root_password' | chpasswd";
desktop_vt;
if (get_var("IMAGE_DEPLOY")) {
send_key "ctrl-alt-f3";
console_login(user => get_var("USER_LOGIN", "test"), password => get_var("USER_PASSWORD", "weakpassword"));
type_string "sudo su\n";
type_string "$password\n";
my $root_password = get_var("ROOT_PASSWORD") || "weakpassword";
assert_script_run "echo 'root:$root_password' | chpasswd";
desktop_vt;
}
}
# Move the mouse somewhere it won't highlight the match areas

View File

@ -23,9 +23,7 @@ sub run {
unless ($version > $currrel) {
$cmd .= " --isfinal --repo=/etc/yum.repos.d/fedora-updates.repo";
}
$cmd .= " --repo=/etc/yum.repos.d/advisory.repo --repo=/etc/yum.repos.d/workarounds.repo";
$cmd .= " --repo=/etc/yum.repos.d/koji-rawhide.repo" if ($version eq $rawrel);
$cmd .= " ./results";
$cmd .= " --repo=/etc/yum.repos.d/advisory.repo --repo=/etc/yum.repos.d/workarounds.repo ./results";
assert_script_run $cmd, 2400;
# good to have the log around for checks
upload_logs "pylorax.log", failok => 1;

View File

@ -44,15 +44,9 @@ sub run {
assert_script_run 'echo "config_opts[\'plugin_conf\'][\'bind_mount_opts\'][\'dirs\'].append((\'/mnt/workarounds_repo\', \'/mnt/workarounds_repo\'))" >> /etc/mock/openqa.cfg';
assert_script_run 'echo "config_opts[\'plugin_conf\'][\'bind_mount_opts\'][\'dirs\'].append((\'/dev/' . $serialdev . '\', \'/dev/' . $serialdev . '\'))" >> /etc/mock/openqa.cfg';
# add the side repo and workarounds to the config
my $repos = 'config_opts[\'dnf.conf\'] += \"\"\"\n[advisory]\nname=Advisory repo\nbaseurl=file:///mnt/update_repo\nenabled=1\nmetadata_expire=3600\ngpgcheck=0\n\n[workarounds]\nname=Workarounds repo\nbaseurl=file:///mnt/workarounds_repo\nenabled=1\nmetadata_expire=3600\ngpgcheck=0\n';
# also the buildroot repo, for Rawhide
if ($version eq $rawrel) {
$repos .= '\n[koji-rawhide]\nname=Buildroot repo\nbaseurl=https://kojipkgs.fedoraproject.org/repos/rawhide/latest/\$basearch/\nenabled=1\nmetadata_expire=3600\ngpgcheck=0\n';
}
$repos .= '\"\"\"';
assert_script_run 'printf "' . $repos . '" >> /etc/mock/openqa.cfg';
assert_script_run 'printf "config_opts[\'dnf.conf\'] += \"\"\"\n[advisory]\nname=Advisory repo\nbaseurl=file:///mnt/update_repo\nenabled=1\nmetadata_expire=3600\ngpgcheck=0\n\n[workarounds]\nname=Workarounds repo\nbaseurl=file:///mnt/workarounds_repo\nenabled=1\nmetadata_expire=3600\ngpgcheck=0\n\"\"\"" >> /etc/mock/openqa.cfg';
# replace metalink with mirrorlist so we don't get slow mirrors
repos_mirrorlist("/etc/mock/templates/*.tpl");
repos_mirrorlist("/etc/mock/openqa.cfg");
# upload the config so we can check it's OK
upload_logs "/etc/mock/openqa.cfg";
# now check out the kickstarts
@ -63,10 +57,6 @@ sub run {
assert_script_run 'echo "repo --name=advisory --baseurl=file:///mnt/update_repo" >> ' . $repoks;
# and the workarounds repo
assert_script_run 'echo "repo --name=workarounds --baseurl=file:///mnt/workarounds_repo" >> ' . $repoks;
# and the buildroot repo, for Rawhide
if ($version eq $rawrel) {
assert_script_run 'echo "repo --name=koji-rawhide --baseurl=https://kojipkgs.fedoraproject.org/repos/rawhide/latest/\$basearch/" >> ' . $repoks;
}
# FIXME: this is a workaround for #2119518, disabling oomd so it
# doesn't go crazy killing things
my $relnum = get_release_number;

View File

@ -38,14 +38,11 @@ sub run {
assert_script_run 'git clone https://pagure.io/workstation-ostree-config.git';
assert_script_run 'pushd workstation-ostree-config';
assert_script_run "git checkout ${branch}";
# now copy the advisory, workaround repo and koji-rawhide config files
# now copy the advisory and workaround repo config files in
assert_script_run 'cp /etc/yum.repos.d/advisory.repo .';
assert_script_run 'cp /etc/yum.repos.d/workarounds.repo .';
assert_script_run 'cp /etc/yum.repos.d/koji-rawhide.repo .' if ($version eq $rawrel);
# and add them to the config file
my $repl = 'repos:\n - advisory\n - workarounds';
$repl .= '\n - koji-rawhide' if ($version eq $rawrel);
assert_script_run 'sed -i -e "s,repos:,' . $repl . ',g" fedora-' . $lcsubv . '.yaml';
assert_script_run 'sed -i -e "s,repos:,repos:\n - advisory\n - workarounds,g" fedora-' . $lcsubv . '.yaml';
# upload the config so we can check it
upload_logs "fedora-$lcsubv.yaml";
assert_script_run 'popd';