tests: v4l2_compat: Check v4l2-compliance and v4l2-ctl versions

v4l2-compliance and v4l2-ctl with version 1.20 and before will fail with
v4l2-compat. Check the versions of v4l2-compliance and v4l2-ctl before
continuing.

Signed-off-by: Paul Elder <paul.elder@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
This commit is contained in:
Paul Elder 2020-07-10 22:57:10 +09:00
parent ce32ca4918
commit 74c8b50833

View file

@ -9,12 +9,15 @@
import argparse
import glob
import os
from packaging import version
import re
import shutil
import signal
import subprocess
import sys
MIN_V4L_UTILS_VERSION = version.parse("1.21.0")
TestPass = 0
TestFail = -1
TestSkip = 77
@ -90,11 +93,21 @@ def main(argv):
print('v4l2-compliance is not available')
return TestSkip
ret, out = run_with_stdout(v4l2_compliance, '--version')
if (ret != 0 or version.parse(out[-2].split()[-1]) < MIN_V4L_UTILS_VERSION):
print('v4l2-compliance version >= 1.21.0 required')
return TestSkip
v4l2_ctl = shutil.which('v4l2-ctl')
if v4l2_ctl is None:
print('v4l2-ctl is not available')
return TestSkip
ret, out = run_with_stdout(v4l2_ctl, '--version')
if (ret != 0 or version.parse(out[-2].split()[-1]) < MIN_V4L_UTILS_VERSION):
print('v4l2-ctl version >= 1.21.0 required')
return TestSkip
dev_nodes = glob.glob('/dev/video*')
if len(dev_nodes) == 0:
print('no video nodes available to test with')