mirror of
https://pagure.io/fedora-qa/os-autoinst-distri-fedora.git
synced 2024-11-26 23:53:08 +00:00
Compare commits
3 Commits
8849d505ce
...
15c344f00c
Author | SHA1 | Date | |
---|---|---|---|
|
15c344f00c | ||
|
b870ec9bf3 | ||
|
7657b8bb16 |
34
lib/utils.pm
34
lib/utils.pm
@ -7,7 +7,7 @@ use Exporter;
|
|||||||
|
|
||||||
use lockapi;
|
use lockapi;
|
||||||
use testapi qw(is_serial_terminal :DEFAULT);
|
use testapi qw(is_serial_terminal :DEFAULT);
|
||||||
our @EXPORT = qw/run_with_error_check type_safely type_very_safely desktop_vt boot_to_login_screen console_login console_switch_layout desktop_switch_layout console_loadkeys_us do_bootloader boot_decrypt check_release menu_launch_type setup_repos repo_setup get_workarounds disable_updates_repos cleanup_workaround_repo console_initial_setup handle_welcome_screen gnome_initial_setup anaconda_create_user check_desktop quit_firefox advisory_get_installed_packages acnp_handle_output advisory_check_nonmatching_packages start_with_launcher quit_with_shortcut disable_firefox_studies select_rescue_mode copy_devcdrom_as_isofile get_release_number check_left_bar check_top_bar check_prerelease check_version spell_version_number _assert_and_click is_branched rec_log repos_mirrorlist register_application get_registered_applications solidify_wallpaper check_and_install_git download_testdata make_serial_writable set_update_notification_timestamp kde_doublek_workaround/;
|
our @EXPORT = qw/run_with_error_check type_safely type_very_safely desktop_vt boot_to_login_screen console_login console_switch_layout desktop_switch_layout console_loadkeys_us do_bootloader boot_decrypt check_release menu_launch_type setup_repos repo_setup get_workarounds disable_updates_repos cleanup_workaround_repo console_initial_setup handle_welcome_screen gnome_initial_setup anaconda_create_user check_desktop quit_firefox advisory_get_installed_packages acnp_handle_output advisory_check_nonmatching_packages start_with_launcher quit_with_shortcut disable_firefox_studies select_rescue_mode copy_devcdrom_as_isofile get_release_number check_left_bar check_top_bar check_prerelease check_version spell_version_number _assert_and_click is_branched rec_log repos_mirrorlist register_application get_registered_applications solidify_wallpaper check_and_install_git download_testdata make_serial_writable set_update_notification_timestamp kde_doublek_workaround dm_perform_login/;
|
||||||
|
|
||||||
|
|
||||||
# We introduce this global variable to hold the list of applications that have
|
# We introduce this global variable to hold the list of applications that have
|
||||||
@ -1777,4 +1777,36 @@ sub kde_doublek_workaround {
|
|||||||
wait_still_screen 3;
|
wait_still_screen 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# handle login at a graphical DM once we have reached the initial
|
||||||
|
# DM screen. Factored out of _graphical_wait_login for reuse by
|
||||||
|
# tests that reboot and need to login afterwards
|
||||||
|
sub dm_perform_login {
|
||||||
|
my ($desktop, $password) = @_;
|
||||||
|
# GDM 3.24.1 dumps a cursor in the middle of the screen here...
|
||||||
|
mouse_hide;
|
||||||
|
if ($desktop eq 'gnome') {
|
||||||
|
# we have to hit enter to get the password dialog, and it
|
||||||
|
# doesn't always work for some reason so just try it three
|
||||||
|
# times
|
||||||
|
send_key_until_needlematch("graphical_login_input", "ret", 3, 5);
|
||||||
|
}
|
||||||
|
assert_screen "graphical_login_input";
|
||||||
|
# seems like we often double-type on aarch64 if we start right
|
||||||
|
# away
|
||||||
|
wait_still_screen(stilltime => 5, similarity_level => 38);
|
||||||
|
if (get_var("SWITCHED_LAYOUT")) {
|
||||||
|
# see _do_install_and_reboot; when layout is switched
|
||||||
|
# user password is doubled to contain both US and native
|
||||||
|
# chars
|
||||||
|
desktop_switch_layout 'ascii';
|
||||||
|
type_very_safely $password;
|
||||||
|
desktop_switch_layout 'native';
|
||||||
|
type_very_safely $password;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
type_very_safely $password;
|
||||||
|
}
|
||||||
|
send_key "ret";
|
||||||
|
}
|
||||||
|
|
||||||
1;
|
1;
|
||||||
|
7
main.pm
7
main.pm
@ -352,11 +352,8 @@ sub load_postinstall_tests() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# load the ADVISORY / KOJITASK post-install test - this records which
|
# load the ADVISORY / KOJITASK post-install test - this records which
|
||||||
# update or task packages were actually installed during the test. Don't
|
# update or task packages were actually installed during the test.
|
||||||
# do this for netinst tests; as these just use the default install repo,
|
if (get_var("ADVISORY_OR_TASK") && !get_var("NO_ADVISORY_POST")) {
|
||||||
# they will not get the packages from the update. But installs from live
|
|
||||||
# image and ostree installer image should get them.
|
|
||||||
if (get_var("ADVISORY_OR_TASK") && get_var("TEST") ne "install_default_update_netinst") {
|
|
||||||
# don't do this for support server unless the update is for the same
|
# don't do this for support server unless the update is for the same
|
||||||
# release as the support server disk image, as we don't install the
|
# release as the support server disk image, as we don't install the
|
||||||
# updates on support server when they differ
|
# updates on support server when they differ
|
||||||
|
@ -351,12 +351,30 @@
|
|||||||
"fedora-updates-workstation-x86_64-*-64bit": 5
|
"fedora-updates-workstation-x86_64-*-64bit": 5
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"desktop_keyring": {
|
||||||
|
"profiles": {
|
||||||
|
"fedora-updates-kde-x86_64-*-64bit": 5,
|
||||||
|
"fedora-updates-workstation-x86_64-*-64bit": 5
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"desktop_login": {
|
||||||
|
"profiles": {
|
||||||
|
"fedora-updates-kde-x86_64-*-64bit": 5,
|
||||||
|
"fedora-updates-workstation-x86_64-*-64bit": 5
|
||||||
|
}
|
||||||
|
},
|
||||||
"desktop_printing": {
|
"desktop_printing": {
|
||||||
"profiles": {
|
"profiles": {
|
||||||
"fedora-updates-kde-x86_64-*-64bit": 5,
|
"fedora-updates-kde-x86_64-*-64bit": 5,
|
||||||
"fedora-updates-workstation-x86_64-*-64bit": 5
|
"fedora-updates-workstation-x86_64-*-64bit": 5
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"desktop_printing_builtin": {
|
||||||
|
"profiles": {
|
||||||
|
"fedora-updates-kde-x86_64-*-64bit": 5,
|
||||||
|
"fedora-updates-workstation-x86_64-*-64bit": 5
|
||||||
|
}
|
||||||
|
},
|
||||||
"desktop_terminal": {
|
"desktop_terminal": {
|
||||||
"profiles": {
|
"profiles": {
|
||||||
"fedora-updates-kde-x86_64-*-64bit": 5,
|
"fedora-updates-kde-x86_64-*-64bit": 5,
|
||||||
@ -395,6 +413,7 @@
|
|||||||
"INSTALL_UNLOCK": "support_ready",
|
"INSTALL_UNLOCK": "support_ready",
|
||||||
"ISO": "%ADVISORY_OR_TASK%-netinst-%ARCH%.iso",
|
"ISO": "%ADVISORY_OR_TASK%-netinst-%ARCH%.iso",
|
||||||
"NICTYPE": "tap",
|
"NICTYPE": "tap",
|
||||||
|
"NO_ADVISORY_POST": "1",
|
||||||
"PACKAGE_SET": "default",
|
"PACKAGE_SET": "default",
|
||||||
"PARALLEL_WITH": "support_server@%ARCH_BASE_MACHINE%",
|
"PARALLEL_WITH": "support_server@%ARCH_BASE_MACHINE%",
|
||||||
"WORKER_CLASS": "tap"
|
"WORKER_CLASS": "tap"
|
||||||
@ -601,6 +620,11 @@
|
|||||||
"fedora-updates-everything-boot-iso-x86_64-*-64bit": 5
|
"fedora-updates-everything-boot-iso-x86_64-*-64bit": 5
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"toolbox": {
|
||||||
|
"profiles": {
|
||||||
|
"fedora-updates-workstation-x86_64-*-64bit": 5
|
||||||
|
}
|
||||||
|
},
|
||||||
"upgrade_desktop_encrypted_64bit": {
|
"upgrade_desktop_encrypted_64bit": {
|
||||||
"profiles": {
|
"profiles": {
|
||||||
"fedora-updates-workstation-upgrade-x86_64-*-64bit": 5
|
"fedora-updates-workstation-upgrade-x86_64-*-64bit": 5
|
||||||
|
@ -932,6 +932,8 @@
|
|||||||
"settings": {
|
"settings": {
|
||||||
"BOOTFROM": "c",
|
"BOOTFROM": "c",
|
||||||
"HDD_1": "disk_%FLAVOR%_%MACHINE%.qcow2",
|
"HDD_1": "disk_%FLAVOR%_%MACHINE%.qcow2",
|
||||||
|
"NO_ADVISORY_POST": "1",
|
||||||
|
"NO_UEFI_POST": "1",
|
||||||
"POSTINSTALL": "desktop_login",
|
"POSTINSTALL": "desktop_login",
|
||||||
"START_AFTER_TEST": "%DEPLOY_UPLOAD_TEST%"
|
"START_AFTER_TEST": "%DEPLOY_UPLOAD_TEST%"
|
||||||
}
|
}
|
||||||
|
@ -126,13 +126,6 @@ sub check_stored {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
sub perform_login {
|
|
||||||
my $password = shift;
|
|
||||||
send_key("ret") if ($desktop eq "gnome");
|
|
||||||
type_very_safely("$password\n");
|
|
||||||
check_desktop;
|
|
||||||
}
|
|
||||||
|
|
||||||
sub run {
|
sub run {
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
|
|
||||||
@ -142,7 +135,8 @@ sub run {
|
|||||||
desktop_vt();
|
desktop_vt();
|
||||||
|
|
||||||
if (check_screen("login_screen", timeout => 30)) {
|
if (check_screen("login_screen", timeout => 30)) {
|
||||||
perform_login($pass);
|
dm_perform_login($desktop, $pass);
|
||||||
|
check_desktop;
|
||||||
}
|
}
|
||||||
|
|
||||||
# Lets connect to localhost via SSH. This should result in
|
# Lets connect to localhost via SSH. This should result in
|
||||||
@ -159,7 +153,8 @@ sub run {
|
|||||||
|
|
||||||
# Boot to login screen and type in the password.
|
# Boot to login screen and type in the password.
|
||||||
boot_to_login_screen();
|
boot_to_login_screen();
|
||||||
perform_login($pass);
|
dm_perform_login($desktop, $pass);
|
||||||
|
check_desktop;
|
||||||
|
|
||||||
# Repeat the connection procedure, but skip the password
|
# Repeat the connection procedure, but skip the password
|
||||||
# handling process as this will be done by the keyring.
|
# handling process as this will be done by the keyring.
|
||||||
|
@ -76,13 +76,6 @@ sub connect_localhost {
|
|||||||
enter_cmd("exit");
|
enter_cmd("exit");
|
||||||
}
|
}
|
||||||
|
|
||||||
sub perform_login {
|
|
||||||
my $password = shift;
|
|
||||||
send_key("ret") if ($desktop eq "gnome");
|
|
||||||
type_very_safely("$password\n");
|
|
||||||
check_desktop;
|
|
||||||
}
|
|
||||||
|
|
||||||
sub run {
|
sub run {
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
|
|
||||||
@ -99,7 +92,8 @@ sub run {
|
|||||||
|
|
||||||
# If we arrive to a login screen, perform login
|
# If we arrive to a login screen, perform login
|
||||||
if (check_screen("login_screen", timeout => 30)) {
|
if (check_screen("login_screen", timeout => 30)) {
|
||||||
perform_login($pass);
|
dm_perform_login($desktop, $pass);
|
||||||
|
check_desktop;
|
||||||
}
|
}
|
||||||
|
|
||||||
# Use SSH to connect to the localhost.
|
# Use SSH to connect to the localhost.
|
||||||
@ -110,7 +104,8 @@ sub run {
|
|||||||
enter_cmd("reboot");
|
enter_cmd("reboot");
|
||||||
# Log in.
|
# Log in.
|
||||||
boot_to_login_screen();
|
boot_to_login_screen();
|
||||||
perform_login($pass);
|
dm_perform_login($desktop, $pass);
|
||||||
|
check_desktop;
|
||||||
|
|
||||||
# Reconnect without using password. We still should be
|
# Reconnect without using password. We still should be
|
||||||
# able to log in.
|
# able to log in.
|
||||||
|
@ -20,10 +20,7 @@ sub run {
|
|||||||
# "Login with a reader, but no enrolled prints"
|
# "Login with a reader, but no enrolled prints"
|
||||||
type_string "reboot\n";
|
type_string "reboot\n";
|
||||||
assert_screen "graphical_login", 180;
|
assert_screen "graphical_login", 180;
|
||||||
mouse_hide;
|
dm_perform_login('gnome', 'weakpassword');
|
||||||
send_key_until_needlematch("graphical_login_input", "ret", 3, 5);
|
|
||||||
type_very_safely "weakpassword";
|
|
||||||
send_key "ret";
|
|
||||||
check_desktop(timeout => 60);
|
check_desktop(timeout => 60);
|
||||||
wait_still_screen 10;
|
wait_still_screen 10;
|
||||||
$self->root_console(tty => 5);
|
$self->root_console(tty => 5);
|
||||||
|
@ -77,19 +77,10 @@ sub run {
|
|||||||
type_string "systemctl start graphical.target\n";
|
type_string "systemctl start graphical.target\n";
|
||||||
# we trust systemd to switch us to the right tty here
|
# we trust systemd to switch us to the right tty here
|
||||||
if (get_var("BOOTFROM")) {
|
if (get_var("BOOTFROM")) {
|
||||||
|
my $password = get_var("USER_PASSWORD", "weakpassword");
|
||||||
assert_screen 'graphical_login', 60;
|
assert_screen 'graphical_login', 60;
|
||||||
wait_still_screen 10, 30;
|
wait_still_screen 10, 30;
|
||||||
# GDM 3.24.1 dumps a cursor in the middle of the screen here...
|
dm_perform_login($desktop, $password);
|
||||||
mouse_hide;
|
|
||||||
if ($desktop eq 'gnome') {
|
|
||||||
# we have to hit enter to get the password dialog, and it
|
|
||||||
# doesn't always work for some reason so just try it three
|
|
||||||
# times
|
|
||||||
send_key_until_needlematch("graphical_login_input", "ret", 3, 5);
|
|
||||||
}
|
|
||||||
assert_screen "graphical_login_input";
|
|
||||||
type_very_safely get_var("USER_PASSWORD", "weakpassword");
|
|
||||||
send_key 'ret';
|
|
||||||
}
|
}
|
||||||
check_desktop(timeout => 90);
|
check_desktop(timeout => 90);
|
||||||
# now, WE WAIT. this is just an unconditional wait - rather than
|
# now, WE WAIT. this is just an unconditional wait - rather than
|
||||||
|
@ -27,8 +27,8 @@ sub run {
|
|||||||
assert_script_run "podman pull registry.fedoraproject.org/fedora:latest", 300;
|
assert_script_run "podman pull registry.fedoraproject.org/fedora:latest", 300;
|
||||||
# run hello-world to test
|
# run hello-world to test
|
||||||
validate_script_output "podman run -it registry.fedoraproject.org/fedora:latest echo Hello-World", sub { m/Hello-World/ };
|
validate_script_output "podman run -it registry.fedoraproject.org/fedora:latest echo Hello-World", sub { m/Hello-World/ };
|
||||||
# create a Dockerfile
|
# create a Containerfile
|
||||||
assert_script_run 'printf \'FROM registry.fedoraproject.org/fedora:latest\nRUN /usr/bin/dnf install -y httpd\nEXPOSE 80\nCMD ["-D", "FOREGROUND"]\nENTRYPOINT ["/usr/sbin/httpd"]\n\' > Dockerfile';
|
assert_script_run 'printf \'FROM registry.fedoraproject.org/fedora:latest\nRUN /usr/bin/dnf install -y httpd\nEXPOSE 80\nCMD ["-D", "FOREGROUND"]\nENTRYPOINT ["/usr/sbin/httpd"]\n\' > Containerfile';
|
||||||
# Build an image
|
# Build an image
|
||||||
assert_script_run 'podman build -t fedora-httpd $(pwd)', 180;
|
assert_script_run 'podman build -t fedora-httpd $(pwd)', 180;
|
||||||
# Verify the image
|
# Verify the image
|
||||||
|
Loading…
Reference in New Issue
Block a user