|
7 | 7 | @pytest.mark.parametrize("device", {'0', '2'}) |
8 | 8 | def test_fps(device, frames): |
9 | 9 | try: |
10 | | - print(f"Device: {device}") |
| 10 | + print(f"\nDevice: {device}") |
11 | 11 | formats = get_formats(device) |
12 | 12 | for w, h in formats: |
13 | 13 | print(f"format: {w}x{h}") |
@@ -38,16 +38,22 @@ def test_fps(device, frames): |
38 | 38 | timeout=timeout).stderr.splitlines() |
39 | 39 | last = None |
40 | 40 | for line in output: |
41 | | - m = re.search(r"cap dqbuf:.*seq:\s*(\d*)\s*bytesused:.*fps:\s*(\d+\.\d+)\s*.*", line) |
| 41 | + m = re.search(r"cap dqbuf:.*seq:\s*(\d*)\s*bytesused:.*", line) |
42 | 42 | if m: |
43 | 43 | frame = int(m.group(1)) |
44 | | - fps = float(m.group(2)) |
| 44 | + print(f"\t{frame}", end="") |
45 | 45 | if last: |
46 | | - print(f"\tframe: {frame}/{last}, fps: {fps}") |
47 | | - assert frame != last, f"Repeated frame: {frame}" |
48 | | - assert frame == last+1, f"Frame dropped between: {last} and {frame}" |
49 | | - assert FPS/1.1 < fps and fps < FPS *1.1, f"FPS out of margin: {fps}/{FPS}" |
| 46 | + assert frame > last, f"Repeated frame: {frame}" |
| 47 | + assert frame == last + 1, f"Frame dropped between: {last} and {frame}" |
| 48 | + m = re.search(r"cap dqbuf:.*bytesused:.*fps:\s*(\d+\.\d+)\s*.*", line) |
| 49 | + if m: |
| 50 | + fps = float(m.group(1)) |
| 51 | + if last: |
| 52 | + print(f"/{fps}", end="") |
| 53 | + assert fps > FPS / 1.1, f"FPS too low: {fps}/{FPS}" |
| 54 | + assert fps < FPS * 1.1, f"FPS too high: {fps}/{FPS}" |
50 | 55 | last = frame |
| 56 | + print() |
51 | 57 | assert last, "No frames received" |
52 | 58 |
|
53 | 59 | except Exception as e: |
|
0 commit comments