lesavka/scripts/manual/run_client_to_rct_timing_trace_probe.sh

53 lines
1.8 KiB
Bash
Executable File

#!/usr/bin/env bash
# scripts/manual/run_client_to_rct_timing_trace_probe.sh
# Manual: client-origin HEVC timing trace layered over the blind RCT probe.
# Not part of CI; requires the live Theia/Tethys lab.
set -euo pipefail
SCRIPT_DIR="$(cd -- "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
REPO_ROOT="$(cd -- "${SCRIPT_DIR}/../.." >/dev/null 2>&1 && pwd)"
STAMP="$(date +%Y%m%d-%H%M%S)"
LOCAL_OUTPUT_DIR="${LOCAL_OUTPUT_DIR:-/tmp}"
TRACE_DIR="${LOCAL_OUTPUT_DIR%/}/lesavka-client-rct-timing-trace-${STAMP}"
BLIND_DIR="${TRACE_DIR}/blind-probe"
TRACE_JSON="${TRACE_DIR}/client-rct-timing-trace.json"
TRACE_TXT="${TRACE_DIR}/client-rct-timing-trace.txt"
RUN_LOG="${TRACE_DIR}/client-rct-timing-trace-run.log"
mkdir -p "${BLIND_DIR}"
exec > >(tee -a "${RUN_LOG}") 2>&1
echo "==> client-to-RCT T0-T5 timing trace"
echo " ↪ artifact_dir=${TRACE_DIR}"
echo " ↪ blind_probe_dir=${BLIND_DIR}"
echo " ↪ run_log=${RUN_LOG}"
echo " ↪ this wraps the blind probe and does not reconfigure Theia"
set +e
LOCAL_OUTPUT_DIR="${BLIND_DIR}" "${SCRIPT_DIR}/run_client_to_rct_transport_probe.sh"
blind_status=$?
set -e
probe_dir="$(find "${BLIND_DIR}" -maxdepth 1 -type d -name 'lesavka-client-rct-transport-probe-*' | sort | tail -n 1)"
if [[ -z "${probe_dir}" ]]; then
echo "no blind probe artifact directory found under ${BLIND_DIR}" >&2
exit 90
fi
echo "==> building T0-T5 timing trace from ${probe_dir}"
python3 "${SCRIPT_DIR}/client_rct_timing_trace_summary.py" \
"${probe_dir}" \
"${TRACE_JSON}" \
"${TRACE_TXT}"
echo "==> done"
printf '%s\n' \
"artifact_dir: ${TRACE_DIR}" \
"blind_probe_artifact_dir: ${probe_dir}" \
"timing_trace_json: ${TRACE_JSON}" \
"timing_trace_txt: ${TRACE_TXT}" \
"run_log: ${RUN_LOG}" \
"blind_probe_exit_status: ${blind_status}"
exit "${blind_status}"