Compare commits
18 Commits
e40d02656a
...
5a14a27ced
Author | SHA1 | Date |
---|---|---|
Lukáš Růžička | 5a14a27ced | |
Lukáš Růžička | 015da735cf | |
Lukáš Růžička | 84b7b8e70f | |
Lukáš Růžička | 5a4f2ffbfb | |
Lukáš Růžička | 2be06191d5 | |
Lukáš Růžička | d9df504671 | |
Lukáš Růžička | f8b0f161aa | |
Lukáš Růžička | be0d24443f | |
Lukas Ruzicka | 806896e917 | |
Adam Williamson | 3b3e00f123 | |
Adam Williamson | 3a6e65914a | |
Adam Williamson | b782c44ee9 | |
Adam Williamson | 637a411fd6 | |
Adam Williamson | 57329a69fc | |
Adam Williamson | 3da32a643f | |
Adam Williamson | a353caeb90 | |
Adam Williamson | 1edde53988 | |
Adam Williamson | d142d2f4a1 |
43
lib/utils.pm
|
@ -570,13 +570,24 @@ sub setup_repos {
|
|||
);
|
||||
my $arch = get_var("ARCH");
|
||||
my $tag = get_var("TAG");
|
||||
# write the tag repo config if appropriate
|
||||
assert_script_run 'printf "[openqa-testtag]\nname=openqa-testtag\nbaseurl=https://kojipkgs.fedoraproject.org/repos/' . "$tag/latest/$arch" . '/\ncost=2000\nenabled=1\ngpgcheck=0\n" > /etc/yum.repos.d/openqa-testtag.repo' if ($tag && !$args{waonly});
|
||||
my $copr = get_var("COPR");
|
||||
if (($tag || $copr) && !$args{waonly}) {
|
||||
# write a side tag or COPR repo config, enabled or disabled
|
||||
# according to the 'configs' arg
|
||||
assert_script_run 'printf "[openqa-testtag]\nname=openqa-testtag\nbaseurl=' . get_var("UPDATE_OR_TAG_REPO") . '/\ncost=2000\nenabled=' . $args{configs} . '\ngpgcheck=0\npriority=1\n" > /etc/yum.repos.d/openqa-testtag.repo';
|
||||
# write out the info files
|
||||
assert_script_run 'dnf --disablerepo=* --enablerepo=openqa-testtag repoquery --qf "%{SOURCERPM} %{NAME} %{EPOCH} %{VERSION} %{RELEASE}" | sort -u > /mnt/updatepkgs.txt';
|
||||
# the | xargs here is a wacky trick that converts newlines to
|
||||
# spaces - unlike rpm, dnf always puts every package on a new
|
||||
# line, which we don't want here
|
||||
# https://unix.stackexchange.com/a/110759
|
||||
assert_script_run 'dnf --disablerepo=* --enablerepo=openqa-testtag repoquery --qf "%{NAME} " | xargs > /mnt/updatepkgnames.txt';
|
||||
}
|
||||
my @was = get_workarounds($args{version});
|
||||
# bail if there are no workarounds:
|
||||
# * if we're in workarounds-only mode
|
||||
# * if we're testing a side tag (so no packages to dl)
|
||||
if ($args{waonly} || $tag) {
|
||||
# * if we're testing a side tag or COPR (so no packages to dl)
|
||||
if ($args{waonly} || $tag || $copr) {
|
||||
return unless (@was);
|
||||
}
|
||||
# if we got this far, we're definitely downloading *something*
|
||||
|
@ -619,14 +630,14 @@ sub setup_repos {
|
|||
die "Neither ADVISORY_NVRS nor KOJITASK set! Don't know what to do" unless ($args{waonly});
|
||||
}
|
||||
my $cmd = "/usr/local/bin/setup_repos.py";
|
||||
# don't download updates if we're in workarounds-only mode or testing a tag
|
||||
$cmd .= " -u $udstring" unless ($args{waonly} || $tag);
|
||||
# don't download updates if we're in workarounds-only mode or testing a tag or COPR
|
||||
$cmd .= " -u $udstring" unless ($args{waonly} || $tag || $copr);
|
||||
$cmd .= " -w $wastring" if (@was);
|
||||
# write repo config files if asked
|
||||
$cmd .= " -c" if ($args{configs});
|
||||
$cmd .= " $arch";
|
||||
assert_script_run $cmd, $timeout;
|
||||
unless ($args{waonly} || $tag) {
|
||||
unless ($args{waonly} || $tag || $copr) {
|
||||
upload_logs "/mnt/updatepkgnames.txt";
|
||||
upload_logs "/mnt/updatepkgs.txt";
|
||||
}
|
||||
|
@ -635,8 +646,9 @@ sub setup_repos {
|
|||
sub _repo_setup_updates {
|
||||
# Appropriate repo setup steps for testing a Bodhi update
|
||||
my $tag = get_var("TAG");
|
||||
my $copr = get_var("COPR");
|
||||
# Check if we already ran, bail if so
|
||||
if ($tag) {
|
||||
if ($tag || $copr) {
|
||||
# for TAG case, check for the repo file
|
||||
return unless script_run "test -f /etc/yum.repos.d/openqa-testtag.repo";
|
||||
}
|
||||
|
@ -670,8 +682,8 @@ sub _repo_setup_updates {
|
|||
select_console("virtio-console");
|
||||
console_login();
|
||||
# prepare the directory the packages will be downloaded to, unless we're
|
||||
# testing a side tag
|
||||
_prepare_update_mount() unless ($tag);
|
||||
# testing a side tag or COPR
|
||||
_prepare_update_mount() unless ($tag || $copr);
|
||||
|
||||
# on CANNED, we need to enter the toolbox at this point
|
||||
if (get_var("CANNED")) {
|
||||
|
@ -829,7 +841,6 @@ sub gnome_initial_setup {
|
|||
@_
|
||||
);
|
||||
my $relnum = get_release_number;
|
||||
my $advortask = get_var("ADVISORY_OR_TASK");
|
||||
|
||||
# note: when 'language' is "skipped", it's turned into a 'welcome'
|
||||
# page, which has a "Start Setup" button, not a "Next" button
|
||||
|
@ -1203,8 +1214,6 @@ sub quit_with_shortcut {
|
|||
# are currently installed. This is here so we can do it both in
|
||||
# _advisory_post and post_fail_hook.
|
||||
sub advisory_get_installed_packages {
|
||||
# can't do anything useful when testing a side tag
|
||||
return if (get_var("TAG"));
|
||||
# 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";
|
||||
|
@ -1234,8 +1243,6 @@ sub advisory_check_nonmatching_packages {
|
|||
wrapper => "",
|
||||
@_
|
||||
);
|
||||
# can't do anything useful when testing a side tag
|
||||
return if (get_var("TAG"));
|
||||
# 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";
|
||||
|
@ -1245,9 +1252,13 @@ sub advisory_check_nonmatching_packages {
|
|||
script_run 'touch /tmp/installedupdatepkgs.txt';
|
||||
my $rpmcmd = "rpm";
|
||||
my $timeout = 180;
|
||||
# longer if we have a lot of packages
|
||||
my $pkgs = script_output "wc -l /mnt/updatepkgs.txt";
|
||||
$timeout *= 2 if ($pkgs > 100);
|
||||
$timeout *= 2 if ($pkgs > 400);
|
||||
my $wrapper = $args{wrapper};
|
||||
$rpmcmd = "$wrapper rpm" if ($wrapper);
|
||||
$timeout = 360 if ($wrapper);
|
||||
$timeout *= 2 if ($wrapper);
|
||||
# this creates /tmp/installedupdatepkgs.txt as a sorted list of installed
|
||||
# packages with the same name as packages from the update, in the same form
|
||||
# as /mnt/updatepkgs.txt. The '--last | head -1' tries to handle the
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"area": [
|
||||
{
|
||||
"xpos": 271,
|
||||
"ypos": 113,
|
||||
"width": 142,
|
||||
"height": 24,
|
||||
"type": "match"
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"apps_run_seahorse"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 624 KiB |
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"area": [
|
||||
{
|
||||
"xpos": 521,
|
||||
"ypos": 304,
|
||||
"width": 195,
|
||||
"height": 47,
|
||||
"type": "match"
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"keyring_keys_values"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 56 KiB |
|
@ -0,0 +1,24 @@
|
|||
{
|
||||
"area": [
|
||||
{
|
||||
"xpos": 184,
|
||||
"ypos": 329,
|
||||
"width": 107,
|
||||
"height": 13,
|
||||
"type": "match",
|
||||
"match": 90
|
||||
},
|
||||
{
|
||||
"xpos": 185,
|
||||
"ypos": 383,
|
||||
"width": 111,
|
||||
"height": 13,
|
||||
"type": "match",
|
||||
"match": 90
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"keyring_multiple_instances"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 762 KiB |
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"area": [
|
||||
{
|
||||
"xpos": 383,
|
||||
"ypos": 436,
|
||||
"width": 133,
|
||||
"height": 17,
|
||||
"type": "match"
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"keyring_open_when_logged"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 544 KiB |
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"area": [
|
||||
{
|
||||
"xpos": 442,
|
||||
"ypos": 261,
|
||||
"width": 126,
|
||||
"height": 19,
|
||||
"type": "match"
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"keyring_seahorse_details_shown"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 34 KiB |
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"area": [
|
||||
{
|
||||
"xpos": 35,
|
||||
"ypos": 121,
|
||||
"width": 38,
|
||||
"height": 19,
|
||||
"type": "match"
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"keyring_seahorse_login"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 44 KiB |
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"area": [
|
||||
{
|
||||
"xpos": 33,
|
||||
"ypos": 121,
|
||||
"width": 40,
|
||||
"height": 21,
|
||||
"type": "match"
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"keyring_seahorse_login"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 52 KiB |
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"area": [
|
||||
{
|
||||
"xpos": 338,
|
||||
"ypos": 111,
|
||||
"width": 169,
|
||||
"height": 26,
|
||||
"type": "match"
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"keyring_seahorse_login_details"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 41 KiB |
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"area": [
|
||||
{
|
||||
"xpos": 440,
|
||||
"ypos": 262,
|
||||
"width": 111,
|
||||
"height": 22,
|
||||
"type": "match"
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"keyring_seahorse_password_shown"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 104 KiB |
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"area": [
|
||||
{
|
||||
"xpos": 615,
|
||||
"ypos": 260,
|
||||
"width": 27,
|
||||
"height": 26,
|
||||
"type": "match"
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"keyring_seahorse_show_password"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 103 KiB |
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"area": [
|
||||
{
|
||||
"xpos": 586,
|
||||
"ypos": 510,
|
||||
"width": 58,
|
||||
"height": 16,
|
||||
"type": "match"
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"keyring_sshkey_unlock"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 545 KiB |
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"area": [
|
||||
{
|
||||
"height": 21,
|
||||
"type": "match",
|
||||
"ypos": 610,
|
||||
"xpos": 353,
|
||||
"width": 57
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"loupe_about_credits"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 249 KiB |
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"area": [
|
||||
{
|
||||
"type": "match",
|
||||
"height": 101,
|
||||
"ypos": 207,
|
||||
"width": 186,
|
||||
"xpos": 419
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"loupe_about_shown"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 249 KiB |
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
"area": [
|
||||
{
|
||||
"width": 116,
|
||||
"xpos": 358,
|
||||
"ypos": 202,
|
||||
"height": 21,
|
||||
"type": "match"
|
||||
},
|
||||
{
|
||||
"width": 92,
|
||||
"xpos": 355,
|
||||
"height": 19,
|
||||
"type": "match",
|
||||
"ypos": 425
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"loupe_credits_shown"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 237 KiB |
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"area": [
|
||||
{
|
||||
"type": "match",
|
||||
"height": 16,
|
||||
"ypos": 409,
|
||||
"width": 134,
|
||||
"xpos": 806
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"loupe_menu_about"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 549 KiB |
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"area": [
|
||||
{
|
||||
"ypos": 296,
|
||||
"height": 24,
|
||||
"type": "match",
|
||||
"width": 140,
|
||||
"xpos": 803
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"loupe_menu_set_wallpaper"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 549 KiB |
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"area": [
|
||||
{
|
||||
"type": "match",
|
||||
"height": 20,
|
||||
"ypos": 263,
|
||||
"width": 35,
|
||||
"xpos": 700
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"loupe_set_wallpaper"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 336 KiB |
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
"area": [
|
||||
{
|
||||
"ypos": 192,
|
||||
"type": "match",
|
||||
"height": 60,
|
||||
"xpos": 376,
|
||||
"width": 98
|
||||
},
|
||||
{
|
||||
"ypos": 105,
|
||||
"type": "match",
|
||||
"height": 36,
|
||||
"xpos": 456,
|
||||
"width": 52
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"maps_info_vilnius"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 944 KiB |
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"area": [
|
||||
{
|
||||
"xpos": 415,
|
||||
"width": 197,
|
||||
"ypos": 362,
|
||||
"type": "match",
|
||||
"height": 162
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"maps_map_zoomed"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 628 KiB |
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"area": [
|
||||
{
|
||||
"ypos": 97,
|
||||
"type": "match",
|
||||
"height": 34,
|
||||
"xpos": 274,
|
||||
"width": 80
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"maps_select_poysdorf"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 279 KiB |
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"area": [
|
||||
{
|
||||
"height": 34,
|
||||
"type": "match",
|
||||
"ypos": 97,
|
||||
"xpos": 274,
|
||||
"width": 80
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"maps_select_poysdorf"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 278 KiB |
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"area": [
|
||||
{
|
||||
"xpos": 361,
|
||||
"ypos": 104,
|
||||
"width": 141,
|
||||
"height": 21,
|
||||
"type": "match"
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"nautilus_connection_established"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 441 KiB |
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"area": [
|
||||
{
|
||||
"xpos": 260,
|
||||
"ypos": 608,
|
||||
"width": 138,
|
||||
"height": 20,
|
||||
"type": "match"
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"nautilus_enter_address"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 437 KiB |
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"area": [
|
||||
{
|
||||
"xpos": 258,
|
||||
"ypos": 610,
|
||||
"width": 140,
|
||||
"height": 19,
|
||||
"type": "match"
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"nautilus_enter_address"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 437 KiB |
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"area": [
|
||||
{
|
||||
"xpos": 109,
|
||||
"ypos": 559,
|
||||
"width": 109,
|
||||
"height": 20,
|
||||
"type": "match"
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"nautilus_other_locations"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 440 KiB |
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"area": [
|
||||
{
|
||||
"xpos": 381,
|
||||
"ypos": 434,
|
||||
"width": 142,
|
||||
"height": 21,
|
||||
"type": "match"
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"nautilus_remember_password"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 594 KiB |
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"area": [
|
||||
{
|
||||
"xpos": 587,
|
||||
"ypos": 495,
|
||||
"width": 52,
|
||||
"height": 17,
|
||||
"type": "match"
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"nautilus_unlock"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 594 KiB |
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"area": [
|
||||
{
|
||||
"xpos": 400,
|
||||
"width": 55,
|
||||
"ypos": 219,
|
||||
"height": 24,
|
||||
"type": "match"
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"weather_report_hourly"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 120 KiB |
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"area": [
|
||||
{
|
||||
"ypos": 307,
|
||||
"height": 21,
|
||||
"type": "match",
|
||||
"width": 97,
|
||||
"xpos": 335
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"desktop_input_source_japanese_anthy"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 162 KiB |
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"area": [
|
||||
{
|
||||
"ypos": 98,
|
||||
"type": "match",
|
||||
"height": 18,
|
||||
"width": 115,
|
||||
"xpos": 574
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"kparted_runs"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 77 KiB |
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"area": [
|
||||
{
|
||||
"xpos": 459,
|
||||
"ypos": 96,
|
||||
"width": 104,
|
||||
"height": 23,
|
||||
"type": "match"
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"kwalletmanager_runs"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 647 KiB |
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
"area": [
|
||||
{
|
||||
"xpos": 20,
|
||||
"width": 25,
|
||||
"ypos": 728,
|
||||
"height": 24,
|
||||
"type": "match"
|
||||
}
|
||||
],
|
||||
"properties": [],
|
||||
"tags": [
|
||||
"DESKTOP-kde",
|
||||
"system_menu_button",
|
||||
"apps_menu_button"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 18 KiB |
|
@ -20,6 +20,8 @@
|
|||
"backend": "qemu",
|
||||
"settings": {
|
||||
"ARCH_BASE_MACHINE": "aarch64",
|
||||
"INSECURE_PFLASH_CODE": "/usr/share/edk2/aarch64/QEMU_EFI-pflash.raw",
|
||||
"INSECURE_PFLASH_VARS": "/usr/share/edk2/aarch64/vars-template-pflash.raw",
|
||||
"PART_TABLE_TYPE": "gpt",
|
||||
"QEMU": "aarch64",
|
||||
"QEMUCPU": "host",
|
||||
|
@ -56,6 +58,8 @@
|
|||
"backend": "qemu",
|
||||
"settings": {
|
||||
"ARCH_BASE_MACHINE": "64bit",
|
||||
"INSECURE_PFLASH_CODE": "/usr/share/edk2/ovmf/OVMF_CODE.fd",
|
||||
"INSECURE_PFLASH_VARS": "/usr/share/edk2/ovmf/OVMF_VARS.fd",
|
||||
"PART_TABLE_TYPE": "gpt",
|
||||
"QEMUCPU": "Nehalem",
|
||||
"QEMUCPUS": "2",
|
||||
|
@ -1353,6 +1357,20 @@
|
|||
"START_AFTER_TEST": "%DEPLOY_UPLOAD_TEST%"
|
||||
}
|
||||
},
|
||||
"desktop_keyring": {
|
||||
"profiles": {
|
||||
"fedora-Workstation-live-iso-ppc64le-*-ppc64le": 20,
|
||||
"fedora-Workstation-live-iso-x86_64-*-64bit": 20,
|
||||
"fedora-KDE-live-iso-x86_64-*-64bit": 30,
|
||||
"fedora-Workstation-raw_xz-raw.xz-aarch64-*-aarch64": 22
|
||||
},
|
||||
"settings": {
|
||||
"BOOTFROM": "c",
|
||||
"HDD_1": "disk_%FLAVOR%_%MACHINE%.qcow2",
|
||||
"POSTINSTALL_PATH": "tests/applications/keyring",
|
||||
"START_AFTER_TEST": "%DEPLOY_UPLOAD_TEST%"
|
||||
}
|
||||
},
|
||||
"desktop_update_graphical": {
|
||||
"profiles": {
|
||||
"fedora-KDE-live-iso-x86_64-*-64bit": 32,
|
||||
|
|
|
@ -33,6 +33,7 @@ sub run {
|
|||
}
|
||||
my $arch = get_var("ARCH");
|
||||
my $tag = get_var("TAG");
|
||||
my $copr = get_var("COPR");
|
||||
my $workarounds = get_workarounds;
|
||||
if (get_var("NUMDISKS") > 2) {
|
||||
# put /var/lib/mock on the third disk, so we don't run out of
|
||||
|
@ -50,13 +51,13 @@ sub run {
|
|||
assert_script_run "echo \"include('/etc/mock/fedora-${mockver}-${arch}.cfg')\" > /etc/mock/openqa.cfg";
|
||||
# make the side and workarounds repos and the serial device available inside the mock root
|
||||
assert_script_run 'echo "config_opts[\'plugin_conf\'][\'bind_mount_enable\'] = True" >> /etc/mock/openqa.cfg';
|
||||
assert_script_run 'echo "config_opts[\'plugin_conf\'][\'bind_mount_opts\'][\'dirs\'].append((\'/mnt/update_repo\', \'/mnt/update_repo\'))" >> /etc/mock/openqa.cfg' unless ($tag);
|
||||
assert_script_run 'echo "config_opts[\'plugin_conf\'][\'bind_mount_opts\'][\'dirs\'].append((\'/mnt/update_repo\', \'/mnt/update_repo\'))" >> /etc/mock/openqa.cfg' unless ($tag || $copr);
|
||||
assert_script_run 'echo "config_opts[\'plugin_conf\'][\'bind_mount_opts\'][\'dirs\'].append((\'/mnt/workarounds_repo\', \'/mnt/workarounds_repo\'))" >> /etc/mock/openqa.cfg' if ($workarounds);
|
||||
assert_script_run 'echo "config_opts[\'plugin_conf\'][\'bind_mount_opts\'][\'dirs\'].append((\'/dev/' . $serialdev . '\', \'/dev/' . $serialdev . '\'))" >> /etc/mock/openqa.cfg';
|
||||
my $repos = 'config_opts[\'dnf.conf\'] += \"\"\"\n';
|
||||
# add the update repo or tag repo to the config
|
||||
$repos .= '[advisory]\nname=Advisory repo\nbaseurl=file:///mnt/update_repo\nenabled=1\nmetadata_expire=3600\ngpgcheck=0\n' unless ($tag);
|
||||
$repos .= '[openqa-testtag]\nname=Tag test repo\nbaseurl=https://kojipkgs.fedoraproject.org/repos/' . "${tag}/latest/${arch}" . '\nenabled=1\nmetadata_expire=3600\ngpgcheck=0\n' if ($tag);
|
||||
# add the update, tag or COPR repo to the config
|
||||
$repos .= '[advisory]\nname=Advisory repo\nbaseurl=file:///mnt/update_repo\nenabled=1\nmetadata_expire=3600\ngpgcheck=0\n' unless ($tag || $copr);
|
||||
$repos .= '[openqa-testtag]\nname=Tag test repo\nbaseurl=' . get_var("UPDATE_OR_TAG_REPO") . '\nenabled=1\nmetadata_expire=3600\ngpgcheck=0\npriority=1\n' if ($tag || $copr);
|
||||
# and the workaround repo
|
||||
$repos .= '\n[workarounds]\nname=Workarounds repo\nbaseurl=file:///mnt/workarounds_repo\nenabled=1\nmetadata_expire=3600\ngpgcheck=0\n' if ($workarounds);
|
||||
# also the buildroot repo, for Rawhide
|
||||
|
@ -86,8 +87,8 @@ sub run {
|
|||
assert_script_run 'sed -i -e "s,dnf-yum,yum,g" teams/cloud/vagrant.xml';
|
||||
}
|
||||
# now add the side repo or tag repo to the appropriate repo XML
|
||||
assert_script_run 'printf "$(head -n -1 ' . $repoxml . ')\n <repository type=\"rpm-md\" alias=\"advisory\" sourcetype=\"baseurl\">\n <source path=\"file:///mnt/update_repo\"/>\n </repository>\n</image>\n" > ' . $repoxml unless ($tag);
|
||||
assert_script_run 'printf "$(head -n -1 ' . $repoxml . ')\n <repository type=\"rpm-md\" alias=\"openqa-testtag\" sourcetype=\"baseurl\">\n <source path=\"https://kojipkgs.fedoraproject.org/repos/' . "${tag}/latest/${arch}" . '\"/>\n </repository>\n</image>\n" > ' . $repoxml if ($tag);
|
||||
assert_script_run 'printf "$(head -n -1 ' . $repoxml . ')\n <repository type=\"rpm-md\" alias=\"advisory\" sourcetype=\"baseurl\">\n <source path=\"file:///mnt/update_repo\"/>\n </repository>\n</image>\n" > ' . $repoxml unless ($tag || $copr);
|
||||
assert_script_run 'printf "$(head -n -1 ' . $repoxml . ')\n <repository type=\"rpm-md\" alias=\"openqa-testtag\" sourcetype=\"baseurl\">\n <source path=\"' . get_var("UPDATE_OR_TAG_REPO") . '\"/>\n </repository>\n</image>\n" > ' . $repoxml if ($tag || $copr);
|
||||
# and the workarounds repo
|
||||
assert_script_run 'printf "$(head -n -1 ' . $repoxml . ')\n <repository type=\"rpm-md\" alias=\"workarounds\" sourcetype=\"baseurl\">\n <source path=\"file:///mnt/workarounds_repo\"/>\n </repository>\n</image>\n" > ' . $repoxml if ($workarounds);
|
||||
# and the buildroot repo, for Rawhide
|
||||
|
|
|
@ -27,8 +27,8 @@ sub run {
|
|||
}
|
||||
$cmd .= " --repo=/etc/yum.repos.d/workarounds.repo" if (get_workarounds);
|
||||
$cmd .= " --repo=/etc/yum.repos.d/koji-rawhide.repo" if ($version eq $rawrel);
|
||||
$cmd .= " --repo=/etc/yum.repos.d/advisory.repo" unless (get_var("TAG"));
|
||||
$cmd .= " --repo=/etc/yum.repos.d/openqa-testtag.repo" if (get_var("TAG"));
|
||||
$cmd .= " --repo=/etc/yum.repos.d/advisory.repo" unless (get_var("TAG") || get_var("COPR"));
|
||||
$cmd .= " --repo=/etc/yum.repos.d/openqa-testtag.repo" if (get_var("TAG") || get_var("COPR"));
|
||||
$cmd .= " ./results";
|
||||
assert_script_run $cmd, 2400;
|
||||
# good to have the log around for checks
|
||||
|
|
|
@ -17,7 +17,7 @@ sub run {
|
|||
sleep 2;
|
||||
# confirm empty passphrase
|
||||
send_key "ret";
|
||||
my $sshpub = script_output "cat /root/.ssh/id_rsa.pub";
|
||||
my $sshpub = script_output "cat /root/.ssh/id_ed25519.pub";
|
||||
# launch Firefox
|
||||
type_string "startx /usr/bin/firefox -width 1024 -height 768 http://172.16.2.118\n";
|
||||
# log in as admin
|
||||
|
|
|
@ -28,6 +28,7 @@ sub run {
|
|||
my $subv = get_var("SUBVARIANT");
|
||||
my $lcsubv = lc($subv);
|
||||
my $tag = get_var("TAG");
|
||||
my $copr = get_var("COPR");
|
||||
my $workarounds = get_workarounds;
|
||||
if (get_var("NUMDISKS") > 2) {
|
||||
# put /var/lib/mock on the third disk, so we don't run out of
|
||||
|
@ -45,13 +46,13 @@ sub run {
|
|||
assert_script_run "echo \"include('/etc/mock/fedora-${mockver}-${arch}.cfg')\" > /etc/mock/openqa.cfg";
|
||||
# make the side and workarounds repos and the serial device available inside the mock root
|
||||
assert_script_run 'echo "config_opts[\'plugin_conf\'][\'bind_mount_enable\'] = True" >> /etc/mock/openqa.cfg';
|
||||
assert_script_run 'echo "config_opts[\'plugin_conf\'][\'bind_mount_opts\'][\'dirs\'].append((\'/mnt/update_repo\', \'/mnt/update_repo\'))" >> /etc/mock/openqa.cfg' unless ($tag);
|
||||
assert_script_run 'echo "config_opts[\'plugin_conf\'][\'bind_mount_opts\'][\'dirs\'].append((\'/mnt/update_repo\', \'/mnt/update_repo\'))" >> /etc/mock/openqa.cfg' unless ($tag || $copr);
|
||||
assert_script_run 'echo "config_opts[\'plugin_conf\'][\'bind_mount_opts\'][\'dirs\'].append((\'/mnt/workarounds_repo\', \'/mnt/workarounds_repo\'))" >> /etc/mock/openqa.cfg' if ($workarounds);
|
||||
assert_script_run 'echo "config_opts[\'plugin_conf\'][\'bind_mount_opts\'][\'dirs\'].append((\'/dev/' . $serialdev . '\', \'/dev/' . $serialdev . '\'))" >> /etc/mock/openqa.cfg';
|
||||
my $repos = 'config_opts[\'dnf.conf\'] += \"\"\"\n';
|
||||
# add the update repo or tag repo to the config
|
||||
$repos .= '[advisory]\nname=Advisory repo\nbaseurl=file:///mnt/update_repo\nenabled=1\nmetadata_expire=3600\ngpgcheck=0\n' unless ($tag);
|
||||
$repos .= '[openqa-testtag]\nname=Tag test repo\nbaseurl=https://kojipkgs.fedoraproject.org/repos/' . "${tag}/latest/${arch}" . '\nenabled=1\nmetadata_expire=3600\ngpgcheck=0\n' if ($tag);
|
||||
# add the update, tag or COPR repo to the config
|
||||
$repos .= '[advisory]\nname=Advisory repo\nbaseurl=file:///mnt/update_repo\nenabled=1\nmetadata_expire=3600\ngpgcheck=0\n' unless ($tag || $copr);
|
||||
$repos .= '[openqa-testtag]\nname=Tag test repo\nbaseurl=' . get_var("UPDATE_OR_TAG_REPO") . '/\nenabled=1\nmetadata_expire=3600\ngpgcheck=0\npriority=1\n' if ($tag || $copr);
|
||||
# and the workaround repo
|
||||
$repos .= '\n[workarounds]\nname=Workarounds repo\nbaseurl=file:///mnt/workarounds_repo\nenabled=1\nmetadata_expire=3600\ngpgcheck=0\n' if ($workarounds);
|
||||
# also the buildroot repo, for Rawhide
|
||||
|
@ -68,9 +69,9 @@ sub run {
|
|||
assert_script_run 'git clone https://pagure.io/fedora-kickstarts.git';
|
||||
assert_script_run 'cd fedora-kickstarts';
|
||||
assert_script_run "git checkout ${branch}";
|
||||
# now add the side repo or tag repo to the appropriate repo ks
|
||||
assert_script_run 'echo "repo --name=advisory --baseurl=file:///mnt/update_repo" >> ' . $repoks unless ($tag);
|
||||
assert_script_run 'echo "repo --name=openqa-testtag --baseurl=https://kojipkgs.fedoraproject.org/repos/' . "${tag}/latest/${arch}" . '" >> ' . $repoks if ($tag);
|
||||
# now add the side, tag or COPR repo to the appropriate repo ks
|
||||
assert_script_run 'echo "repo --name=advisory --baseurl=file:///mnt/update_repo" >> ' . $repoks unless ($tag || $copr);
|
||||
assert_script_run 'echo "repo --name=openqa-testtag --baseurl=' . get_var("UPDATE_OR_TAG_REPO") . '" >> ' . $repoks if ($tag || $copr);
|
||||
# and the workarounds repo
|
||||
assert_script_run 'echo "repo --name=workarounds --baseurl=file:///mnt/workarounds_repo" >> ' . $repoks if ($workarounds);
|
||||
# and the buildroot repo, for Rawhide
|
||||
|
|
|
@ -10,20 +10,18 @@ sub run {
|
|||
my $rawrel = get_var("RAWREL");
|
||||
my $repo = $version eq $rawrel ? "fedora-rawhide.repo" : "fedora.repo";
|
||||
my $branch;
|
||||
my $releasever;
|
||||
if ($version eq $rawrel) {
|
||||
$branch = "main";
|
||||
$releasever = "Rawhide";
|
||||
}
|
||||
else {
|
||||
$branch = "f${version}";
|
||||
$releasever = $version;
|
||||
}
|
||||
my $advortask = get_var("ADVISORY_OR_TASK");
|
||||
my $arch = get_var("ARCH");
|
||||
my $subv = get_var("SUBVARIANT");
|
||||
my $lcsubv = lc($subv);
|
||||
my $tag = get_var("TAG");
|
||||
my $copr = get_var("COPR");
|
||||
my $workarounds = get_workarounds;
|
||||
# mount our nice big empty scratch disk as /var/tmp
|
||||
assert_script_run "rm -rf /var/tmp/*";
|
||||
|
@ -43,14 +41,14 @@ sub run {
|
|||
# now copy the advisory, workaround repo and koji-rawhide config files
|
||||
assert_script_run 'cp /etc/yum.repos.d/workarounds.repo .' if ($workarounds);
|
||||
assert_script_run 'cp /etc/yum.repos.d/koji-rawhide.repo .' if ($version eq $rawrel);
|
||||
assert_script_run 'cp /etc/yum.repos.d/advisory.repo .' unless ($tag);
|
||||
assert_script_run 'cp /etc/yum.repos.d/openqa-testtag.repo .' if ($tag);
|
||||
assert_script_run 'cp /etc/yum.repos.d/advisory.repo .' unless ($tag || $copr);
|
||||
assert_script_run 'cp /etc/yum.repos.d/openqa-testtag.repo .' if ($tag || $copr);
|
||||
# and add them to the config file
|
||||
my $repl = 'repos:';
|
||||
$repl .= '\n - workarounds' if ($workarounds);
|
||||
$repl .= '\n - koji-rawhide' if ($version eq $rawrel);
|
||||
$repl .= '\n - advisory' unless ($tag);
|
||||
$repl .= '\n - openqa-testtag' if ($tag);
|
||||
$repl .= '\n - advisory' unless ($tag || $copr);
|
||||
$repl .= '\n - openqa-testtag' if ($tag || $copr);
|
||||
# Up to Fedora 39, repo definitions are in the subvariant config...
|
||||
assert_script_run 'sed -i -e "s,repos:,' . $repl . ',g" fedora-' . $lcsubv . '.yaml';
|
||||
# From Fedora 40 onwards, they're in the common config. Let's just
|
||||
|
@ -106,8 +104,8 @@ sub run {
|
|||
}
|
||||
$cmd .= " --repo=/etc/yum.repos.d/workarounds.repo" if ($workarounds);
|
||||
$cmd .= " --repo=/etc/yum.repos.d/koji-rawhide.repo" if ($version eq $rawrel);
|
||||
$cmd .= " --repo=/etc/yum.repos.d/advisory.repo" unless ($tag);
|
||||
$cmd .= " --repo=/etc/yum.repos.d/openqa-testtag.repo" if ($tag);
|
||||
$cmd .= " --repo=/etc/yum.repos.d/advisory.repo" unless ($tag || $copr);
|
||||
$cmd .= " --repo=/etc/yum.repos.d/openqa-testtag.repo" if ($tag || $copr);
|
||||
$cmd .= " ./results";
|
||||
assert_script_run $cmd, 9000;
|
||||
# good to have the log around for checks
|
||||
|
|
|
@ -133,9 +133,11 @@ sub run {
|
|||
assert_script_run "mkdir -p /export";
|
||||
# get the kickstart
|
||||
assert_script_run "curl -o /export/root-user-crypted-net.ks https://fedorapeople.org/groups/qa/kickstarts/root-user-crypted-net.ks";
|
||||
# for update tests, set up the update repository and export it
|
||||
if (get_var("ADVISORY_OR_TASK") && !get_var("TAG")) {
|
||||
assert_script_run "echo '/mnt/update_repo 172.16.2.0/24(ro)' >> /etc/exports";
|
||||
# for update tests, set up the update repository and export it,
|
||||
# if we have one (for tag and copr tests we don't really need to
|
||||
# be here at all so we'll just sit here being useless)
|
||||
if (get_var("ADVISORY_OR_TASK")) {
|
||||
assert_script_run "echo '/mnt/update_repo 172.16.2.0/24(ro)' >> /etc/exports" if (!get_var("TAG") && !get_var("COPR"));
|
||||
}
|
||||
# for compose tests, we do all this stuff
|
||||
else {
|
||||
|
|
|
@ -0,0 +1,55 @@
|
|||
use base "installedtest";
|
||||
use strict;
|
||||
use testapi;
|
||||
use utils;
|
||||
|
||||
# This script will install the necessary things to test the Desktop Keyring on Gnome
|
||||
# and KDE, i.e.:
|
||||
# - we will set up the SSHd to accept connections with an SSH key
|
||||
# - we will create the ssh key for the user
|
||||
|
||||
sub run {
|
||||
my $self = shift;
|
||||
my $desktop = get_var("DESKTOP");
|
||||
my $user = get_var("USER") || "test";
|
||||
|
||||
# Switch to console
|
||||
$self->root_console(tty => 3);
|
||||
|
||||
# We install the necessary packages.
|
||||
if ($desktop eq "gnome") {
|
||||
assert_script_run("dnf -y install seahorse");
|
||||
}
|
||||
|
||||
# Enable and start SSHd.
|
||||
assert_script_run("systemctl enable sshd.service --now");
|
||||
|
||||
# Check that it is running (the assertion will fail if not)
|
||||
assert_script_run("systemctl status sshd.service --no-pager");
|
||||
|
||||
# Create the SSH keys for the user.
|
||||
# Change to the normal user
|
||||
enter_cmd("su -l $user");
|
||||
sleep 1;
|
||||
# Create the SSH key.
|
||||
enter_cmd("ssh-keygen");
|
||||
sleep 1;
|
||||
# Confirm the location of the key.
|
||||
send_key("ret");
|
||||
sleep 1;
|
||||
# Create a password for the key.
|
||||
type_very_safely("sshpassword\n");
|
||||
sleep 1;
|
||||
type_very_safely("sshpassword\n");
|
||||
sleep 1;
|
||||
# Logout the regular user
|
||||
enter_cmd("exit");
|
||||
}
|
||||
|
||||
sub test_flags {
|
||||
return {fatal => 1, milestone => 1};
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
# vim: set sw=4 et:
|
|
@ -0,0 +1,126 @@
|
|||
use base "installedtest";
|
||||
use strict;
|
||||
use testapi;
|
||||
use utils;
|
||||
|
||||
# This script will check that the password has been added
|
||||
# to the system keyring. We will start a wallet application
|
||||
# and check that the password is listed in that application.
|
||||
|
||||
sub connect_localhost {
|
||||
my $type = shift;
|
||||
my $user = get_var("USER_LOGIN", "test");
|
||||
my $pass = get_var("USER_PASSWORD", "weakpassword");
|
||||
# Use the file explorer to establish the connection
|
||||
# to the localhost.
|
||||
if (get_var("DESKTOP") eq "gnome") {
|
||||
menu_launch_type("nautilus");
|
||||
assert_screen("apps_run_files");
|
||||
assert_and_click("nautilus_other_locations");
|
||||
assert_and_click("nautilus_enter_address");
|
||||
type_very_safely("ssh://$user");
|
||||
type_very_safely('@localhost');
|
||||
send_key("ret");
|
||||
if ($type ne "reconnect") {
|
||||
wait_still_screen(3);
|
||||
type_very_safely($pass);
|
||||
assert_and_click("nautilus_remember_password");
|
||||
assert_and_click("nautilus_unlock");
|
||||
}
|
||||
assert_screen("nautilus_connection_established");
|
||||
send_key("alt-f4");
|
||||
}
|
||||
else {
|
||||
menu_launch_type("dolphin");
|
||||
assert_screen("dolphin_runs");
|
||||
assert_and_click("dolphin_explore_network");
|
||||
assert_and_click("dolphin_add_network_folder");
|
||||
assert_and_click("dolphin_rbutton_ssh");
|
||||
assert_and_click("kde_button_next");
|
||||
|
||||
type_very_safely("SSH folder");
|
||||
send_key("tab");
|
||||
type_very_safely($user);
|
||||
send_key("tab");
|
||||
type_very_safely("127.0.0.1");
|
||||
for my $i (1..3) {
|
||||
send_key("tab");
|
||||
}
|
||||
type_very_safely("/");
|
||||
assert_and_click("dolphin_save_and_connect");
|
||||
assert_and_click("kde_dismiss_notification");
|
||||
assert_and_click("dolphin_dont_askagain");
|
||||
assert_and_click("dolphin_connect_anyway");
|
||||
assert_screen("dolphin_network_ssh_connected");
|
||||
}
|
||||
}
|
||||
|
||||
sub check_stored {
|
||||
if (get_var("DESKTOP") eq "kde") {
|
||||
# Start the KDE wallet application and maximize it.
|
||||
menu_launch_type("kwalletmanager");
|
||||
assert_screen("kwalletmanager_runs");
|
||||
send_key("super-pgup");
|
||||
|
||||
# Navigate to the stored entry and check that
|
||||
# the credentials are stored there.
|
||||
assert_and_dclick("keyring_sshkeys_unfold");
|
||||
assert_and_dclick("keyring_sshkey_values");
|
||||
assert_screen("keyring_keys_values");
|
||||
}
|
||||
else {
|
||||
# Start the Seahorse application and maximize it.
|
||||
menu_launch_type("seahorse");
|
||||
assert_screen("apps_run_seahorse");
|
||||
send_key("super-up");
|
||||
|
||||
# Navigate to the stored entry and check
|
||||
# that the credentials are stored there.
|
||||
assert_and_click("keyring_seahorse_login");
|
||||
assert_and_dclick("keyring_seahorse_login_details");
|
||||
assert_screen("keyring_seahorse_details_shown");
|
||||
assert_and_click("keyring_seahorse_show_password");
|
||||
assert_screen("keyring_seahorse_password_shown");
|
||||
}
|
||||
}
|
||||
|
||||
sub run {
|
||||
my $self = shift;
|
||||
my $desktop = get_var("DESKTOP");
|
||||
my $user = get_var("USER_LOGIN", "test");
|
||||
my $pass = get_var("USER_PASSWORD", "weakpassword");
|
||||
|
||||
enter_cmd("echo 'Starting test for keyring_password.'");
|
||||
|
||||
# We are still at the root console, but for the following steps,
|
||||
# there is nothing we should be doing there, so we switch back
|
||||
# to the graphical desktop.
|
||||
desktop_vt();
|
||||
|
||||
# Lets connect to localhost via SSH. This should result in
|
||||
# asking for a password and storing the credentials for later use.
|
||||
connect_localhost("connect");
|
||||
# Check that the password has been stored.
|
||||
check_stored();
|
||||
|
||||
# Reboot the machine, log onto the session again.
|
||||
$self->root_console(tty => 3);
|
||||
enter_cmd("reboot");
|
||||
boot_to_login_screen();
|
||||
send_key("ret");
|
||||
type_very_safely("$pass\n");
|
||||
wait_still_screen(3);
|
||||
send_key("esc");
|
||||
|
||||
# Reconnect without using password. We still should be
|
||||
# able to log in.
|
||||
connect_localhost("reconnect");
|
||||
}
|
||||
|
||||
sub test_flags {
|
||||
return {fatal => 0, always_rollback => 1};
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
# vim: set sw=4 et:
|
|
@ -0,0 +1,111 @@
|
|||
use base "installedtest";
|
||||
use strict;
|
||||
use testapi;
|
||||
use utils;
|
||||
|
||||
# This script will check that the password has been added
|
||||
# to the system keyring. We will start a wallet application
|
||||
# and check that the password is listed in that application.
|
||||
|
||||
sub connect_localhost {
|
||||
my $user = get_var("USER_LOGIN", "test");
|
||||
my ($type) = @_;
|
||||
# Start the terminal application.
|
||||
if (get_var("DESKTOP") eq "gnome") {
|
||||
menu_launch_type("terminal");
|
||||
assert_screen("apps_run_terminal");
|
||||
}
|
||||
else {
|
||||
menu_launch_type("konsole");
|
||||
assert_screen("konsole_runs");
|
||||
}
|
||||
|
||||
# Use SSH to log onto the localhost without needing
|
||||
# a password. The log-in process should only require
|
||||
# the actual command.
|
||||
|
||||
type_very_safely("ssh $user");
|
||||
type_very_safely('@localhost');
|
||||
send_key("ret");
|
||||
sleep 2;
|
||||
|
||||
if ($type ne "reconnect") {
|
||||
# Answer yes for the upcoming warning.
|
||||
type_very_safely("yes\n");
|
||||
wait_still_screen(2);
|
||||
|
||||
# Open the SSH key.
|
||||
type_very_safely("sshpassword");
|
||||
|
||||
# Unlock the password when logged in.
|
||||
assert_and_click("keyring_open_when_logged");
|
||||
assert_and_click("keyring_sshkey_unlock");
|
||||
wait_still_screen(2);
|
||||
}
|
||||
|
||||
# Check that more instances are logged in.
|
||||
enter_cmd("who\n");
|
||||
assert_screen("keyring_multiple_instances");
|
||||
|
||||
# Exit the terminal app.
|
||||
enter_cmd("exit");
|
||||
}
|
||||
|
||||
sub run {
|
||||
my $self = shift;
|
||||
my $desktop = get_var("DESKTOP");
|
||||
my $user = get_var("USER_LOGIN", "test");
|
||||
my $pass = get_var("USER_PASSWORD", "weakpassword");
|
||||
|
||||
# We are still at the root console and for the following steps,
|
||||
# we will need to perform more set up steps.
|
||||
|
||||
# We install the necessary packages.
|
||||
if ($desktop eq "gnome") {
|
||||
assert_script_run("dnf -y install seahorse");
|
||||
}
|
||||
|
||||
# Set up the SSH daemon
|
||||
# Create a drop-in configuration file.
|
||||
enter_cmd("touch /etc/ssh/ssh_config.d/30-passwordless.conf");
|
||||
enter_cmd('echo "Host *" >> /etc/ssh/ssh_config.d/30-passwordless.conf');
|
||||
enter_cmd('echo " PasswordAuthentication no" >> /etc/ssh/ssh_config.d/30-passwordless.conf');
|
||||
|
||||
# Restart the SSHd.
|
||||
assert_script_run("systemctl restart sshd.service");
|
||||
|
||||
# Check that it is running (the assertion will fail if not)
|
||||
assert_script_run("systemctl status sshd.service --no-pager");
|
||||
|
||||
# Authorize the SSH key.
|
||||
enter_cmd("su -l $user");
|
||||
enter_cmd('echo $(cat ~/.ssh/id_ed25519.pub) > ~/.ssh/authorized_keys');
|
||||
enter_cmd("exit");
|
||||
|
||||
# Return to desktop
|
||||
desktop_vt();
|
||||
|
||||
# Use SSH to connect to the localhost.
|
||||
connect_localhost("connect");
|
||||
|
||||
# Reboot the machine, log onto the session again.
|
||||
$self->root_console(tty => 3);
|
||||
enter_cmd("reboot");
|
||||
boot_to_login_screen();
|
||||
send_key("ret");
|
||||
type_very_safely("$pass\n");
|
||||
wait_still_screen(3);
|
||||
send_key("esc");
|
||||
|
||||
# Reconnect without using password. We still should be
|
||||
# able to log in.
|
||||
connect_localhost("reconnect");
|
||||
}
|
||||
|
||||
sub test_flags {
|
||||
return {fatal => 0, always_rollback => 1};
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
# vim: set sw=4 et:
|
|
@ -0,0 +1,30 @@
|
|||
use base "installedtest";
|
||||
use strict;
|
||||
use testapi;
|
||||
use utils;
|
||||
|
||||
# This part of the suite tests that Evince can be switched into night mode.
|
||||
|
||||
sub run {
|
||||
my $self = shift;
|
||||
|
||||
# Click on the Menu button.
|
||||
assert_and_click("gnome_burger_menu", timeout => 30, button => "left");
|
||||
|
||||
# Click on the Night mode to select it.
|
||||
assert_and_click("evince_toggle_night_mode", button => "left", timeout => 30);
|
||||
|
||||
# The menu stays opened, so hit Esc to dismiss it.
|
||||
send_key("esc");
|
||||
wait_still_screen 2;
|
||||
|
||||
# Check that night mode has been activated.
|
||||
assert_screen("evince_night_mode", timeout => 30);
|
||||
|
||||
}
|
||||
|
||||
sub test_flags {
|
||||
return {always_rollback => 1};
|
||||
}
|
||||
|
||||
1;
|
|
@ -23,6 +23,13 @@ sub run {
|
|||
|
||||
# run the updater
|
||||
if ($desktop eq 'kde') {
|
||||
# try and avoid double-typing issues, same way we do
|
||||
# for apps_startstop test
|
||||
wait_screen_change { send_key 'super'; };
|
||||
wait_still_screen 3;
|
||||
send_key "k";
|
||||
wait_still_screen 5;
|
||||
send_key "esc";
|
||||
menu_launch_type('discover');
|
||||
# Wait for it to run and maximize it to make sure we see the
|
||||
# Updates entry
|
||||
|
|
|
@ -10,20 +10,25 @@ sub run {
|
|||
|
||||
my $self = shift;
|
||||
$self->root_console(tty => 3);
|
||||
# Trust the SSL certificate for the proxy we use to MITM flathub
|
||||
# to reduce external traffic
|
||||
# https://pagure.io/fedora-infrastructure/issue/11634
|
||||
assert_script_run("curl -o /etc/pki/ca-trust/source/anchors/flathub-proxy.crt https://fedorapeople.org/groups/qa/openqa-data/flathub-proxy.crt");
|
||||
assert_script_run("update-ca-trust");
|
||||
|
||||
# On Silverblue, Flathub is not set as a Flatpak remote by default, only when Third Party Repos
|
||||
# are enabled. To make sure, we have it enabled, we will use the following command to
|
||||
# add the Flathub repository.
|
||||
assert_script_run("sudo flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo");
|
||||
assert_script_run("sudo http_proxy=http://flatpak-cache01.iad2.fedoraproject.org:3128 flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo");
|
||||
|
||||
# Check that the Flathub repository has been added into the repositories.
|
||||
validate_script_output("flatpak remotes", sub { m/flathub/ });
|
||||
|
||||
# Now, we can search for an application that only exists in Flathub.
|
||||
validate_script_output("flatpak search focuswriter", sub { m/org.gottcode.FocusWriter/ });
|
||||
validate_script_output("http_proxy=http://flatpak-cache01.iad2.fedoraproject.org:3128 flatpak search focuswriter", sub { m/org.gottcode.FocusWriter/ });
|
||||
|
||||
# And we can install it
|
||||
assert_script_run("flatpak install -y org.gottcode.FocusWriter", timeout => 600);
|
||||
assert_script_run("http_proxy=http://flatpak-cache01.iad2.fedoraproject.org:3128 flatpak install -y org.gottcode.FocusWriter", timeout => 600);
|
||||
|
||||
# Check that now the application is listed in the installed flatpaks.
|
||||
assert_script_run("flatpak list | grep org.gottcode.FocusWriter");
|
||||
|
|
|
@ -19,7 +19,7 @@ sub run {
|
|||
assert_script_run("flatpak remote-add --if-not-exists flatpaktest https://lruzicka.fedorapeople.org/flatpaktest/flatpaktest.flatpakrepo", timeout => 120);
|
||||
|
||||
# Install the Dummy application.
|
||||
assert_script_run("flatpak install -y org.flatpak.Dummy", timeout => 600);
|
||||
assert_script_run("http_proxy=http://flatpak-cache01.iad2.fedoraproject.org:3128 flatpak install -y org.flatpak.Dummy", timeout => 600);
|
||||
# Check that the application has been installed
|
||||
assert_script_run("flatpak list | grep org.flatpak.Dummy");
|
||||
|
||||
|
|
|
@ -41,6 +41,15 @@ sub run {
|
|||
}
|
||||
# Let's check, that the desktop is shown.
|
||||
check_desktop();
|
||||
# On KDE, try and avoid double-typing issues, same way we do
|
||||
# for apps_startstop test
|
||||
if ($desktop eq "kde") {
|
||||
wait_screen_change { send_key 'super'; };
|
||||
wait_still_screen 3;
|
||||
send_key "k";
|
||||
wait_still_screen 5;
|
||||
send_key "esc";
|
||||
}
|
||||
|
||||
# Start the package manager application depending
|
||||
# on which DE we are on.
|
||||
|
|