#!/bin/sh
# PCP QA Test No. 1357
# Verify podman PMDA memory accesses using valgrind.
#
# Copyright (c) 2018,2021 Red Hat.
#

seq=`basename $0`
echo "QA output created by $seq"

. ./common.containers

[ -f $PCP_PMDAS_DIR/podman/pmdapodman ] || _notrun "podman pmda not installed"
[ -f $PCP_PMDAS_DIR/podman/root ] || _notrun "podman pmns not installed"
[ "$PCPQA_SYSTEMD" = yes ] || _notrun "systemctl not installed or not active"
_check_valgrind
_check_containers
_check_podman_binary
_check_podman_images busybox

iam=podman
status=1	# failure is the default!

_cleanup()
{
    if [ -n "$container" ]
    then
        echo "== removing container" | tee -a $seq_full
        _remove_podman_containers $container
        container=""
    fi
    if [ -n "$pod" ]
    then
        echo "== removing pod" | tee -a $seq_full
        _remove_podman_pods $pod1
        pod=""
    fi
    $sudo rm -f $tmp.*
}

trap "_cleanup; exit \$status" 0 1 2 3 15

_filter()
{
    sed \
	-e "s,$PCP_PMDAS_DIR,PCP_PMDAS_DIR,g" \
	-e "s,$PCP_VAR_DIR,PCP_VAR_DIR,g" \
	-e "s,$tmp,TMP,g" \
	-e '/Unable to open help text/d' \
    #end
}

# real QA test starts here
$sudo systemctl restart podman.service

container=`$podman run -d busybox sleep 10`
echo "== container: $container" >> $seq_full
[ -z "$container" ] && _fail "Failed to create container"

# RHBZ #1958732
#pod=`$podman pod create`
#echo "== pod: $pod" >> $seq_full
#[ -z "$pod" ] && _fail "Failed to create pod"

# build temp PMNS from PMDA's fragment of PMNS
#
pmcpp -I $PCP_PMDAS_DIR/podman -P $PCP_PMDAS_DIR/podman/root >$tmp.pmns
pmns=$tmp.pmns

pmda=$PCP_PMDAS_DIR/podman/pmda_podman.so,podman_init
args="-L -K clear -K add,33,$pmda -v -n $pmns"

_run_valgrind --sudo pminfo $args podman.container 2>&1 | _filter

# success, all done
status=0
exit
