Skip to content

Commit

Permalink
Merge pull request os-autoinst#17772 from ilausuch/test_systemd_on_bc…
Browse files Browse the repository at this point in the history
…i_podman
  • Loading branch information
ilausuch authored Sep 15, 2023
2 parents ba9628d + bdc80c7 commit 22dc8e4
Show file tree
Hide file tree
Showing 2 changed files with 59 additions and 0 deletions.
1 change: 1 addition & 0 deletions lib/main_containers.pm
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,7 @@ sub load_host_tests_podman {
# In Public Cloud we don't have internal resources
load_image_test($run_args) unless is_public_cloud || is_alp;
load_3rd_party_image_test($run_args);
loadtest 'containers/podman_bci_systemd';
loadtest 'containers/podman_pods';
# Default for ALP is Netavark
loadtest('containers/podman_network_cni') unless (is_alp);
Expand Down
58 changes: 58 additions & 0 deletions tests/containers/podman_bci_systemd.pm
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
# SUSE's openQA tests
#
# Copyright 2023 SUSE LLC
# SPDX-License-Identifier: FSFAP

# Package: podman
# Summary: Test podman with systemd
# Maintainer: [email protected]

use Mojo::Base 'containers::basetest';
use testapi;
use serial_terminal 'select_serial_terminal';
use utils qw(validate_script_output_retry);

sub run {
my ($self, $args) = @_;
select_serial_terminal;
my $podman = $self->containers_factory('podman');
$self->{podman} = $podman;

my $image = get_var("CONTAINER_IMAGE_TO_TEST", "registry.suse.com/bci/bci-init:latest");

record_info('Test', 'Launch a container with systemd');
assert_script_run("podman run -d -p 80:80 --name nginx $image");

record_info('Test', 'Install nginx');
assert_script_run("podman exec nginx zypper -n in nginx");
assert_script_run("podman exec nginx bash -c 'echo testpage123-content > /srv/www/htdocs/index.html'");

record_info('Test', 'Start nginx');
assert_script_run("podman exec nginx systemctl start nginx");

record_info('Nginx service status', validate_script_output_retry("podman exec nginx systemctl status nginx", qr/running/));

record_info('Test', 'Curl localhost from container');
validate_script_output("podman exec nginx curl -sfL http://localhost", qr/testpage123-content/);

record_info('Test', 'Curl localhost from host');
validate_script_output("curl http://localhost", qr/testpage123-content/);
}

sub cleanup {
my ($self) = @_;
script_run("podman stop nginx");
$self->{podman}->cleanup_system_host();
}

sub post_run_hook {
my ($self) = @_;
$self->cleanup();
}

sub post_fail_hook {
my ($self) = @_;
$self->cleanup();
}

1;

0 comments on commit 22dc8e4

Please sign in to comment.