Skip to content

Commit 58cbf78

Browse files
committed
Merge tag '2026-04-30' into push-2026-04-30
Change-Id: I8243bef8127b0fc97a03837b7574e8603e791f79
2 parents 0406ab8 + b7a6a53 commit 58cbf78

2 files changed

Lines changed: 68 additions & 3 deletions

File tree

src/utils.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -702,7 +702,7 @@ inline bool readOldValueHelper(const std::pair<int64,int64> & bits, T & value, c
702702
{
703703
return false;
704704
}
705-
value = insertBits(old_value, value, bits.first, bits.second - bits.first + 1);
705+
value = insertBits(old_value, value, bits.first, static_cast<uint64>(bits.second - bits.first + 1));
706706
}
707707
return true;
708708
}
@@ -715,7 +715,7 @@ inline void extractBitsPrintHelper(const std::pair<int64,int64> & bits, T & valu
715715
{
716716
std::cout << "bits "<< std::dec << bits.first << ":" << bits.second << " ";
717717
if (!dec) std::cout << std::hex << std::showbase;
718-
value = extract_bits(value, bits.first, bits.second);
718+
value = extract_bits(value, static_cast<uint32>(bits.first), static_cast<uint32>(bits.second));
719719
}
720720
std::cout << "value " << value;
721721
}

tests/test.sh

Lines changed: 66 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,72 @@ if [ "$?" -ne "0" ]; then
220220
fi
221221

222222
# TODO add more tests
223-
# e.g for ./pcm-sensor-server, ./pcm-sensor, ...
223+
# e.g for ./pcm-sensor, ...
224+
225+
echo Testing pcm-sensor-server
226+
# Pick an unused high port to avoid collisions with the default one.
227+
SENSOR_PORT=19738
228+
./pcm-sensor-server -p $SENSOR_PORT -silent &
229+
SENSOR_PID=$!
230+
231+
# Wait for the server to start accepting connections (up to ~20s).
232+
SENSOR_READY=0
233+
for i in $(seq 1 40); do
234+
if ! kill -0 $SENSOR_PID 2>/dev/null; then
235+
echo "pcm-sensor-server exited unexpectedly during startup"
236+
exit 1
237+
fi
238+
if curl -s -o /dev/null -f "http://127.0.0.1:${SENSOR_PORT}/metrics"; then
239+
SENSOR_READY=1
240+
break
241+
fi
242+
sleep 0.5
243+
done
244+
245+
if [ "$SENSOR_READY" -ne "1" ]; then
246+
echo "Error: pcm-sensor-server did not become ready on port $SENSOR_PORT"
247+
kill $SENSOR_PID 2>/dev/null
248+
wait $SENSOR_PID 2>/dev/null
249+
exit 1
250+
fi
251+
252+
echo " Query /metrics endpoint with curl"
253+
METRICS_OUT=$(curl -s -f "http://127.0.0.1:${SENSOR_PORT}/metrics")
254+
CURL_RC=$?
255+
if [ "$CURL_RC" -ne "0" ] || [ -z "$METRICS_OUT" ]; then
256+
echo "Error in pcm-sensor-server: /metrics request failed or returned empty body"
257+
kill $SENSOR_PID 2>/dev/null
258+
wait $SENSOR_PID 2>/dev/null
259+
exit 1
260+
fi
261+
# Prometheus exposition format lines start with '#' (HELP/TYPE) or a metric name.
262+
if ! echo "$METRICS_OUT" | grep -q '^#'; then
263+
echo "Error in pcm-sensor-server: /metrics response does not look like Prometheus output"
264+
kill $SENSOR_PID 2>/dev/null
265+
wait $SENSOR_PID 2>/dev/null
266+
exit 1
267+
fi
268+
269+
echo " Query /dashboard endpoint with curl"
270+
curl -s -f -o /dev/null "http://127.0.0.1:${SENSOR_PORT}/dashboard"
271+
if [ "$?" -ne "0" ]; then
272+
echo "Error in pcm-sensor-server: /dashboard request failed"
273+
kill $SENSOR_PID 2>/dev/null
274+
wait $SENSOR_PID 2>/dev/null
275+
exit 1
276+
fi
277+
278+
echo " Query unknown endpoint, expect HTTP 404"
279+
HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" "http://127.0.0.1:${SENSOR_PORT}/does-not-exist")
280+
if [ "$HTTP_CODE" != "404" ]; then
281+
echo "Error in pcm-sensor-server: expected 404 for unknown endpoint, got $HTTP_CODE"
282+
kill $SENSOR_PID 2>/dev/null
283+
wait $SENSOR_PID 2>/dev/null
284+
exit 1
285+
fi
286+
287+
kill $SENSOR_PID 2>/dev/null
288+
wait $SENSOR_PID 2>/dev/null
224289

225290
echo Testing urltest
226291
./tests/urltest

0 commit comments

Comments
 (0)