diff --git a/tests/stability/agent_stability_test.sh b/tests/stability/agent_stability_test.sh new file mode 100644 index 0000000000..0f235cacb0 --- /dev/null +++ b/tests/stability/agent_stability_test.sh @@ -0,0 +1,60 @@ +#!/bin/bash +# +# Copyright (c) 2018-2023 Intel Corporation +# +# SPDX-License-Identifier: Apache-2.0 +# +# This test will perform several execs to a +# running container, the main purpose of this +# test is to stress the agent + +set -e -x + +cidir=$(dirname "$0") + +source "${cidir}/../metrics/lib/common.bash" + +# Environment variables +IMAGE="${IMAGE:-quay.io/prometheus/busybox:latest}" +CONTAINER_NAME="${CONTAINER_NAME:-test}" +PAYLOAD_ARGS="${PAYLOAD_ARGS:-tail -f /dev/null}" + + +# Timeout is the duration of this test (seconds) +# We want to stress the agent for a significant +# time (approximately running for two days) +timeout=186400 +start_time=$(date +%s) +end_time=$((start_time+timeout)) + +function setup { + restart_containerd_service + sudo ctr image pull $IMAGE + sudo ctr run --runtime=$CTR_RUNTIME -d $IMAGE $CONTAINER_NAME sh -c $PAYLOAD_ARGS +} + +function exec_loop { + cmd="sudo ctr t exec --exec-id 1 $CONTAINER_NAME sh -c" + $cmd "echo 'hello world' > file" + $cmd "rm -rf /file" + $cmd "touch /tmp/execWorks" + $cmd "ls /tmp | grep execWorks" + $cmd "rm -rf /tmp/execWorks" + $cmd "ls /etc/foo" || echo "Fail expected" + $cmd "cat /tmp/one" || echo "Fail expected" + $cmd "exit 42" || echo "Fail expected" +} + +function teardown { + echo "Ending stability test" + clean_env_ctr +} +trap teardown EXIT + +echo "Starting stability test" +setup + +echo "Running stability test" +while [[ $end_time > $(date +%s) ]]; do + exec_loop +done