]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
pylibmount: rewrite to be py2/py3 universal
authorOndrej Oprala <ooprala@redhat.com>
Thu, 29 Aug 2013 12:57:04 +0000 (14:57 +0200)
committerKarel Zak <kzak@redhat.com>
Fri, 20 Sep 2013 10:48:53 +0000 (12:48 +0200)
Signed-off-by: Ondrej Oprala <ooprala@redhat.com>
Signed-off-by: Karel Zak <kzak@redhat.com>
14 files changed:
libmount/python/context.c
libmount/python/fs.c
libmount/python/pylibmount.c
libmount/python/pylibmount.h
libmount/python/tab.c
libmount/python/test_mount_context.py
libmount/python/test_mount_tab.py
libmount/python/test_mount_tab_update.py
tests/functions.sh
tests/ts/libmount/context-py
tests/ts/libmount/context-utab-py
tests/ts/libmount/tabfiles-py
tests/ts/libmount/tabfiles-tags-py
tests/ts/libmount/update-py

index 662c89437f13f001ed032afd7be8d370e427013a..ce7711b3f2692e71e378ca8258a3ad2a1ca13f50 100644 (file)
@@ -53,7 +53,7 @@ static void Context_dealloc(ContextObjext *self)
        Py_XDECREF(mnt_context_get_mtab_userdata(self->cxt));
 
        mnt_free_context(self->cxt);
-       self->ob_type->tp_free((PyObject*) self);
+       PyFree(self);
 }
 
 static PyObject *Context_new(PyTypeObject *type,
@@ -570,11 +570,11 @@ static int Context_set_optsmode(ContextObjext *self, PyObject *value, void *clos
                PyErr_SetString(PyExc_TypeError, NODEL_ATTR);
                return -1;
        }
-       else if (!PyInt_Check(value)) {
+       else if (!PyLong_Check(value)) {
                PyErr_SetString(PyExc_TypeError, ARG_ERR);
                return -1;
        }
-       optsmode = PyInt_AsLong(value);
+       optsmode = PyLong_AsLong(value);
        return mnt_context_set_optsmode(self->cxt, optsmode);
 }
 
@@ -586,11 +586,11 @@ static int Context_set_syscall_status(ContextObjext *self, PyObject *value, void
                PyErr_SetString(PyExc_TypeError, NODEL_ATTR);
                return -1;
        }
-       else if (!PyInt_Check(value)) {
+       else if (!PyLong_Check(value)) {
                PyErr_SetString(PyExc_TypeError, ARG_ERR);
                return -1;
        }
-       syscall_status = PyInt_AsLong(value);
+       syscall_status = PyLong_AsLong(value);
        return mnt_context_set_syscall_status(self->cxt, syscall_status);
 }
 
@@ -1169,13 +1169,12 @@ static PyMethodDef Context_methods[] = {
 
 static PyObject *Context_repr(ContextObjext *self)
 {
-       return PyString_FromFormat("<libmount.Context object at %p, restricted=%s>",
+       return PyUnicode_FromFormat("<libmount.Context object at %p, restricted=%s>",
                        self, mnt_context_is_restricted(self->cxt) ? "True" : "False");
 }
 
 PyTypeObject ContextType = {
-       PyObject_HEAD_INIT(NULL)
-       0, /*ob_size*/
+       PyVarObject_HEAD_INIT(NULL, 0)
        "libmount.Context", /*tp_name*/
        sizeof(ContextObjext), /*tp_basicsize*/
        0, /*tp_itemsize*/
index a1e8a1837b32d8b094491691172e18a707f67efe..9cf2555e42bbf30a482e2941862c313754532914 100644 (file)
@@ -26,6 +26,7 @@
  */
 
 #include "pylibmount.h"
+#include <errno.h>
 
 #define Fs_HELP "Fs(source=None, root=None, target=None, fstype=None, options=None, attributes=None, freq=0, passno=0)"
 
@@ -61,23 +62,57 @@ static PyObject *Fs_get_devno(FsObject *self)
        return PyObjectResultInt(mnt_fs_get_devno(self->fs));
 }
 
-#define Fs_print_debug_HELP "print_debug(ostream)\n\n"
-static PyObject *Fs_print_debug(FsObject *self, PyObject *args, PyObject *kwds)
-{
-       PyFileObject *stream = NULL;
-       int rc;
-       FILE *f = NULL;
-       char *kwlist[] = { "ostream", NULL };
-
-       if (!PyArg_ParseTupleAndKeywords(args, kwds, "O!", kwlist,
-                                               &PyFile_Type, &stream)) {
-               PyErr_SetString(PyExc_TypeError, ARG_ERR);
-               return NULL;
-       }
-
-       f = PyFile_AsFile((PyObject *) stream);
-       rc = mnt_fs_print_debug(self->fs, f);
-       return rc ? UL_RaiseExc(-rc) : UL_IncRef(self);
+#define Fs_print_debug_HELP "print_debug()\n\n"
+static PyObject *Fs_print_debug(FsObject *self)
+{
+       PySys_WriteStdout("------ fs: %p\n", self->fs);
+       PySys_WriteStdout("source: %s\n", mnt_fs_get_source(self->fs));
+       PySys_WriteStdout("target: %s\n", mnt_fs_get_target(self->fs));
+       PySys_WriteStdout("fstype: %s\n", mnt_fs_get_fstype(self->fs));
+
+       if (mnt_fs_get_options(self->fs))
+               PySys_WriteStdout("optstr: %s\n", mnt_fs_get_options(self->fs));
+       if (mnt_fs_get_vfs_options(self->fs))
+               PySys_WriteStdout("VFS-optstr: %s\n", mnt_fs_get_vfs_options(self->fs));
+       if (mnt_fs_get_fs_options(self->fs))
+               PySys_WriteStdout("FS-opstr: %s\n", mnt_fs_get_fs_options(self->fs));
+       if (mnt_fs_get_user_options(self->fs))
+               PySys_WriteStdout("user-optstr: %s\n", mnt_fs_get_user_options(self->fs));
+       if (mnt_fs_get_optional_fields(self->fs))
+               PySys_WriteStdout("optional-fields: '%s'\n", mnt_fs_get_optional_fields(self->fs));
+       if (mnt_fs_get_attributes(self->fs))
+               PySys_WriteStdout("attributes: %s\n", mnt_fs_get_attributes(self->fs));
+
+       if (mnt_fs_get_root(self->fs))
+               PySys_WriteStdout("root:   %s\n", mnt_fs_get_root(self->fs));
+
+       if (mnt_fs_get_swaptype(self->fs))
+               PySys_WriteStdout("swaptype: %s\n", mnt_fs_get_swaptype(self->fs));
+       if (mnt_fs_get_size(self->fs))
+               PySys_WriteStdout("size: %jd\n", mnt_fs_get_size(self->fs));
+       if (mnt_fs_get_usedsize(self->fs))
+               PySys_WriteStdout("usedsize: %jd\n", mnt_fs_get_usedsize(self->fs));
+       if (mnt_fs_get_priority(self->fs))
+               PySys_WriteStdout("priority: %d\n", mnt_fs_get_priority(self->fs));
+
+       if (mnt_fs_get_bindsrc(self->fs))
+               PySys_WriteStdout("bindsrc: %s\n", mnt_fs_get_bindsrc(self->fs));
+       if (mnt_fs_get_freq(self->fs))
+               PySys_WriteStdout("freq:   %d\n", mnt_fs_get_freq(self->fs));
+       if (mnt_fs_get_passno(self->fs))
+               PySys_WriteStdout("pass:   %d\n", mnt_fs_get_passno(self->fs));
+       if (mnt_fs_get_id(self->fs))
+               PySys_WriteStdout("id:     %d\n", mnt_fs_get_id(self->fs));
+       if (mnt_fs_get_parent_id(self->fs))
+               PySys_WriteStdout("parent: %d\n", mnt_fs_get_parent_id(self->fs));
+       if (mnt_fs_get_devno(self->fs))
+               PySys_WriteStdout("devno:  %d:%d\n", major(mnt_fs_get_devno(self->fs)),
+                                               minor(mnt_fs_get_devno(self->fs)));
+       if (mnt_fs_get_tid(self->fs))
+               PySys_WriteStdout("tid:    %d\n", mnt_fs_get_tid(self->fs));
+       if (mnt_fs_get_comment(self->fs))
+               PySys_WriteStdout("comment: '%s'\n", mnt_fs_get_comment(self->fs));
+       return UL_IncRef(self);
 }
 /*
  ** Fs getters/setters
@@ -304,12 +339,12 @@ static int Fs_set_freq(FsObject *self, PyObject *value,
                PyErr_SetString(PyExc_TypeError, NODEL_ATTR);
                return -1;
 
-       } else if (!PyInt_Check(value)) {
+       } else if (!PyLong_Check(value)) {
                PyErr_SetString(PyExc_TypeError, ARG_ERR);
                return -1;
        }
 
-       freq = PyInt_AsLong(value);
+       freq = PyLong_AsLong(value);
        if (freq == -1 && PyErr_Occurred()) {
                PyErr_SetString(PyExc_RuntimeError, "type conversion failed");
                return -1;
@@ -329,12 +364,12 @@ static int Fs_set_passno(FsObject *self, PyObject *value, void *closure __attrib
        if (!value) {
                PyErr_SetString(PyExc_TypeError, NODEL_ATTR);
                return -1;
-       } else if (!PyInt_Check(value)) {
+       } else if (!PyLong_Check(value)) {
                PyErr_SetString(PyExc_TypeError, ARG_ERR);
                return -1;
        }
 
-       passno = PyInt_AsLong(value);
+       passno = PyLong_AsLong(value);
        if (passno == -1 && PyErr_Occurred()) {
                PyErr_SetString(PyExc_RuntimeError, "type conversion failed");
                return -1;
@@ -567,7 +602,7 @@ static PyMethodDef Fs_methods[] = {
        {"match_options",       (PyCFunction)Fs_match_options, METH_VARARGS|METH_KEYWORDS, Fs_match_options_HELP},
        {"streq_srcpath",       (PyCFunction)Fs_streq_srcpath, METH_VARARGS|METH_KEYWORDS, Fs_streq_srcpath_HELP},
        {"streq_target",        (PyCFunction)Fs_streq_target, METH_VARARGS|METH_KEYWORDS, Fs_streq_target_HELP},
-       {"print_debug",         (PyCFunction)Fs_print_debug, METH_VARARGS|METH_KEYWORDS, Fs_print_debug_HELP},
+       {"print_debug",         (PyCFunction)Fs_print_debug, METH_NOARGS, Fs_print_debug_HELP},
        {NULL}
 };
 
@@ -576,7 +611,7 @@ static void Fs_destructor(FsObject *self)
        DBG(FS, pymnt_debug_h(self->fs, "destrutor py-obj: %p, py-refcnt=%d",
                                self, (int) ((PyObject *) self)->ob_refcnt));
        mnt_unref_fs(self->fs);
-       self->ob_type->tp_free((PyObject*)self);
+       PyFree(self);
 }
 
 static PyObject *Fs_new(PyTypeObject *type, PyObject *args __attribute__((unused)),
@@ -686,7 +721,7 @@ static PyObject *Fs_repr(FsObject *self)
                   *tgt = mnt_fs_get_target(self->fs),
                   *type = mnt_fs_get_fstype(self->fs);
 
-       return PyString_FromFormat(
+       return PyUnicode_FromFormat(
                        "<libmount.Fs object at %p, "
                        "source=%s, target=%s, fstype=%s>",
                        self,
@@ -762,8 +797,7 @@ static PyObject *Fs_copy_fs(FsObject *self, PyObject *args, PyObject *kwds)
 
 
 PyTypeObject FsType = {
-       PyObject_HEAD_INIT(NULL)
-       0, /*ob_size*/
+       PyVarObject_HEAD_INIT(NULL, 0)
        "libmount.Fs", /*tp_name*/
        sizeof(FsObject), /*tp_basicsize*/
        0, /*tp_itemsize*/
index d2e79fbccfcdf8569fefe666019863d32a239d96..1403bfe3c48321d5d02f74d88e42c472cd7fa02c 100644 (file)
 PyObject *LibmountError;
 int pylibmount_debug_mask;
 
-
 PyObject *UL_IncRef(void *killme)
 {
        Py_INCREF(killme);
        return killme;
 }
 
+void PyFree(void *o)
+{
+#if PY_MAJOR_VERSION >= 3
+       Py_TYPE(o)->tp_free((PyObject *)o);
+#else
+       ((PyObject *)o)->ob_type->tp_free((PyObject *)o);
+#endif
+}
+
 /* Demultiplexer for various possible error conditions across the libmount library */
 void *UL_RaiseExc(int e)
 {
@@ -95,14 +103,22 @@ PyObject *PyObjectResultStr(const char *s)
        return result;
 }
 
-/* wrapper around a common use case for PyString_AsString() */
+/* wrapper around a common use case for PyUnicode_AsASCIIString() */
 char *pystos(PyObject *pys)
 {
+#if PY_MAJOR_VERSION >= 3
+       if (!PyUnicode_Check(pys)) {
+               PyErr_SetString(PyExc_TypeError, ARG_ERR);
+               return NULL;
+       }
+       return (char *)PyUnicode_1BYTE_DATA(pys);
+#else
        if (!PyString_Check(pys)) {
                PyErr_SetString(PyExc_TypeError, ARG_ERR);
                return NULL;
        }
        return PyString_AsString(pys);
+#endif
 }
 
 /*
@@ -118,20 +134,73 @@ char *pystos(PyObject *pys)
        "and returns a (tag, value) tuple. Every attribute is \"filtered\"" \
        "through appropriate getters/setters, no values are set directly."
 
-static PyMethodDef libmount_methods[] = {
-       {NULL} /* Sentinel */
+
+struct module_state {
+    PyObject *error;
 };
 
-#ifndef PyMODINIT_FUNC
-# define PyMODINIT_FUNC void
+#if PY_MAJOR_VERSION >= 3
+#define GETSTATE(m) ((struct module_state*)PyModule_GetState(m))
+#else
+#define GETSTATE(m) (&_state)
+static struct module_state _state;
 #endif
+
+static PyObject *
+error_out(PyObject *m __attribute__((unused))) {
+    struct module_state *st = GETSTATE(m);
+    PyErr_SetString(st->error, "something bad happened");
+    return NULL;
+}
+
+static PyMethodDef pylibmount_methods[] = {
+    {"error_out", (PyCFunction)error_out, METH_NOARGS, NULL},
+    {NULL, NULL}
+};
+
+#if PY_MAJOR_VERSION >= 3
+
+static int pylibmount_traverse(PyObject *m, visitproc visit, void *arg) {
+    Py_VISIT(GETSTATE(m)->error);
+    return 0;
+}
+
+static int pylibmount_clear(PyObject *m) {
+    Py_CLEAR(GETSTATE(m)->error);
+    return 0;
+}
+
+static struct PyModuleDef moduledef = {
+        PyModuleDef_HEAD_INIT,
+        "pylibmount",
+        NULL,
+        sizeof(struct module_state),
+        pylibmount_methods,
+        NULL,
+        pylibmount_traverse,
+        pylibmount_clear,
+        NULL
+};
+#define INITERROR return NULL
+PyObject * PyInit_pylibmount(void);
+PyObject * PyInit_pylibmount(void)
+#else
+#define INITERROR return
+# ifndef PyMODINIT_FUNC
+#  define PyMODINIT_FUNC void
+# endif
 PyMODINIT_FUNC initpylibmount(void);
 PyMODINIT_FUNC initpylibmount(void)
+#endif
 {
-       PyObject *m = Py_InitModule3("pylibmount", libmount_methods, PYLIBMOUNT_DESC);
+#if PY_MAJOR_VERSION >= 3
+       PyObject *m = PyModule_Create(&moduledef);
+#else
+       PyObject *m = Py_InitModule3("pylibmount", pylibmount_methods, PYLIBMOUNT_DESC);
+#endif
 
        if (!m)
-               return;
+               INITERROR;
        /*
         * init debug stuff
         */
@@ -223,5 +292,9 @@ PyMODINIT_FUNC initpylibmount(void)
        /* Still useful for functions using iterators internally */
        PyModule_AddIntConstant(m, "MNT_ITER_FORWARD", MNT_ITER_FORWARD);
        PyModule_AddIntConstant(m, "MNT_ITER_BACKWARD", MNT_ITER_BACKWARD);
+
+#if PY_MAJOR_VERSION >= 3
+       return m;
+#endif
 }
 
index d3003af69de5a69e776396fa96434e1cbefd017a..1a08796dc0d5e82edb8745d7640d315e5a9398eb 100644 (file)
@@ -119,6 +119,7 @@ extern PyObject *PyObjectResultInt(int i);
 extern PyObject *PyObjectResultStr(const char *s);
 
 extern char *pystos(PyObject *pys);
+extern void PyFree(void *o);
 
 
 
index 817643cf80ae51c52d76fe2e474a34850bd610ed..9ea6924c0593fa4e27d4cb44a91a79ab806ba72b 100644 (file)
@@ -148,22 +148,25 @@ static PyObject *Table_replace_file(TableObject *self, PyObject *args, PyObject
        return rc ? UL_RaiseExc(-rc) : UL_IncRef(self);
 }
 
-#define Table_write_file_HELP "write_file(file)\n\n" \
+#define Table_write_file_HELP "write_file(path)\n\n" \
                "This function writes tab to file(stream)"
 static PyObject *Table_write_file(TableObject *self, PyObject *args, PyObject *kwds)
 {
        int rc;
-       PyFileObject *stream = NULL;
+       //PyObject *stream = NULL;
        FILE *f = NULL;
-       char *kwlist[] = {"file", NULL};
+       char *path = NULL;
+       char *kwlist[] = {"path", NULL};
 
-       if (!PyArg_ParseTupleAndKeywords(args, kwds, "O!", kwlist,
-                                       &PyFile_Type, &stream)) {
+       if (!PyArg_ParseTupleAndKeywords(args, kwds, "s", kwlist,
+                                       &path)) {
                PyErr_SetString(PyExc_TypeError, ARG_ERR);
                return NULL;
        }
-       f = PyFile_AsFile((PyObject *)stream);
+       if (!(f = fopen(path, "w")))
+               return UL_RaiseExc(errno);
        rc = mnt_table_write_file(self->tab, f);
+       fclose(f);
        return rc ? UL_RaiseExc(-rc) : UL_IncRef(self);
 }
 
@@ -427,24 +430,6 @@ static PyObject *Table_parse_swaps(TableObject *self, PyObject* args, PyObject *
        return rc ? UL_RaiseExc(-rc) : UL_IncRef(self);
 }
 
-#define Table_parse_stream_HELP "parse_stream(stream, filename)\n\n" \
-               "Returns self or raises an exception in case of an error."
-static PyObject *Table_parse_stream(TableObject *self, PyObject* args, PyObject *kwds)
-{
-       int rc;
-       PyFileObject *stream = NULL;
-       char *filename = NULL;
-       FILE *f;
-       char *kwlist[] = {"stream", "filename", NULL};
-
-       if (!PyArg_ParseTupleAndKeywords(args, kwds, "O!s", kwlist, &PyFile_Type, &stream, &filename)) {
-               PyErr_SetString(PyExc_TypeError, ARG_ERR);
-               return NULL;
-       }
-       f = PyFile_AsFile((PyObject *)stream);
-       rc = mnt_table_parse_stream(self->tab, f, filename);
-       return rc ? UL_RaiseExc(-rc) : UL_IncRef(self);
-}
 #define Table_add_fs_HELP "add_fs(fs)\n\nAdds a new entry to tab.\n" \
                "Returns self or raises an exception in case of an error."
 
@@ -528,7 +513,6 @@ static PyMethodDef Table_methods[] = {
        {"parse_dir", (PyCFunction)Table_parse_dir, METH_VARARGS|METH_KEYWORDS, Table_parse_dir_HELP},
        {"parse_swaps", (PyCFunction)Table_parse_swaps, METH_VARARGS|METH_KEYWORDS, Table_parse_swaps_HELP},
        {"is_fs_mounted", (PyCFunction)Table_is_fs_mounted, METH_VARARGS|METH_KEYWORDS, Table_is_fs_mounted_HELP},
-       {"parse_stream", (PyCFunction)Table_parse_stream, METH_VARARGS|METH_KEYWORDS, Table_parse_stream_HELP},
        {"add_fs", (PyCFunction)Table_add_fs, METH_VARARGS|METH_KEYWORDS, Table_add_fs_HELP},
        {"remove_fs", (PyCFunction)Table_remove_fs, METH_VARARGS|METH_KEYWORDS, Table_remove_fs_HELP},
        {"next_fs", (PyCFunction)Table_next_fs, METH_NOARGS, Table_next_fs_HELP},
@@ -569,7 +553,7 @@ static void Table_destructor(TableObject *self)
 
        mnt_free_iter(self->iter);
        Py_XDECREF(self->errcb);
-       self->ob_type->tp_free((PyObject*)self);
+       PyFree(self);
 }
 
 static PyObject *Table_new(PyTypeObject *type,
@@ -734,7 +718,7 @@ static PyGetSetDef Table_getseters[] = {
 
 static PyObject *Table_repr(TableObject *self)
 {
-       return PyString_FromFormat(
+       return PyUnicode_FromFormat(
                        "<libmount.Table object at %p, entries=%d, comments_enabled=%s, errcb=%s>",
                        self,
                        mnt_table_get_nents(self->tab),
@@ -743,8 +727,7 @@ static PyObject *Table_repr(TableObject *self)
 }
 
 PyTypeObject TableType = {
-       PyObject_HEAD_INIT(NULL)
-       0, /*ob_size*/
+       PyVarObject_HEAD_INIT(NULL, 0)
        "libmount.Table", /*tp_name*/
        sizeof(TableObject), /*tp_basicsize*/
        0, /*tp_itemsize*/
index 7cdacc5a530024a4f07ff1e61d730e8067c46581..deb1c2ccfc5d1d4e70714a07358d649b221c1029 100755 (executable)
@@ -1,4 +1,3 @@
-#!/bin/python2
 import os
 import sys
 import stat
@@ -6,11 +5,11 @@ import errno
 import libmount as mnt
 
 def usage(tss):
-       print "\nUsage:\n\t{:s} <test> [testoptions]\nTests:\n".format(sys.argv[0])
+       print("\nUsage:\n\t{:s} <test> [testoptions]\nTests:\n".format(sys.argv[0]))
        for i in tss:
-               print "\t{15:-s}".format(i[0])
+               print("\t{15:-s}".format(i[0]))
                if i[2] != "":
-                       print " {:s}\n".format(i[2])
+                       print(" {:s}\n".format(i[2]))
 
        print("\n")
        return 1
@@ -27,7 +26,7 @@ def mnt_run_test(tss, argv):
                if i[0] == argv[1]:
                        rc = i[1](i, argv[1:])
                        if rc:
-                               print "FAILED [rc={:d}]".format(rc)
+                               print("FAILED [rc={:d}]".format(rc))
                        break
 
        if ((rc < 0) and (i == ())):
@@ -61,9 +60,9 @@ def test_mount(ts, argv):
        try:
                cxt.mount()
        except Exception:
-               print "failed to mount"
+               print("failed to mount")
                return -1
-       print "successfully mounted"
+       print("successfully mounted")
        return rc
 
 def test_umount(ts, argv):
@@ -96,9 +95,9 @@ def test_umount(ts, argv):
        try:
                cxt.umount()
        except Exception:
-               print "failed to umount"
+               print("failed to umount")
                return 1
-       print "successfully umounted"
+       print("successfully umounted")
        return rc
 
 def test_flags(ts, argv):
@@ -119,13 +118,13 @@ def test_flags(ts, argv):
                cxt.prepare_mount()
        # catch ioerror here
        except IOError as e:
-               print "failed to prepare mount {:s}".format(e.strerror)
+               print("failed to prepare mount {:s}".format(e.strerror))
 
        opt = cxt.fs.options
        if (opt):
-               print "options: {:s}", opt
+               print("options: {:s}", opt)
 
-       print "flags: {08:lx}".format(cxt.mflags())
+       print("flags: {08:lx}".format(cxt.mflags()))
        return rc
 
 def test_mountall(ts, argv):
@@ -146,17 +145,17 @@ def test_mountall(ts, argv):
        while (cxt.next_mount()):
                tgt = i.target
                if (ignored == 1):
-                       print "{:s}: ignored: not match".format(tgt)
+                       print("{:s}: ignored: not match".format(tgt))
                elif (ignored == 2):
-                       print "{:s}: ignored: already mounted".format(tgt)
+                       print("{:s}: ignored: already mounted".format(tgt))
                elif (not cxt.status):
                        if (mntrc > 0):
                                # ?? errno = mntrc
-                               print "{:s}: mount failed".format(tgt)
+                               print("{:s}: mount failed".format(tgt))
                        else:
-                               print "{:s}: mount failed".format(tgt)
+                               print("{:s}: mount failed".format(tgt))
                else:
-                       print "{:s}: successfully mounted".format(tgt)
+                       print("{:s}: successfully mounted".format(tgt))
 
        return 0
 
index 33ceb5285090471f1a8b93fa7ecbc33fef85b456..9d7d4edca1f33d49b0252c94c83f92a365c6aa06 100755 (executable)
@@ -1,4 +1,3 @@
-#!/bin/python2
 import os
 import sys
 import stat
@@ -7,11 +6,11 @@ import functools as ft
 import libmount as mnt
 
 def usage(tss):
-       print "\nUsage:\n\t{:s} <test> [testoptions]\nTests:\n".format(sys.argv[0])
+       print("\nUsage:\n\t{:s} <test> [testoptions]\nTests:\n".format(sys.argv[0]))
        for i in tss:
-               print "\t{15:-s}".format(i[0])
+               print("\t{15:-s}".format(i[0]))
                if i[2] != "":
-                       print " {:s}\n".format(i[2])
+                       print(" {:s}\n".format(i[2]))
 
        print("\n")
        return 1
@@ -28,7 +27,7 @@ def mnt_run_test(tss, argv):
                if i[0] == argv[1]:
                        rc = i[1](i, argv[1:])
                        if rc:
-                               print "FAILED [rc={:d}]".format(rc)
+                               print("FAILED [rc={:d}]".format(rc))
                        break
 
        if ((rc < 0) and (i == ())):
@@ -36,7 +35,7 @@ def mnt_run_test(tss, argv):
        return not not rc #because !!rc is too mainstream for python
 
 def parser_errcb(tb, fname, line):
-       print "{:s}:{:d}: parse error".format(fname, line)
+       print("{:s}:{:d}: parse error".format(fname, line))
        return 1
 
 def create_table(f, comments):
@@ -50,7 +49,7 @@ def create_table(f, comments):
        try:
                tb.parse_file(f)
        except Exception:
-               print "{:s}: parsing failed".format(f)
+               print("{:s}: parsing failed".format(f))
                return None
        return tb
 
@@ -61,14 +60,14 @@ def test_copy_fs(ts, argv):
        if not fs:
                return rc
 
-       print "ORIGINAL:"
-       fs.print_debug(sys.stdout)
+       print("ORIGINAL:")
+       fs.print_debug()
 
        fs = fs.copy_fs(None)
        if not fs:
                return rc
-       print "COPY:"
-       fs.print_debug(sys.stdout)
+       print("COPY:")
+       fs.print_debug()
        return 0
 
 def test_parse(ts, argv):
@@ -79,17 +78,17 @@ def test_parse(ts, argv):
        tb = create_table(argv[1], parse_comments)
 
        if tb.intro_comment:
-               print "Initial comment:\n\"{:s}\"".format(tb.intro_comment)
+               print("Initial comment:\n\"{:s}\"".format(tb.intro_comment))
        #while ((fs = tb.next_fs()) != None):
        for fs in iter(ft.partial(tb.next_fs), None):
-               fs.print_debug(sys.stdout)
+               fs.print_debug()
        if tb.trailing_comment:
-               print "Trailing comment:\n\"{:s}\"".format(tb.trailing_comment)
+               print("Trailing comment:\n\"{:s}\"".format(tb.trailing_comment))
        return 0
 
 def test_find(ts, argv, dr):
        if len(argv) != 4:
-               print "try --help"
+               print("try --help")
                return -errno.EINVAL
 
        f, find, what = argv[1:]
@@ -101,9 +100,9 @@ def test_find(ts, argv, dr):
                fs = tb.find_target(what, dr)
 
        if not fs:
-               print "{:s}: not found {:s} '{:s}'".format(f, find, what)
+               print("{:s}: not found {:s} '{:s}'".format(f, find, what))
        else:
-               fs.print_debug(sys.stdout)
+               fs.print_debug()
        return 0
 
 def test_find_fw(ts, argv):
@@ -118,14 +117,14 @@ def test_find_pair(ts, argv):
        fs = tb.find_pair(argv[2], argv[3], mnt.MNT_ITER_FORWARD)
        if not fs:
                return rc
-       fs.print_debug(sys.stdout)
+       fs.print_debug()
        return 0
 
 def test_is_mounted(ts, argv):
        rc = -1
        tb = mnt.Tab(path="/proc/self/mountinfo")
        if not tb:
-               print "failed to parse mountinto"
+               print("failed to parse mountinto")
                return rc
 
        fstab = create_table(argv[1], False)
@@ -134,9 +133,9 @@ def test_is_mounted(ts, argv):
        fs = ()
        for fs in ft.iter(tb.next_fs(), -1):
                if tb.is_fs_mounted(fs):
-                       print "{:s} already mounted on {:s}".format(fs.source, fs.target)
+                       print("{:s} already mounted on {:s}".format(fs.source, fs.target))
                else:
-                       print "{:s} not mounted on {:s}".format(fs.source, fs.target)
+                       print("{:s} not mounted on {:s}".format(fs.source, fs.target))
        return 0
 
 def test_find_mountpoint(ts, argv):
@@ -147,12 +146,12 @@ def test_find_mountpoint(ts, argv):
        fs = tb.find_mountpoint(argv[1], mnt.MNT_ITER_BACKWARD)
        if not fs:
                return rc
-       fs.print_debug(sys.stdout)
+       fs.print_debug()
        return 0
 
 
 tss = (
-       ( "--parse",    test_parse,        "<file> [--comments] parse and print tab" ),
+       ( "--parse",    test_parse,        "<file> [--comments] parse and print(tab" ),
        ( "--find-forward",  test_find_fw, "<file> <source|target> <string>" ),
        ( "--find-backward", test_find_bw, "<file> <source|target> <string>" ),
        ( "--find-pair",     test_find_pair, "<file> <source> <target>" ),
index 5433cf580b34672b2291e9a02d20e425b28c3181..f1b0332d0fb4bf452a6572f3afeef245fcc356dd 100755 (executable)
@@ -1,4 +1,3 @@
-#!/bin/python2
 import os
 import sys
 import stat
@@ -6,11 +5,11 @@ import errno
 import libmount as mnt
 
 def usage(tss):
-       print "\nUsage:\n\t{:s} <test> [testoptions]\nTests:\n".format(sys.argv[0])
+       print("\nUsage:\n\t{:s} <test> [testoptions]\nTests:\n".format(sys.argv[0]))
        for i in tss:
-               print "\t{15:-s}".format(i[0])
+               print("\t{15:-s}".format(i[0]))
                if i[2] != "":
-                       print " {:s}\n".format(i[2])
+                       print(" {:s}\n".format(i[2]))
 
        print("\n")
        return 1
@@ -27,7 +26,7 @@ def mnt_run_test(tss, argv):
                if i[0] == argv[1]:
                        rc = i[1](i, argv[1:])
                        if rc:
-                               print "FAILED [rc={:d}]".format(rc)
+                               print("FAILED [rc={:d}]".format(rc))
                        break
 
        if ((rc < 0) and (i == ())):
index 384368b1372428341988bc47e036b5f880a739a9..b9d0ddf54f0ac0c648be657f8a74c29f6f05c429 100644 (file)
@@ -249,6 +249,11 @@ function ts_init_py {
 
        export LD_LIBRARY_PATH="$TS_TOPDIR/../.libs"
        export PYTHONPATH="$TS_TOPDIR/../$LIBNAME/python:$TS_TOPDIR/../.libs"
+
+       export PYTHON_VERSION=$(awk '/^PYTHON_VERSION/ { print $3 }' $top_builddir/Makefile)
+       export PYTHON_MAJOR_VERSION=$(echo $PYTHON_VERSION | sed 's/\..*//')
+
+       export PYTHON="python${PYTHON_MAJOR_VERSION}"
 }
 
 function ts_valgrind {
index 09e705009a50c3960cf592ed2b1593484701b712..4be19dde6484f271f41db3c79e381e0f0d2145f8 100755 (executable)
@@ -4,7 +4,6 @@
 
 TS_TOPDIR="$(dirname $0)/../.."
 TS_DESC="context-py"
-PYDBG="python -m pdb"
 
 . $TS_TOPDIR/functions.sh
 ts_init "$*"
@@ -12,6 +11,8 @@ ts_init_py libmount
 ts_skip_nonroot
 
 TESTPROG="$TS_HELPER_PYLIBMOUNT_CONTEXT"
+
+PYDBG="$PYTHON -m pdb"
 LABEL=libmount-test
 UUID=$(uuidgen)
 MOUNTPOINT="$TS_MOUNTPOINT"
@@ -59,14 +60,14 @@ ts_device_has "TYPE" "ext4" $DEVICE || ts_die "Cannot find ext3 on $DEVICE" $DEV
 
 ts_init_subtest "mount-by-devname"
 mkdir -p $MOUNTPOINT &>  /dev/null
-$TESTPROG --mount $DEVICE $MOUNTPOINT >> $TS_OUTPUT 2>&1
+$PYTHON $TESTPROG --mount $DEVICE $MOUNTPOINT >> $TS_OUTPUT 2>&1
 
 grep -q $DEVICE $LIBMOUNT_MTAB || \
        echo "(by device) cannot find $DEVICE in $LIBMOUNT_MTAB" >> $TS_OUTPUT 2>&1
 ts_finalize_subtest
 
 ts_init_subtest "umount-by-devname"
-$TESTPROG --umount $DEVICE >> $TS_OUTPUT 2>&1
+$PYTHON $TESTPROG --umount $DEVICE >> $TS_OUTPUT 2>&1
 grep -q $DEVICE $LIBMOUNT_MTAB &&
        echo "umount (device) failed: found $DEVICE in $LIBMOUNT_MTAB" >> $TS_OUTPUT 2>&1
 ts_finalize_subtest
@@ -74,14 +75,14 @@ ts_finalize_subtest
 
 ts_init_subtest "mount-by-label"
 mkdir -p $MOUNTPOINT &>  /dev/null
-$TESTPROG --mount LABEL="$LABEL" $MOUNTPOINT >> $TS_OUTPUT 2>&1
+$PYTHON $TESTPROG --mount LABEL="$LABEL" $MOUNTPOINT >> $TS_OUTPUT 2>&1
 grep -q $DEVICE $LIBMOUNT_MTAB || \
        echo "(by label) cannot find $DEVICE in $LIBMOUNT_MTAB" >> $TS_OUTPUT 2>&1
 ts_finalize_subtest
 
 
 ts_init_subtest "umount-by-mountpoint"
-$TESTPROG --umount $MOUNTPOINT >> $TS_OUTPUT 2>&1
+$PYTHON $TESTPROG --umount $MOUNTPOINT >> $TS_OUTPUT 2>&1
 grep -q $DEVICE $LIBMOUNT_MTAB && \
        echo "umount (mountpoint) failed: found $DEVICE in $LIBMOUNT_MTAB" >> $TS_OUTPUT 2>&1
 ts_finalize_subtest
@@ -89,10 +90,10 @@ ts_finalize_subtest
 
 ts_init_subtest "mount-by-uuid"
 mkdir -p $MOUNTPOINT &> /dev/null
-$TESTPROG --mount UUID="$UUID" $MOUNTPOINT >> $TS_OUTPUT 2>&1
+$PYTHON $TESTPROG --mount UUID="$UUID" $MOUNTPOINT >> $TS_OUTPUT 2>&1
 grep -q $DEVICE $LIBMOUNT_MTAB || \
        echo "(by uuid) cannot find $DEVICE in $LIBMOUNT_MTAB" >> $TS_OUTPUT 2>&1
-$TESTPROG --umount $MOUNTPOINT >> $TS_OUTPUT 2>&1
+$PYTHON $TESTPROG --umount $MOUNTPOINT >> $TS_OUTPUT 2>&1
 grep -q $DEVICE $LIBMOUNT_MTAB &&
        echo "umount failed: found $DEVICE in $LIBMOUNT_MTAB" >> $TS_OUTPUT 2>&1
 ts_finalize_subtest
@@ -100,15 +101,15 @@ ts_finalize_subtest
 
 ts_init_subtest "mount-flags"
 mkdir -p $MOUNTPOINT &> /dev/null
-$TESTPROG --mount -o ro,noexec,nosuid,strictatime $DEVICE $MOUNTPOINT >> $TS_OUTPUT 2>&1
+$PYTHON $TESTPROG --mount -o ro,noexec,nosuid,strictatime $DEVICE $MOUNTPOINT >> $TS_OUTPUT 2>&1
 $TS_CMD_FINDMNT --kernel $MOUNTPOINT -o VFS-OPTIONS -n >> $TS_OUTPUT 2>&1
 grep -q $DEVICE $LIBMOUNT_MTAB || \
        echo "cannot find $DEVICE in $LIBMOUNT_MTAB" >> $TS_OUTPUT 2>&1
 
-$TESTPROG --mount -o remount,rw $MOUNTPOINT >> $TS_OUTPUT 2>&1
+$PYTHON $TESTPROG --mount -o remount,rw $MOUNTPOINT >> $TS_OUTPUT 2>&1
 $TS_CMD_FINDMNT --kernel $MOUNTPOINT -o VFS-OPTIONS -n >> $TS_OUTPUT 2>&1
 
-$TESTPROG --umount $MOUNTPOINT >> $TS_OUTPUT 2>&1
+$PYTHON $TESTPROG --umount $MOUNTPOINT >> $TS_OUTPUT 2>&1
 grep -q $DEVICE $LIBMOUNT_MTAB &&
        echo "umount failed: found $DEVICE in $LIBMOUNT_MTAB" >> $TS_OUTPUT 2>&1
 ts_finalize_subtest
@@ -120,11 +121,11 @@ img=$(ts_image_init)
 mkfs.ext3 -F $img &> /dev/null
 udevadm settle
 
-$TESTPROG --mount -o loop $img $MOUNTPOINT >> $TS_OUTPUT 2>&1
+$PYTHON $TESTPROG --mount -o loop $img $MOUNTPOINT >> $TS_OUTPUT 2>&1
 grep -q $MOUNTPOINT $LIBMOUNT_MTAB || \
        echo "(loopdev) cannot find $MOUNTPOINT in $LIBMOUNT_MTAB" >> $TS_OUTPUT 2>&1
 udevadm settle
-$TESTPROG --umount $MOUNTPOINT >> $TS_OUTPUT 2>&1
+$PYTHON $TESTPROG --umount $MOUNTPOINT >> $TS_OUTPUT 2>&1
 grep -q $MOUNTPOINT $LIBMOUNT_MTAB &&
        echo "umount failed: found $MOUNTPOINT in $LIBMOUNT_MTAB" >> $TS_OUTPUT 2>&1
 ts_finalize_subtest
index 40dcba4d98ad7d2cf5e66fbd518d3eb1dec65279..024bd92d4547851ac79ad4cc8d12dbf9512d4fdd 100755 (executable)
@@ -9,6 +9,7 @@ ts_init "$*"
 ts_init_py libmount
 ts_skip_nonroot
 
+
 TESTPROG="$TS_HELPER_PYLIBMOUNT_CONTEXT"
 LABEL=libmount-test
 UUID=$(uuidgen)
@@ -56,14 +57,14 @@ udevadm settle
 
 ts_init_subtest "mount-by-devname"
 mkdir -p $MOUNTPOINT &>  /dev/null
-ts_valgrind $TESTPROG --mount $DEVICE $MOUNTPOINT >> $TS_OUTPUT 2>&1
+$PYTHON $TESTPROG --mount $DEVICE $MOUNTPOINT >> $TS_OUTPUT 2>&1
 grep -q $DEVICE /proc/mounts || \
        echo "(by device) cannot find $DEVICE in /proc/mounts" >> $TS_OUTPUT 2>&1
 ts_finalize_subtest
 
 
 ts_init_subtest "umount-by-devname"
-ts_valgrind $TESTPROG --umount $DEVICE >> $TS_OUTPUT 2>&1
+$PYTHON $TESTPROG --umount $DEVICE >> $TS_OUTPUT 2>&1
 grep -q $DEVICE /proc/mounts &&
        echo "umount (device) failed: found $DEVICE in /proc/mounts" >> $TS_OUTPUT 2>&1
 ts_finalize_subtest
@@ -71,14 +72,14 @@ ts_finalize_subtest
 
 ts_init_subtest "mount-uhelper"
 mkdir -p $MOUNTPOINT &>  /dev/null
-ts_valgrind $TESTPROG --mount -o uhelper=foo,rw LABEL="$LABEL" $MOUNTPOINT >> $TS_OUTPUT 2>&1
+$PYTHON $TESTPROG --mount -o uhelper=foo,rw LABEL="$LABEL" $MOUNTPOINT >> $TS_OUTPUT 2>&1
 grep -q $DEVICE $LIBMOUNT_UTAB || \
        echo "(by label) cannot find $DEVICE in $LIBMOUNT_UTAB" >> $TS_OUTPUT 2>&1
 ts_finalize_subtest
 
 
 ts_init_subtest "umount"
-ts_valgrind $TESTPROG --umount $MOUNTPOINT >> $TS_OUTPUT 2>&1
+$PYTHON $TESTPROG --umount $MOUNTPOINT >> $TS_OUTPUT 2>&1
 grep -q $DEVICE $LIBMOUNT_UTAB && \
        echo "umount (mountpoint) failed: found $DEVICE in $LIBMOUNT_UTAB" >> $TS_OUTPUT 2>&1
 ts_finalize_subtest
@@ -97,7 +98,7 @@ if [ -x "/sbin/mkfs.btrfs" ]; then
 
        ts_init_subtest "mount-uhelper-subvol"
        mkdir -p $MOUNTPOINT &>  /dev/null
-       ts_valgrind $TESTPROG --mount -o uhelper=foo,rw,subvol=sub $DEVICE  $MOUNTPOINT >> $TS_OUTPUT 2>&1
+       $PYTHON $TESTPROG --mount -o uhelper=foo,rw,subvol=sub $DEVICE  $MOUNTPOINT >> $TS_OUTPUT 2>&1
        grep -q $DEVICE $LIBMOUNT_UTAB || \
                echo "cannot find $DEVICE in $LIBMOUNT_UTAB" >> $TS_OUTPUT 2>&1
        ts_finalize_subtest
@@ -107,7 +108,7 @@ if [ -x "/sbin/mkfs.btrfs" ]; then
        ts_log "---"
 
        ts_init_subtest "umount-subvol"
-       ts_valgrind $TESTPROG --umount $MOUNTPOINT >> $TS_OUTPUT 2>&1
+       $PYTHON $TESTPROG --umount $MOUNTPOINT >> $TS_OUTPUT 2>&1
        grep -q $DEVICE $LIBMOUNT_UTAB && \
                echo "umount (mountpoint) failed: found $DEVICE in $LIBMOUNT_UTAB" >> $TS_OUTPUT 2>&1
        ts_finalize_subtest
index 596a1b8fae81d57f43d610e3bb6d5e958e500252..0cce21afd87135f9391ff69777a383b96e85afd4 100755 (executable)
@@ -4,66 +4,72 @@
 
 TS_TOPDIR="$(dirname $0)/../.."
 TS_DESC="tab files-py"
-PYDBG="python -m pdb"
 
 . $TS_TOPDIR/functions.sh
 ts_init "$*"
+
+set -x
+
 ts_init_py libmount
 
+
+PYDBG="$PYTHON -m pdb"
 TESTPROG="$TS_HELPER_PYLIBMOUNT_TAB"
 
 ts_init_subtest "parse-fstab"
-$TESTPROG --parse "$TS_SELF/files/fstab" &> $TS_OUTPUT
+$PYTHON $TESTPROG --parse "$TS_SELF/files/fstab" &> $TS_OUTPUT
 sed -i -e 's/fs: 0x.*/fs:/g' $TS_OUTPUT
 ts_finalize_subtest
 
+exit 1
+
 ts_init_subtest "parse-fstab-full"
-ts_valgrind $TESTPROG --parse "$TS_SELF/files/fstab.comment" --comments &> $TS_OUTPUT
+$PYTHON $TESTPROG --parse "$TS_SELF/files/fstab.comment" --comments &> $TS_OUTPUT
 sed -i -e 's/fs: 0x.*/fs:/g' $TS_OUTPUT
 ts_finalize_subtest
 
 ts_init_subtest "parse-mtab"
-ts_valgrind $TESTPROG --parse "$TS_SELF/files/mtab" &> $TS_OUTPUT
+$PYTHON $TESTPROG --parse "$TS_SELF/files/mtab" &> $TS_OUTPUT
 sed -i -e 's/fs: 0x.*/fs:/g' $TS_OUTPUT
 ts_finalize_subtest
 
 ts_init_subtest "parse-fstab-broken"
-ts_valgrind $TESTPROG --parse "$TS_SELF/files/fstab.broken" &> $TS_OUTPUT
+$PYTHON $TESTPROG --parse "$TS_SELF/files/fstab.broken" &> $TS_OUTPUT
 sed -i -e 's/.*fstab.broken:[[:digit:]]*: parse error//g; s/fs: 0x.*/fs:/g' $TS_OUTPUT
 ts_finalize_subtest
 
 ts_init_subtest "parse-mountinfo"
-ts_valgrind $TESTPROG --parse "$TS_SELF/files/mountinfo" &> $TS_OUTPUT
+$PYTHON $TESTPROG --parse "$TS_SELF/files/mountinfo" &> $TS_OUTPUT
 sed -i -e 's/fs: 0x.*/fs:/g' $TS_OUTPUT
 ts_finalize_subtest
 
 ts_init_subtest "copy"
-ts_valgrind $TESTPROG --copy-fs "$TS_SELF/files/fstab" &> $TS_OUTPUT
+$PYTHON $TESTPROG --copy-fs "$TS_SELF/files/fstab" &> $TS_OUTPUT
 sed -i -e 's/fs: 0x.*/fs:/g' $TS_OUTPUT
 ts_finalize_subtest
 
 ts_init_subtest "find-source"
-ts_valgrind $TESTPROG --find-forward "$TS_SELF/files/fstab" source UUID=fef7ccb3-821c-4de8-88dc-71472be5946f &> $TS_OUTPUT
+$PYTHON $TESTPROG --find-forward "$TS_SELF/files/fstab" source UUID=fef7ccb3-821c-4de8-88dc-71472be5946f &> $TS_OUTPUT
 sed -i -e 's/fs: 0x.*/fs:/g' $TS_OUTPUT
 ts_finalize_subtest
 
 ts_init_subtest "find-target"
-ts_valgrind $TESTPROG --find-forward "$TS_SELF/files/fstab" target /home/foo &> $TS_OUTPUT
+$PYTHON $TESTPROG --find-forward "$TS_SELF/files/fstab" target /home/foo &> $TS_OUTPUT
 sed -i -e 's/fs: 0x.*/fs:/g' $TS_OUTPUT
 ts_finalize_subtest
 
 ts_init_subtest "find-target2"
-ts_valgrind $TESTPROG --find-forward "$TS_SELF/files/fstab" target /any/foo &> $TS_OUTPUT
+$PYTHON $TESTPROG --find-forward "$TS_SELF/files/fstab" target /any/foo &> $TS_OUTPUT
 sed -i -e 's/fs: 0x.*/fs:/g' $TS_OUTPUT
 ts_finalize_subtest
 
 ts_init_subtest "find-target3"
-ts_valgrind $TESTPROG --find-forward "$TS_SELF/files/fstab" target /any/foo/ &> $TS_OUTPUT
+$PYTHON $TESTPROG --find-forward "$TS_SELF/files/fstab" target /any/foo/ &> $TS_OUTPUT
 sed -i -e 's/fs: 0x.*/fs:/g' $TS_OUTPUT
 ts_finalize_subtest
 
 ts_init_subtest "find-pair"
-ts_valgrind $TESTPROG --find-pair "$TS_SELF/files/mtab" /dev/mapper/kzak-home /home/kzak &> $TS_OUTPUT
+$PYTHON $TESTPROG --find-pair "$TS_SELF/files/mtab" /dev/mapper/kzak-home /home/kzak &> $TS_OUTPUT
 sed -i -e 's/fs: 0x.*/fs:/g' $TS_OUTPUT
 ts_finalize_subtest
 
index 9f1d19cfe326d1166eb58ca316f43c6817750fdc..05c2c207656d382248466c417dd388f140f535aa 100755 (executable)
@@ -1,10 +1,7 @@
 #!/bin/bash
 
 TS_TOPDIR="$(dirname $0)/../.."
-export LD_LIBRARY_PATH="$TS_TOPDIR/../.libs"
-export PYTHONPATH="$TS_TOPDIR/../libmount/python:$TS_TOPDIR/../.libs"
 TS_DESC="tags-py"
-PYDBG="python -m pdb"
 
 . $TS_TOPDIR/functions.sh
 ts_init "$*"
@@ -13,6 +10,8 @@ ts_skip_nonroot
 
 TESTPROG="$TS_HELPER_PYLIBMOUNT_TAB"
 
+PYDBG="$PYTHON -m pdb"
+
 DEVICE=$(ts_scsi_debug_init dev_size_mb=50 sector_size=512)
 LABEL="testLibmount"
 UUID="de1bc6e9-34ab-4151-a1d7-900042eee8d9"
@@ -33,12 +32,12 @@ FSTAB="$TS_OUTDIR/fstab"
 echo "LABEL=$LABEL /mnt/mountpoint auto defaults" > $FSTAB
 
 ts_init_subtest "fstab-label2uuid"
-ts_valgrind $TESTPROG --find-forward $FSTAB source "UUID=$UUID" &> $TS_OUTPUT
+$PYTHON $TESTPROG --find-forward $FSTAB source "UUID=$UUID" &> $TS_OUTPUT
 sed -i -e 's/fs: 0x.*/fs:/g' $TS_OUTPUT
 ts_finalize_subtest
 
 ts_init_subtest "fstab-label2dev"
-ts_valgrind $TESTPROG --find-forward $FSTAB source $DEVICE &> $TS_OUTPUT
+$PYTHON $TESTPROG --find-forward $FSTAB source $DEVICE &> $TS_OUTPUT
 sed -i -e 's/fs: 0x.*/fs:/g' $TS_OUTPUT
 ts_finalize_subtest
 
@@ -49,20 +48,20 @@ echo "UUID=$UUID  /mnt/mountpoint2 auto defaults" >> $FSTAB
 
 ts_init_subtest "fstab-uuid"
 # has to return /mnt/mountpoint2
-ts_valgrind $TESTPROG --find-forward $FSTAB source "UUID=$UUID" &> $TS_OUTPUT
+$PYTHON $TESTPROG --find-forward $FSTAB source "UUID=$UUID" &> $TS_OUTPUT
 sed -i -e 's/fs: 0x.*/fs:/g' $TS_OUTPUT
 ts_finalize_subtest
 
 ts_init_subtest "fstab-label"
 # has to return /mnt/mountpoint
-ts_valgrind $TESTPROG --find-forward $FSTAB source "LABEL=$LABEL" &> $TS_OUTPUT
+$PYTHON $TESTPROG --find-forward $FSTAB source "LABEL=$LABEL" &> $TS_OUTPUT
 sed -i -e 's/fs: 0x.*/fs:/g' $TS_OUTPUT
 ts_finalize_subtest
 
 
 ts_init_subtest "fstab-dev2label"
 # has to return /mnt/mountpoint
-ts_valgrind $TESTPROG --find-forward $FSTAB source $DEVICE &> $TS_OUTPUT
+$PYTHON $TESTPROG --find-forward $FSTAB source $DEVICE &> $TS_OUTPUT
 sed -i -e 's/fs: 0x.*/fs:/g' $TS_OUTPUT
 ts_finalize_subtest
 
@@ -73,7 +72,7 @@ echo "$DEVICE  /mnt/mountpoint3 auto defaults" >> $FSTAB
 
 ts_init_subtest "fstab-dev"
 # has to return /mnt/mountpoint3
-ts_valgrind $TESTPROG --find-forward $FSTAB source $DEVICE &> $TS_OUTPUT
+$PYTHON $TESTPROG --find-forward $FSTAB source $DEVICE &> $TS_OUTPUT
 sed -i -e 's/fs: 0x.*/fs:/g' $TS_OUTPUT
 sed -i -e 's/source: .*//g' $TS_OUTPUT         # devname is generated, remove it
 ts_finalize_subtest
index 2f867a23c1d1b2e8b7042d19540968c0bbc67d4c..e49d33ef0e0a82d3d1fb95d58e0d3e0cfb243feb 100755 (executable)
@@ -3,12 +3,11 @@
 # Copyright (C) 2010 Karel Zak <kzak@redhat.com>
 
 TS_TOPDIR="$(dirname $0)/../.."
-export LD_LIBRARY_PATH="$TS_TOPDIR/../.libs"
-export PYTHONPATH="$TS_TOPDIR/../libmount/python:$TS_TOPDIR/../.libs"
 TS_DESC="tab update-py"
 
 . $TS_TOPDIR/functions.sh
 ts_init "$*"
+ts_init_py libmount
 ts_skip_nonroot
 
 TESTPROG="$TS_HELPER_PYLIBMOUNT_UPDATE"
@@ -23,7 +22,7 @@ rm -f $LIBMOUNT_FSTAB
 cp "$TS_SELF/files/fstab.comment" $LIBMOUNT_FSTAB
 
 ts_init_subtest "fstab-replace"
-$TESTPROG --replace "LABEL=foo" "/mnt/foo"
+$PYTHON $TESTPROG --replace "LABEL=foo" "/mnt/foo"
 cp $LIBMOUNT_FSTAB $TS_OUTPUT  # save the fstab aside
 ts_finalize_subtest            #checks the fstab