From: Alexandru Ardelean Date: Sun, 9 Aug 2026 09:14:15 +0000 (+0300) Subject: python-protobuf: add test script X-Git-Url: http://git.99rst.org/?a=commitdiff_plain;h=a56b754b01d85d1f6f7b98d7f0adbd9d508f2601;p=openwrt-packages.git python-protobuf: add test script Add a CI test.sh that imports google.protobuf and round-trips the Timestamp and Struct well-known types through SerializeToString and ParseFromString, covering the descriptor pool, encoder and decoder without needing a compiled .proto. Modelled on python-rpds-py's test. Signed-off-by: Alexandru Ardelean --- diff --git a/lang/python/python-protobuf/test.sh b/lang/python/python-protobuf/test.sh new file mode 100755 index 000000000..04da29212 --- /dev/null +++ b/lang/python/python-protobuf/test.sh @@ -0,0 +1,24 @@ +#!/bin/sh + +[ "$1" = python3-protobuf ] || exit 0 + +python3 - << 'EOF' + +from google.protobuf import struct_pb2, timestamp_pb2 + +# Well-known types exercise the descriptor pool, encoder and decoder without +# needing a compiled .proto: serialize a scalar message and a map-backed one, +# then parse the bytes back and confirm the fields survive the round-trip. +ts = timestamp_pb2.Timestamp(seconds=1710000000, nanos=123) +back = timestamp_pb2.Timestamp() +back.ParseFromString(ts.SerializeToString()) +assert back.seconds == 1710000000 and back.nanos == 123 + +s = struct_pb2.Struct() +s["name"] = "openwrt" +s["count"] = 3 +s2 = struct_pb2.Struct() +s2.ParseFromString(s.SerializeToString()) +assert s2["name"] == "openwrt" and s2["count"] == 3 + +EOF