#!/bin/sh

######## Stuff for tracking test case counts

FAILS=0
OKS=0
TOTAL=0
LOG_DETAILS=

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 "[%02d] FAILED: %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 "[%02d] PASSED: %s %s\n" "$TOTAL" "$LOG_DETAILS" "$daemon_status"
	LOG_DETAILS=
}

######## Paths to test folders etc

TESTDIR=/var/lib/dlog-tests
TEST_DYNAMIC_FILTERS="true"

######## Utility functions

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"
}

