Skip to content

Commit

Permalink
New test for checking systemd in WSL
Browse files Browse the repository at this point in the history
WSL now supports systemd, so there's need to check that we can enable and test it
  • Loading branch information
Pablo Herranz Ramírez committed Nov 22, 2023
1 parent 409ac33 commit 705f62c
Show file tree
Hide file tree
Showing 2 changed files with 51 additions and 1 deletion.
9 changes: 8 additions & 1 deletion schedule/wsl/wsl_main.yaml
Original file line number Diff line number Diff line change
@@ -1,11 +1,18 @@
---
name: wsl_main.yaml
name: wsl_main.yaml
description: >
WSL smoke test on Windows 10 image
conditional_schedule:
enable_systemd:
WSL_SYSTEMD:
'1':
- wsl/enable_systemd

schedule:
- wsl/boot_windows
- wsl/prepare_wsl
- wsl/install_wsl
- wsl/firstrun
- '{{enable_systemd}}'
- wsl/wsl_cmd_check
43 changes: 43 additions & 0 deletions tests/wsl/enable_systemd.pm
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# SUSE's openQA tests
#
# Copyright 2012-2023 SUSE LLC
# SPDX-License-Identifier: FSFAP

# Summary: Configure WSL users
# Maintainer: qa-c <[email protected]>

use Mojo::Base qw(windowsbasetest);
use testapi;
use utils qw(enter_cmd_slow);
use version_utils qw(is_opensuse);
use wsl qw(is_fake_scc_url_needed);

sub run {
my $self = shift;

assert_screen(['windows_desktop', 'powershell-as-admin-window']);
$self->open_powershell_as_admin if match_has_tag('windows_desktop');
# In openSUSE the WSL shell is not root, so there's need to run become_root
# in order to write in the /etc/wsl.conf file
$self->run_in_powershell(
cmd => q(wsl),
code => sub {
become_root if (is_opensuse);
enter_cmd("ps 1 | grep '/init'");
enter_cmd("stat /init | grep 'init'");
enter_cmd("echo -e '[boot]\nsystemd=true' > /etc/wsl.conf");
save_screenshot;
enter_cmd("exit");
# In openSUSE there's need to exit twice, one from the root and another
# one from the WSL
enter_cmd("exit") if (is_opensuse);
}
);
$self->run_in_powershell(cmd => q(wsl --shutdown));
$self->run_in_powershell(cmd => q(wsl /bin/bash -c "ps 1 | grep '/sbin/init'"));
$self->run_in_powershell(cmd => q(wsl /bin/bash -c "stat /sbin/init | grep 'systemd'"));
$self->run_in_powershell(cmd => q(wsl /bin/bash -c "systemctl list-unit-files --type=service | head -n 20"));
$self->run_in_powershell(cmd => q(wsl /bin/bash -c "exit"));
}

1;

0 comments on commit 705f62c

Please sign in to comment.