os-autoinst-distri-rocky/lib/freeipa.pm
Adam Williamson ad99c3fc23 Handle Xorg starting unusually slowly, but soft fail (#1622254)
There seems to be a bug in Rawhide lately where, when our tests
want to install a bare X and run Firefox on it, this takes an
unusually long time to start up, with SELinux in enforcing mode.
With SELinux in permissive mode it starts as fast as usual. This
isn't a hard failure and we don't want it to block all later
tests, so let's handle it and treat it as a soft fail.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2018-08-24 15:39:16 -07:00

63 lines
2.1 KiB
Perl

package freeipa;
use strict;
use base 'Exporter';
use Exporter;
use testapi;
use utils;
our @EXPORT = qw/add_user start_webui/;
# add a user with given username and surname, always uses the password
# "correcthorse". Assumes FreeIPA web UI is showing the Users screen.
sub add_user {
my ($user, $surname) = @_;
wait_still_screen 1;
assert_and_click "freeipa_webui_add_button";
assert_screen "freeipa_webui_add_user";
wait_still_screen 1;
type_safely $user;
wait_screen_change { send_key "tab"; };
# we don't need to be too careful here as the names don't matter
type_safely "Test";
wait_screen_change { send_key "tab"; };
type_safely $surname;
type_safely "\t\t\t\t";
type_safely "correcthorse";
wait_screen_change { send_key "tab"; };
type_safely "correcthorse\n";
}
# access the FreeIPA web UI and log in as a given user. Assumes
# it's at a console ready to start Firefox.
sub start_webui {
my ($user, $password) = @_;
# if we logged in as 'admin' we should land on the admin 'Active
# users' screen, otherwise we should land on the user's own page
my $user_screen = "freeipa_webui_user";
$user_screen = "freeipa_webui_users" if ($user eq 'admin');
# https://bugzilla.redhat.com/show_bug.cgi?id=1439429
assert_script_run "sed -i -e 's,enable_xauth=1,enable_xauth=0,g' /usr/bin/startx";
type_string "startx /usr/bin/firefox -width 1024 -height 768 https://ipa001.domain.local\n";
unless (check_screen ["freeipa_webui_login", $user_screen], 30) {
record_soft_failure "X starting slowly! Maybe RHBZ#1622254";
assert_screen ["freeipa_webui_login", $user_screen], 30;
}
wait_still_screen 5;
# softfail on kerberos ticket bugs meaning we get auto-logged in
# as the requested user when we don't expect to be
if (match_has_tag $user_screen) {
record_soft_failure "already logged in to web UI";
}
else {
type_safely $user;
wait_screen_change { send_key "tab"; };
type_safely $password;
send_key "ret";
assert_screen $user_screen;
}
wait_still_screen 3;
}