diff --git a/tests/tcp_proxy_full/run_test.sh b/tests/tcp_proxy_full/run_test.sh index 546b05c8..bf35e194 100755 --- a/tests/tcp_proxy_full/run_test.sh +++ b/tests/tcp_proxy_full/run_test.sh @@ -107,10 +107,15 @@ wait_for_etcp() { # -------- test runners -------- +# Монотонное время не зависит от wall clock и поддержки точности %N в date. +clock_ms() { + python3 -c 'import time; print(time.monotonic_ns() // 1000000)' +} + run_test() { local name=$1; shift local t_start log rc elapsed - t_start=$(date +%s%3N) + t_start=$(clock_ms) echo -n " $name ... " log="$LOG_DIR/tcp_client_${name}.log" if python3 "$CLIENT_PY" "$@" --name "$name" >"$log" 2>&1; then @@ -118,7 +123,7 @@ run_test() { else rc=$? fi - elapsed=$(($(date +%s%3N) - t_start)) + elapsed=$(($(clock_ms) - t_start)) if [ $rc -eq 0 ]; then echo "PASS (${elapsed}ms)" tail -1 "$log" @@ -133,7 +138,7 @@ run_test() { run_test_neg() { local name=$1; shift local t_start log rc elapsed - t_start=$(date +%s%3N) + t_start=$(clock_ms) echo -n " $name ... " log="$LOG_DIR/tcp_client_${name}.log" if ! python3 "$CLIENT_PY" "$@" --name "$name" >"$log" 2>&1; then @@ -141,7 +146,7 @@ run_test_neg() { else rc=1 fi - elapsed=$(($(date +%s%3N) - t_start)) + elapsed=$(($(clock_ms) - t_start)) if [ $rc -eq 0 ]; then echo "PASS (expected error, ${elapsed}ms)"; return 0 else @@ -152,7 +157,7 @@ run_test_neg() { run_concurrent() { local name=$1 count=$2 size=$3; shift 3 local t_start pids ok elapsed - t_start=$(date +%s%3N) + t_start=$(clock_ms) pids=() for i in $(seq 1 $count); do python3 "$CLIENT_PY" \ @@ -164,7 +169,7 @@ run_concurrent() { done ok=0 for pid in "${pids[@]}"; do wait "$pid"; [ $? -eq 0 ] && ((++ok)); done - elapsed=$(($(date +%s%3N) - t_start)) + elapsed=$(($(clock_ms) - t_start)) echo -n " $name ($count) ... " if [ "$ok" -eq "$count" ]; then echo "PASS ($ok/$count, ${elapsed}ms)"; return 0 @@ -180,18 +185,18 @@ run_concurrent() { run_stress() { local t_start elapsed - t_start=$(date +%s%3N) + t_start=$(clock_ms) echo -n " stress_sessions ... " local log="$LOG_DIR/stress.log" if python3 "$STRESS_PY" \ --host 10.200.100.1 --port-base "$ECHO_PORT" --ports 20 \ --threads 10 --iters 20 --min-size 1024 --max-size 65536 --timeout 60 --verbose \ >"$log" 2>&1; then - elapsed=$(($(date +%s%3N) - t_start)) + elapsed=$(($(clock_ms) - t_start)) echo "PASS (${elapsed}ms)" head -1 "$log"; return 0 else - elapsed=$(($(date +%s%3N) - t_start)) + elapsed=$(($(clock_ms) - t_start)) echo "FAIL (${elapsed}ms)" tail -5 "$log"; return 1 fi diff --git a/tools/chatgui/src/messagefeedback.cpp b/tools/chatgui/src/messagefeedback.cpp index a0f64d69..3eda490a 100644 --- a/tools/chatgui/src/messagefeedback.cpp +++ b/tools/chatgui/src/messagefeedback.cpp @@ -136,7 +136,8 @@ void MessageList::createPoll() { unique.insert(text); values.append(text); bytes += 2 + text.toUtf8().size(); } if (!valid || values.size() < 2 || values.size() > CHAT_POLL_OPTIONS_MAX || bytes > CHAT_POLL_WIRE_MAX) { - QMessageBox::warning(&dialog, feedbackText("Create poll"), feedbackText("Enter a question and distinct options within the size limit.")); return; + QMessageBox::warning(&dialog, feedbackText("Create poll"), + feedbackText("Enter a question and distinct options within the size limit.")); return; } sendFeedback({{"cmd", "poll_create"}, {"question", title}, {"options", values}, {"mode", mode->currentIndex() ? "multiple" : "single"}, {"allow_custom_answer", custom->isChecked()}});