Skip to content

Commit 263ad5e

Browse files
committed
WIP: Adjust test modules to run against SLE
The test was adjusted using openqa_install+publish from O3. https://progress.opensuse.org/issues/127286 Signed-off-by: Ioannis Bonatakis <ybonatakis@suse.com>
1 parent 0ac27d4 commit 263ad5e

File tree

12 files changed

+96
-13
lines changed

12 files changed

+96
-13
lines changed

lib/utils.pm

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use Exporter;
55
use testapi;
66
use File::Basename qw(basename);
77

8-
our @EXPORT = qw(get_log install_packages clear_root_console switch_to_root_console switch_to_x11 wait_for_desktop login ensure_unlocked_desktop wait_for_container_log prepare_firefox_autoconfig disable_packagekit);
8+
our @EXPORT = qw(get_log install_packages clear_root_console switch_to_root_console switch_to_x11 wait_for_desktop wait_to_boot login ensure_unlocked_desktop wait_for_container_log prepare_firefox_autoconfig disable_packagekit);
99

1010
sub get_log ($cmd, $name) {
1111
my $ret = script_run "$cmd | tee $name";
@@ -32,10 +32,17 @@ sub switch_to_x11 {
3232
# older openSUSE Tumbleweed has x11 still on tty7
3333
# minimalx has x11 on tty7
3434
my $x11_tty = ($hdd[3] < 20190617 or check_var('DESKTOP', 'minimalx')) ? 'f7' : 'f2';
35+
$x11_tty = 'f2' if (get_required_var('VERSION') =~ /sle/);
3536
send_key "ctrl-alt-$x11_tty";
3637
}
3738

3839
sub handle_gui_password {
40+
unless (get_required_var('VERSION') =~ /(tw|Tumbleweed)/) {
41+
if (assert_screen('username-prompt')) {
42+
type_string "root" ;
43+
send_key 'ret';
44+
}
45+
}
3946
assert_screen 'lockscreen-password-prompt';
4047
type_password;
4148
assert_screen 'lockscreen-typed-password';
@@ -57,6 +64,26 @@ sub wait_for_desktop {
5764
assert_screen 'generic-desktop';
5865
}
5966

67+
# sle
68+
sub wait_to_boot {
69+
assert_screen('boot-menu');
70+
send_key 'ret' if match_has_tag('boot-menu');
71+
send_key 'ret' if assert_screen('first-boot');
72+
send_key 'ret' if assert_screen('firstboot-lang');
73+
send_key 'ret' if assert_screen('firstboot-licence');
74+
send_key 'ret' if assert_screen('firstboot-uela-confirm');
75+
send_key 'ret' if assert_screen('firstboot-utc');
76+
type_password;send_key 'ret';
77+
type_password if assert_screen('passwd-prompt');
78+
send_key 'ret';
79+
send_key 'ret' if assert_screen('firstboot-scc-ok');
80+
81+
#while (!match_has_tag('openqa-console')) {
82+
send_key 'ret' if match_has_tag('first-boot');
83+
#}
84+
assert_screen 'openqa-console', 500;
85+
}
86+
6087
sub login {
6188
switch_to_root_console;
6289
assert_screen 'inst-console';

tests/install/boot.pm

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,13 @@
11
use Mojo::Base 'openQAcoretest';
2+
use testapi;
23
use utils;
34

45
sub run {
5-
wait_for_desktop;
6+
if (get_required_var('VERSION') =~ /(tw|Tumbleweed)/) {
7+
wait_for_desktop;
8+
} else {
9+
wait_to_boot;
10+
}
611
}
712

813
1;

tests/install/openqa_webui.pm

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use utils qw(install_packages clear_root_console get_log);
44

55

66
sub add_repo {
7-
die 'Needs implementation for other versions' unless get_required_var('VERSION') =~ /(tw|Tumbleweed)/;
7+
#die 'Needs implementation for other versions' unless get_required_var('VERSION') =~ /(tw|Tumbleweed)/;
88
my %repo_suffix = (
99
x86_64 => 'Tumbleweed',
1010
aarch64 => 'Factory_ARM',
@@ -21,7 +21,7 @@ sub add_repo {
2121

2222
sub install_from_pkgs {
2323
diag('following https://github.com/os-autoinst/openQA/blob/master/docs/Installing.asciidoc');
24-
my $proxy_pkg = (check_var('OPENQA_WEB_PROXY', 'nginx')) ? 'nginx' : '';
24+
my $proxy_pkg = (check_var('OPENQA_WEB_PROXY', 'nginx')) ? 'nginx' : 'apache2';
2525
install_packages("openQA-local-db $proxy_pkg");
2626
my $proxy_args = '';
2727
if (my $proxy = get_var('OPENQA_WEB_PROXY')) { $proxy_args = "--proxy=$proxy" }

tests/install/openqa_worker.pm

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,12 @@ EOF
2020
my $class = "WORKER_CLASS=qemu_$arch,tap";
2121
assert_script_run sprintf q{if [ -e /etc/openqa/workers.ini ]; then sed -i -e "s/\(\[global\]\)/\1\n%s/" /etc/openqa/workers.ini; else echo -e "[global]\n%s" > /etc/openqa/workers.ini.d/base.ini; fi}, $class, $class;
2222
}
23-
assert_script_run('os-autoinst-setup-multi-machine', timeout => 120);
23+
if (get_var('FULL_MM_TEST')) {
24+
assert_script_run('os-autoinst-setup-multi-machine', timeout => 120);
25+
my $systemctl_openvswitch = 'systemctl status --no-pager os-autoinst-openvswitch';
26+
}
2427
my $worker_setup = <<'EOF';
25-
systemctl status --no-pager os-autoinst-openvswitch
28+
$systemctl_openvswitch
2629
systemctl enable --now openqa-worker@1
2730
systemctl status --no-pager openqa-worker@1
2831
EOF

tests/install/prepare.pm

Lines changed: 33 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,44 @@
11
use Mojo::Base 'openQAcoretest';
22
use testapi;
3-
use utils qw(login disable_packagekit switch_to_root_console);
3+
use utils qw(login disable_packagekit switch_to_root_console clear_root_console wait_for_desktop);
44

55
sub run {
6-
login;
6+
if (get_required_var('VERSION') =~ /(tw|Tumbleweed)/) {
7+
login;
8+
# SELinux: allow web proxy to connect to openQA backend
9+
assert_script_run('semanage boolean -m -1 httpd_can_network_connect');
10+
} else {
11+
record_info "SLE", "Registration";
12+
type_string "root\n";
13+
assert_screen 'password-prompt';
14+
type_password;
15+
send_key 'ret';
16+
wait_still_screen(2);
17+
assert_screen 'root-console';
18+
my $version=script_output(qq{cat /etc/os-release |grep VERSION_ID | sed 's/VERSION_ID=//'});
19+
my $arch = get_required_var('ARCH');
720

8-
# SELinux: allow web proxy to connect to openQA backend
9-
assert_script_run('semanage boolean -m -1 httpd_can_network_connect');
21+
script_run "SUSEConnect -r " . get_required_var('SCC_REGCODE'), 300;
22+
script_run "SUSEConnect -p sle-module-desktop-applications/$version/$arch", 300;
23+
script_run "SUSEConnect -p sle-module-development-tools/$version/$arch", 300;
24+
assert_script_run qq{zypper addrepo "https://download.nvidia.com/suse/sle15sp6" nvidia};
25+
assert_script_run "zypper --gpg-auto-import-keys ref nvidia";
26+
script_run "SUSEConnect -p sle-we/$version/$arch -r " . get_required_var('SCC_REGCODE_WE'), 300;
27+
script_run "SUSEConnect -p PackageHub/$version/$arch", 300;
1028

29+
assert_script_run "zypper -n in lightdm apache2 google-droid-fonts qemu-kvm qemu-img", 500;
30+
assert_script_run "zypper -n in --recommends -t pattern base x11 gnome", 1000;
31+
assert_script_run "systemctl set-default graphical.target";
32+
assert_script_run qq{sed -i 's/DISPLAYMANAGER_AUTOLOGIN=""/DISPLAYMANAGER_AUTOLOGIN=root/' /etc/sysconfig/displaymanager};
33+
assert_script_run('reboot', 60);
34+
assert_screen('openqa-desktop', 600);
35+
send_key 'ret';
36+
login;
37+
}
1138
disable_packagekit;
12-
assert_script_run('for i in {1..7}; do zypper --no-cd -n in retry && break; sleep $((i**2*20)); done');
1339
assert_script_run('zypper --no-cd -n rm xscreensaver');
14-
assert_script_run('pkill -f xscreensaver');
40+
assert_script_run('pkill -f xscreensaver') if (get_required_var('VERSION') =~ /(tw|Tumbleweed)/);
41+
assert_script_run('for i in {1..7}; do zypper --no-cd -n in retry && break; sleep $((i**2*20)); done');
1542
}
1643

1744
1;

tests/install/test_distribution.pm

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ sub run {
77
diag('assuming to be in terminal');
88
if (get_var('FULL_OPENSUSE_TEST')) {
99
diag('initialize working copy of openSUSE tests distribution with correct user');
10+
assert_script_run("zypper -n in sudo") if (get_required_var('VERSION') =~ /sle/) ;
1011
assert_script_run('retry -s 30 -- sh -c "username=bernhard email=bernhard@susetest /usr/share/openqa/script/fetchneedles"', 3600);
1112
save_screenshot;
1213
}

tests/openQA/dashboard.pm

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,10 @@ use utils;
55
use OpenQA::Wheel::Launcher 'start_gui_program';
66

77
sub run {
8+
unless (get_required_var('VERSION') =~ /(tw|Tumbleweed)/) {
9+
record_soft_failure 'SKIPPED - module not ready for ' . get_required_var('VERSION');
10+
return;
11+
}
812
prepare_firefox_autoconfig;
913
switch_to_x11;
1014
ensure_unlocked_desktop();

tests/openQA/login.pm

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@ use Mojo::Base 'openQAcoretest';
22
use testapi;
33

44
sub run {
5+
unless (get_required_var('VERSION') =~ /(tw|Tumbleweed)/) {
6+
record_soft_failure 'SKIPPED - module not ready for ' . get_required_var('VERSION');
7+
return;
8+
}
59
assert_and_click 'openqa-login';
610
assert_screen 'openqa-logged-in';
711
}

tests/openQA/search.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22

33

44
def run(self):
5+
if not get_required_var('VERSION') in ['tw', 'Tumbleweed']:
6+
record_soft_failure('SKIPPED - module not ready for ' + get_required_var('VERSION'))
7+
return
8+
59
assert_screen('openqa-logged-in')
610
assert_and_click('openqa-search')
711
for i in range(3):

tests/openQA/tests.pm

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,10 @@ use testapi;
33
use utils;
44

55
sub visit_test($needle) {
6+
unless (get_required_var('VERSION') =~ /(tw|Tumbleweed)/) {
7+
record_soft_failure 'SKIPPED - module not ready for ' . get_required_var('VERSION');
8+
return;
9+
}
610
assert_and_click 'openqa-all-tests';
711
send_key_until_needlematch $needle, 'down';
812
assert_and_click $needle;

0 commit comments

Comments
 (0)