# Gradio offline test report

| | |
|---|---|
| Host | 65-109-31-107.ptr |
| When | 2026-09-21 11:05:51 |
| Python | 3.12.14 |
| gradio | 6.28.0 |
| Architecture | x86_64 |
| Duration | 20 s |
| Result | **36 passed, 0 failed, 0 warned, 2 skipped** |

## Tests


### environment

| Result | Test | Detail |
|---|---|---|
| PASS | OS is RHEL-family 9 | AlmaLinux release 9.8 (Olive Jaguar) |
| PASS | architecture is x86_64 | x86_64 |
| PASS | glibc >= 2.17 (manylinux_2_17 wheels) | glibc 2.34 |
| PASS | interpreter matches the requested set | python 3.12.14 |
| PASS | no proxy variables capture loopback | no proxy set |
| PASS | SELinux state | Permissive |
| PASS | a loopback port can be bound | bound 127.0.0.1:46291 |
| PASS | writable temp dir for uploads | /tmp/gradio-0 |

### install

| Result | Test | Detail |
|---|---|---|
| PASS | import gradio | gradio 6.28.0 |
| PASS | import gradio_client | gradio_client 2.7.1 |
| PASS | expected gradio version for this interpreter | 6.28.0 (expected 6.28.0) |
| PASS | core dependencies import | fastapi 0.141.1, pydantic 2.13.5, numpy 2.5.3 |
| PASS | matplotlib present for gr.Plot | matplotlib 3.11.2 |
| SKIP | pin: huggingface-hub < 1.0 (gradio 4 only) | not applicable to gradio 6 |
| SKIP | pin: pydantic < 2.11 (gradio 4 only) | not applicable to gradio 6 |
| PASS | every dependency resolves (pip check) | No broken requirements found. |
| PASS | no compiler was needed (all wheels binary) | 54 wheels, 0 source archives |

### functional

| Result | Test | Detail |
|---|---|---|
| PASS | launch application under test | ready in 2.3s on port 30331 |
| PASS | GET / returns 200 | 200, 96741 bytes |
| PASS | GET /config is valid JSON with components | 53 components |
| PASS | GET /info returns the API schema | 7 named endpoints |
| PASS | static frontend assets are served | index-OOWiRlj3.js -> 200 |
| PASS | page needs no external hosts | 0 external refs, 0 blocking |
| PASS | frontend templates free of external refs | clean |
| PASS | endpoint /echo round trip | 'echo:hello' |
| PASS | endpoint /add computes correctly | 2 + 40 = 42.0 |
| PASS | generator endpoint streams to completion | '012345' via queue |
| PASS | matplotlib plot renders through gr.Plot | dict |
| PASS | gr.State is per-session, not global | session A: 1,2 \| session B: 1 |
| PASS | concurrent requests all succeed | 16/16 ok |
| PASS | gradio_client connects and reads schema | 7 endpoints |
| PASS | gradio_client predict round trip | 'echo:abc' |
| PASS | file upload and checksum round trip | 864 bytes, sha256 8d84725c5632 |

### offline

| Result | Test | Detail |
|---|---|---|
| PASS | pip install would use no index | resolved from local wheels |
| PASS | analytics disabled in this environment | GRADIO_ANALYTICS_ENABLED=False |
| PASS | huggingface hub in offline mode | HF_HUB_OFFLINE=1 |
| PASS | app starts with outbound traffic blackholed | started in 3.6s, GET / -> 200 |
| PASS | startup is not delayed by network timeouts | 2.8s |

## Measurements

These are a baseline for this host, not pass/fail criteria.
Compare successive runs on the same hardware.

| Metric | Value | Unit | Note |
|---|---:|---|---|
| startup time (cold, mean of 2) | 2.83 | s | min 2.1 / max 3.6 |
| resident memory after startup | 137.49 | MB | gradio 6.28.0 |
| GET / latency (median) | 6.18 | ms | p95 6.3 ms |
| GET /config latency (median) | 0.65 | ms | p95 0.9 ms |
| predict throughput (serial) | 80.76 | calls/s | 10 calls in 0.1s |
| predict latency (serial mean) | 12.38 | ms |  |
| predict throughput (8 threads) | 173.71 | calls/s | 16 calls, 0 errors |
| queue: 8 x 0.25s handlers | 0.30 | s | serial would be 2.0s, 0 errors |
| streaming 20 chunks end-to-end | 13.96 | ms |  |
| upload + checksum 2 MB | 28.39 | MB/s | 0.07s round trip |
| matplotlib plot render | 278.06 | ms | 50 points, Agg backend |
