Files
packages/lang/python/python-orjson/test.sh
Alexandru Ardelean cf5b39f8c3 python-orjson: update to 3.11.8, add test.sh
Update to 3.11.8 to fix the build error with Python 3.14

```
  --- stderr
  error: the configured Python interpreter version (3.14) is newer than PyO3's maximum supported version (3.13)
  = help: please check if an updated version of PyO3 is available. Current version: 0.23.0-dev
  = help: set PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1 to suppress this check and build anyway using the stable ABI
warning: build failed, waiting for other jobs to finish...
💥 maturin failed
```

orjson imports uuid.py at module init to look up uuid.UUID type;
python3-uuid is a separate package not included in python3-light,
causing a segfault when python3-uuid is absent. Add it as an explicit
dependency to fix the crash on all architectures.

Crash is:
```
importing orjson...
Fatal Python error: Segmentation fault

Current thread 0xecf37c64 [python3] (most recent call first):
  File "<frozen importlib._bootstrap>", line 491 in _call_with_frames_removed
  File "<frozen importlib._bootstrap_external>", line 1061 in exec_module
  File "<frozen importlib._bootstrap>", line 938 in _load_unlocked
  File "<frozen importlib._bootstrap>", line 1342 in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 1371 in _find_and_load
  File "/usr/lib/python3.14/site-packages/orjson/__init__.py", line 8 in <module>
  File "<frozen importlib._bootstrap>", line 491 in _call_with_frames_removed
  File "<frozen importlib._bootstrap_external>", line 759 in exec_module
  File "<frozen importlib._bootstrap>", line 938 in _load_unlocked
  File "<frozen importlib._bootstrap>", line 1342 in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 1371 in _find_and_load
  File "<stdin>", line 5 in <module>

Current thread's C stack trace (most recent call first):
  <cannot get C stack on this system>
Segmentation fault (core dumped)
Test failed
```

Signed-off-by: Alexandru Ardelean <alex@shruggie.ro>
2026-04-09 07:58:46 +03:00

39 lines
931 B
Bash

#!/bin/sh
[ "$1" = python3-orjson ] || exit 0
python3 - << 'EOF'
import faulthandler
faulthandler.enable()
print("importing orjson...", flush=True)
import orjson
print("import OK", flush=True)
# Basic encode/decode
data = {"key": "value", "number": 42, "flag": True, "empty": None}
encoded = orjson.dumps(data)
assert isinstance(encoded, bytes)
decoded = orjson.loads(encoded)
assert decoded == data
print("basic encode/decode OK", flush=True)
# List roundtrip
lst = [1, 2, 3, "hello"]
assert orjson.loads(orjson.dumps(lst)) == lst
print("list roundtrip OK", flush=True)
# Nested structures
nested = {"a": {"b": {"c": 1}}}
assert orjson.loads(orjson.dumps(nested)) == nested
print("nested OK", flush=True)
# OPT_SORT_KEYS option
obj = {"z": 1, "a": 2, "m": 3}
sorted_json = orjson.dumps(obj, option=orjson.OPT_SORT_KEYS)
assert sorted_json == b'{"a":2,"m":3,"z":1}'
print("sort_keys OK", flush=True)
print("orjson OK")
EOF