mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2025-06-27 11:37:35 +03:00

Almost all of the Python code in the respository has been updated to be compatibile with Python 2.6, Python 3.4, or newer. The only exceptions are arc_summery3.py which requires Python 3, and pyzfs which requires at least Python 2.7. This allows us to maintain a single version of the code and support most default versions of python. This change does the following: * Sets the default shebang for all Python scripts to python3. If only Python 2 is available, then at install time scripts which are compatible with Python 2 will have their shebangs replaced with /usr/bin/python. This is done for compatibility until Python 2 goes end of life. Since only the installed versions are changed this means Python 3 must be installed on the system for test-runner when testing in-tree. * Added --with-python=<2|3|3.4,etc> configure option which sets the PYTHON environment variable to target a specific python version. By default the newest installed version of Python will be used or the preferred distribution version when creating pacakges. * Fixed --enable-pyzfs configure checks so they are run when --enable-pyzfs=check and --enable-pyzfs=yes. * Enabled pyzfs for Python 3.4 and newer, which is now supported. * Renamed pyzfs package to python<VERSION>-pyzfs and updated to install in the appropriate site location. For example, when building with --with-python=3.4 a python34-pyzfs will be created which installs in /usr/lib/python3.4/site-packages/. * Renamed the following python scripts according to the Fedora guidance for packaging utilities in /bin - dbufstat.py -> dbufstat - arcstat.py -> arcstat - arc_summary.py -> arc_summary - arc_summary3.py -> arc_summary3 * Updated python-cffi package name. On CentOS 6, CentOS 7, and Amazon Linux it's called python-cffi, not python2-cffi. For Python3 it's called python3-cffi or python3x-cffi. * Install one version of arc_summary. Depending on the version of Python available install either arc_summary2 or arc_summary3 as arc_summary. The user output is only slightly different. Reviewed-by: John Ramsden <johnramsden@riseup.net> Reviewed-by: Neal Gompa <ngompa@datto.com> Reviewed-by: loli10K <ezomori.nozomu@gmail.com> Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> Closes #8096
58 lines
1.7 KiB
Bash
Executable File
58 lines
1.7 KiB
Bash
Executable File
#!/bin/ksh -p
|
|
#
|
|
# This file and its contents are supplied under the terms of the
|
|
# Common Development and Distribution License ("CDDL"), version 1.0.
|
|
# You may only use this file in accordance with the terms of version
|
|
# 1.0 of the CDDL.
|
|
#
|
|
# A full copy of the text of the CDDL should have accompanied this
|
|
# source. A copy of the CDDL is also available via the Internet at
|
|
# http://www.illumos.org/license/CDDL.
|
|
#
|
|
|
|
#
|
|
# Copyright 2018, loli10K <ezomori.nozomu@gmail.com>. All rights reserved.
|
|
#
|
|
|
|
. $STF_SUITE/include/libtest.shlib
|
|
|
|
#
|
|
# DESCRIPTION:
|
|
# Verify the libzfs_core Python test suite can be run successfully
|
|
#
|
|
# STRATEGY:
|
|
# 1. Run the nvlist and libzfs_core Python unittest
|
|
# 2. Verify the exit code is 0 (no errors)
|
|
#
|
|
|
|
verify_runnable "global"
|
|
|
|
# Verify that the required dependencies for testing are installed.
|
|
@PYTHON@ -c "import cffi" 2>/dev/null
|
|
if [ $? -eq 1 ]; then
|
|
log_unsupported "python-cffi not found by Python"
|
|
fi
|
|
|
|
# We don't just try to "import libzfs_core" because we want to skip these tests
|
|
# only if pyzfs was not installed due to missing, build-time, dependencies; if
|
|
# we cannot load "libzfs_core" due to other reasons, for instance an API/ABI
|
|
# mismatch, we want to report it.
|
|
@PYTHON@ -c '
|
|
import pkgutil, sys
|
|
sys.exit(pkgutil.find_loader("libzfs_core") is None)'
|
|
if [ $? -eq 1 ]; then
|
|
log_unsupported "libzfs_core not found by Python"
|
|
fi
|
|
|
|
log_assert "Verify the nvlist and libzfs_core Python unittest run successfully"
|
|
|
|
# NOTE: don't use log_must() here because it makes output unreadable
|
|
@PYTHON@ -m unittest --verbose \
|
|
libzfs_core.test.test_nvlist.TestNVList \
|
|
libzfs_core.test.test_libzfs_core.ZFSTest
|
|
if [ $? -ne 0 ]; then
|
|
log_fail "Python unittest completed with errors"
|
|
fi
|
|
|
|
log_pass "Python unittest completed without errors"
|