1
0
Fork 0
firefox/third_party/rust/glean/tests/test-ping-lifetime-flush.sh
Daniel Baumann 5e9a113729
Adding upstream version 140.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
2025-06-25 09:37:52 +02:00

53 lines
1.3 KiB
Bash
Executable file

#!/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
tmp="${TMPDIR:-/tmp}"
datapath=$(mktemp -d "${tmp}/glean_ping_lifetime_flush.XXXX")
cmd="cargo run -p glean --example ping-lifetime-flush -- $datapath"
# First run "crashes" -> no increment stored
$cmd accumulate_one_and_pretend_crash
count=$(ls -1q "$datapath/sent_pings" | wc -l)
if [[ "$count" -ne 0 ]]; then
echo "test result: FAILED."
exit 101
fi
# Second run increments, waits, increments -> increment flushed to disk.
# No ping is sent.
$cmd accumulate_ten_and_wait
count=$(ls -1q "$datapath/sent_pings" | wc -l)
if [[ "$count" -ne 0 ]]; then
echo "test result: FAILED."
exit 101
fi
# Third run sends the ping.
$cmd submit_ping
count=$(ls -1q "$datapath/sent_pings" | wc -l)
if [[ "$count" -ne 1 ]]; then
echo "test result: FAILED."
exit 101
fi
if ! grep -q '"test.metrics.sample_counter":20' "$datapath"/sent_pings/*; then
echo "test result: FAILED."
exit 101
fi
echo "test result: ok."
exit 0