#!/bin/sh ######## Stuff for tracking test case counts FAILS=0 OKS=0 TOTAL=0 LOG_DETAILS= ######## Relevant pids default vals if [ -z ${UTIL_PID} ]; then UTIL_PID=-1; fi if [ -z ${DLOGSEND_PID} ]; then DLOGSEND_PID=-1; fi if [ -z ${MT_TEST} ]; then MT_TEST=-1; fi if [ -z ${LOGGER} ]; then LOGGER=-1; fi export LOGGER export UTIL_PID export DLOGSEND_PID export MT_TEST SCRIPT_NAME=$(basename $0) USAGE_MESSAGE="usage: $0 [--verbose] [--quick] pipe|logger" check_daemon() { ret=1 if [ "$LOGGER" -ne -1 ] && [ -z "$(ps -o pid= -p "$LOGGER")" ]; then ret=0 fi return "$ret" } fail() { check_daemon && daemon_status="[logger daemon not running]" FAILS=$((FAILS + 1)) TOTAL=$((TOTAL + 1)) printf "[$SCRIPT_NAME %03d] \033[0;31mFAILED\033[0;m: %s %s\n" "$TOTAL" "$LOG_DETAILS" "$daemon_status" LOG_DETAILS= } ok() { check_daemon && daemon_status="[logger daemon not running]" OKS=$((OKS + 1)) TOTAL=$((TOTAL + 1)) printf "[$SCRIPT_NAME %03d] \033[0;32mPASSED\033[0;m: %s %s\n" "$TOTAL" "$LOG_DETAILS" "$daemon_status" LOG_DETAILS= } ######## Paths to test folders etc TESTDIR=/var/lib/dlog-tests ######## Utility functions cleanup() { [ "$UTIL_PID" -ne -1 ] && kill "$UTIL_PID" > /dev/null 2>&1 [ "$MT_TEST" -ne -1 ] && kill "$MT_TEST" > /dev/null 2>&1 [ "$LOGGER" -ne -1 ] && kill "$LOGGER" > /dev/null 2>&1 # Shellcheck doesn't like this because the rm call is bad if $TESTDIR is empty. # However, such cases would be caught by the conditional. # shellcheck disable=SC2115 [ -d "$TESTDIR" ] && rm -rf "$TESTDIR"/* [ -d "$RUNTIME_FILTERS_DIR" ] && rm -rf "$RUNTIME_FILTERS_DIR" } extract_timestamp() { ts=0 case "$1" in "threadtime") time=$(echo "$2" | awk -F '[ +]' '{print $2}') ts=$(date +%s%N -d "$time") ;; "long") time=$(echo "$2" | awk -F '[ +.]' '{print $3}') ms=$(echo "$2" | awk -F '[ +.]' '{print $4}') sec=$(date +%s%N -d "$time") ns=$((10#$ms * 1000000)) ts=$((sec + ns)) ;; "rwtime") time=$(echo "$2" | awk -F '[ +.]' '{print $2}') ts=$(date +%s%N -d "$time") ;; "recv_realtime") time=$(echo "$2" | awk -F '[ +.]' '{print $2}') ts=$(date +%s%N -d "$time") ;; "time") time=$(echo "$2" | awk -F '[ +.]' '{print $2}') ts=$(date +%s%N -d "$time") ;; "kerneltime") ts=$(echo "$2" | awk -F '[ +]' '{print $1}' | sed -e 's/\.//g') ;; esac echo "$ts" } ###### if [ "$1" = "pipe" ]; then type="pipe" elif [ "$1" = "logger" ]; then type="logger" elif [ "$1" = "zero-copy" ]; then type="zero-copy" elif [ "$1" = "pipe_quick" ]; then type="pipe" quick=1 elif [ "$1" = "logger_quick" ]; then type="logger" quick=1 else echo "$USAGE_MESSAGE" exit 1 fi