Skip to content

Commit

Permalink
Add test for BCI systemd in podman
Browse files Browse the repository at this point in the history
Testing systemd in a container for the podman engine

https://progress.opensuse.org/issues/134687
  • Loading branch information
ilausuch committed Sep 14, 2023
1 parent bc5de24 commit 0cd3c3f
Show file tree
Hide file tree
Showing 2 changed files with 57 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
56 changes: 56 additions & 0 deletions tests/containers/podman_bci_systemd.pm
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
# SUSE's openQA tests

Check failure on line 1 in tests/containers/podman_bci_systemd.pm

View workflow job for this annotation

GitHub Actions / CI: Running static tests with perl v5.32

File tests/containers/podman_bci_systemd.pm needs tidying
#
# Copyright 2023 SUSE LLC
# SPDX-License-Identifier: FSFAP

# Package: podman
# Summary: Test podman with systemd
# Maintainer: qa-c@suse.de

use Mojo::Base 'containers::basetest';
use testapi;
use serial_terminal 'select_serial_terminal';

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 -t nginx zypper -n in nginx");
assert_script_run("podman exec -t nginx bash -c 'echo testpage123-content > /srv/www/htdocs/index.html'");

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

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

record_info('Test', 'Curl localhost from container');
validate_script_output("podman exec -t 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) = @_;
$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 0cd3c3f

Please sign in to comment.