Source code

Revision control

Copy as Markdown

Other Tools

#!/bin/bash
# Test harness for testing the RLB processes from the outside.
#
# Some behavior can only be observed when properly exiting the process running Glean,
# e.g. when an uploader runs in another thread.
# On exit the threads will be killed, regardless of their state.
# Remove the temporary data path on all exit conditions
cleanup() {
if [ -n "$datapath" ]; then
rm -r "$datapath"
fi
}
trap cleanup INT ABRT TERM EXIT
WORKSPACE_ROOT="$( cd "$(dirname "$0")/../../.." ; pwd -P )"
cd "$WORKSPACE_ROOT"
tmp="${TMPDIR:-/tmp}"
datapath=$(mktemp -d "${tmp}/glean_mps_delay.XXXX")
# Build it once
cargo build -p glean --example mps-delay || exit 1
cmd="target/debug/examples/mps-delay $datapath"
# Set a timezone (Los Angeles = -07:00)
export TZ=America/Los_Angeles
export RUST_LOG=debug
timeout 5s faketime --exclude-monotonic -f "2025-07-27 04:05:00" $cmd init
count=$(ls -1q "$datapath/sent_pings" | wc -l)
if [[ "$count" -ne 0 ]]; then
echo "1/3 test result: FAILED. Expected 0, got $count pings"
exit 101
fi
timeout 5s faketime --exclude-monotonic -f "2025-07-28 22:27:00" $cmd second
count=$(ls -1q "$datapath/sent_pings" | wc -l)
if [[ "$count" -ne 1 ]]; then
echo "2/3 test result: FAILED. Expected 1, got $count pings"
exit 101
fi
timeout 5s faketime --exclude-monotonic -f "2025-07-28 22:30:00" $cmd third
count=$(ls -1q "$datapath/sent_pings" | wc -l)
if [[ "$count" -ne 1 ]]; then
echo "3/3 test result: FAILED. Expected 1, got $count pings"
exit 101
fi
echo "test result: PASSED."
exit 0