github.com/kata-containers/tests@v0.0.0-20240307153542-772105b56064/metrics/storage/fio-k8s/fio-test-ci.sh (about)

     1  #!/bin/bash
     2  #
     3  # Copyright (c) 2022 Intel Corporation
     4  #
     5  # SPDX-License-Identifier: Apache-2.0
     6  
     7  set -e
     8  
     9  # General env
    10  SCRIPT_PATH=$(dirname "$(readlink -f "$0")")
    11  source "${SCRIPT_PATH}/../../lib/common.bash"
    12  CI_JOB="${CI_JOB:-}"
    13  TEST_REPO="${test_repo:-github.com/kata-containers/tests}"
    14  FIO_PATH="${GOPATH}/src/${TEST_REPO}/metrics/storage/fio-k8s"
    15  TEST_NAME="${TEST_NAME:-fio}"
    16  
    17  function main() {
    18  	cmds=("bc" "jq")
    19  	check_cmds "${cmds[@]}"
    20  	check_processes
    21  	init_env
    22  
    23  	if [ -z "${CI_JOB}" ]; then
    24  		# Start kubernetes
    25  		start_kubernetes
    26  	fi
    27  	export KUBECONFIG="$HOME/.kube/config"
    28  
    29  	pushd "${FIO_PATH}"
    30  		echo "INFO: Running K8S FIO test"
    31  		make test-ci
    32  	popd
    33  
    34  	test_result_file="${FIO_PATH}/cmd/fiotest/test-results/kata/randrw-sync.job/output.json"
    35  
    36  	metrics_json_init
    37  	local read_io=$(cat $test_result_file | grep io_bytes | head -1 | sed 's/[[:blank:]]//g' | cut -f2 -d ':' | cut -f1 -d ',')
    38  	local read_bw=$(cat $test_result_file | grep bw_bytes | head -1 | sed 's/[[:blank:]]//g' | cut -f2 -d ':' | cut -f1 -d ',')
    39   	local read_90_percentile=$(cat $test_result_file | grep 90.000000 | head -1 | sed 's/[[:blank:]]//g' | cut -f2 -d ':' | cut -f1 -d ',')
    40  	local read_95_percentile=$(cat $test_result_file | grep 95.000000 | head -1 | sed 's/[[:blank:]]//g' | cut -f2 -d ':' | cut -f1 -d ',')
    41  	local write_io=$(cat $test_result_file | grep io_bytes | head -2 | tail -1 | sed 's/[[:blank:]]//g' | cut -f2 -d ':' | cut -f1 -d ',')
    42  	local write_bw=$(cat $test_result_file | grep bw_bytes | head -2 | tail -1 | sed 's/[[:blank:]]//g' | cut -f2 -d ':' | cut -f1 -d ',')
    43  	local write_90_percentile=$(cat $test_result_file | grep 90.000000 | head -2 | tail -1 | sed 's/[[:blank:]]//g' | cut -f2 -d ':' | cut -f1 -d ',')
    44  	local write_95_percentile=$(cat $test_result_file | grep 95.000000 | head -2 | tail -1 | sed 's/[[:blank:]]//g' | cut -f2 -d ':' | cut -f1 -d ',')
    45  
    46  	metrics_json_start_array
    47  	local json="$(cat << EOF
    48  	{
    49  		"readio": {
    50  			"Result" : $read_io,
    51  			"Units" : "bytes"
    52  		},
    53  		"readbw": {
    54  			"Result" : $read_bw,
    55  			"Units" : "bytes/sec"
    56  		},
    57  		"read90percentile": {
    58  			"Result" : $read_90_percentile,
    59  			"Units" : "ns"
    60  		},
    61  		"read95percentile": {
    62  			"Result" : $read_95_percentile,
    63  			"Units" : "ns"
    64  		},
    65  		"writeio": {
    66  			"Result" : $write_io,
    67  			"Units" : "bytes"
    68  		},
    69  		"writebw": {
    70  			"Result" : $write_bw,
    71  			"Units" : "bytes/sec"
    72  		},
    73  		"write90percentile": {
    74  			"Result" : $write_90_percentile,
    75  			"Units" : "ns"
    76  		},
    77  		"write95percentile": {
    78  			"Result" : $write_95_percentile,
    79  			"Units" : "ns"
    80  		}
    81  	}
    82  EOF
    83  )"
    84  	metrics_json_add_array_element "$json"
    85  	metrics_json_end_array "Results"
    86  	metrics_json_save
    87  
    88  	if [ -z "${CI_JOB}" ]; then
    89  		end_kubernetes
    90  		check_processes
    91  	fi
    92  }
    93  
    94  main "$@"