功能:完善通用云管工作台、审计与诊断能力
This commit is contained in:
1 parent
5ac692724d
commit
9f05aa20ea
225 files changed
+14266
-141
No files matched your search
@@ -0,0 +1,44 @@
|
||||
"""Run against built shared objects on Linux, including abort-on-ABI-change cases.
|
||||
|
||||
Usage: python3 run_nvfbc_adapter.py /absolute/adapter.so /absolute/stub.so
|
||||
"""
|
||||
import ctypes
|
||||
import os
|
||||
from pathlib import Path
|
||||
import resource
|
||||
import signal
|
||||
import subprocess
|
||||
import sys
|
||||
import tempfile
|
||||
|
||||
if len(sys.argv) > 3:
|
||||
resource.setrlimit(resource.RLIMIT_CORE, (0, 0))
|
||||
library = ctypes.CDLL(sys.argv[2], mode=ctypes.RTLD_GLOBAL)
|
||||
library.run_test.argtypes = [ctypes.c_int, ctypes.c_int, ctypes.c_int]
|
||||
library.run_test.restype = ctypes.c_int
|
||||
raise SystemExit(library.run_test(*(int(v) for v in sys.argv[3:])))
|
||||
|
||||
adapter, stub = [str(Path(p).resolve(strict=True)) for p in sys.argv[1:]]
|
||||
with tempfile.TemporaryDirectory() as directory:
|
||||
for case, leased, headless in [(0, 0, 0), (1, 1, 0), (2, 1, 1),
|
||||
(2, 0, 1), (3, 1, 1), (4, 1, 1),
|
||||
(5, 1, 1), (6, 1, 1), (7, 1, 1), (8, 1, 1)]:
|
||||
env = dict(os.environ, LD_PRELOAD=adapter,
|
||||
VDI_CURSOR_RECEIPT=str(Path(directory) / 'receipt'))
|
||||
env.pop('VDI_CURSOR_LEASE', None)
|
||||
env.pop('VDI_NVFBC_HEADLESS', None)
|
||||
if leased:
|
||||
env['VDI_CURSOR_LEASE'] = 'c' * 32
|
||||
if headless:
|
||||
env['VDI_NVFBC_HEADLESS'] = '1'
|
||||
result = subprocess.run([sys.executable, __file__, adapter, stub,
|
||||
str(case), str(leased), str(headless)], env=env)
|
||||
expected = -signal.SIGABRT if case in (7, 8) else 0
|
||||
assert result.returncode == expected, (case, leased, headless, result.returncode)
|
||||
if leased or headless:
|
||||
receipt = (Path(directory) / 'receipt').read_text()
|
||||
if case == 6:
|
||||
assert receipt == 'nvfbc-ready-v1\n', receipt
|
||||
elif case not in (7, 8):
|
||||
assert receipt == 'nvfbc-v1\n', receipt
|
||||
print('PASS', case, 'lease', leased, 'headless', headless, flush=True)
|
||||
Reference in new issue
Block a user