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 argparse
import glob import glob
import os import os
from packaging import version
import re import re
import shutil import shutil
import signal import signal
import subprocess import subprocess
import sys import sys
MIN_V4L_UTILS_VERSION = version.parse("1.21.0")
TestPass = 0 TestPass = 0
TestFail = -1 TestFail = -1
TestSkip = 77 TestSkip = 77
@ -90,11 +93,21 @@ def main(argv):
print('v4l2-compliance is not available') print('v4l2-compliance is not available')
return TestSkip 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') v4l2_ctl = shutil.which('v4l2-ctl')
if v4l2_ctl is None: if v4l2_ctl is None:
print('v4l2-ctl is not available') print('v4l2-ctl is not available')
return TestSkip 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*') dev_nodes = glob.glob('/dev/video*')
if len(dev_nodes) == 0: if len(dev_nodes) == 0:
print('no video nodes available to test with') print('no video nodes available to test with')