]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
Add pyglue for Rust for disabling tests
authorDavid Mulder <dmulder@samba.org>
Tue, 27 Aug 2024 21:06:02 +0000 (15:06 -0600)
committerDavid Mulder <dmulder@samba.org>
Wed, 23 Oct 2024 14:21:34 +0000 (14:21 +0000)
Signed-off-by: David Mulder <dmulder@samba.org>
Reviewed-by: Alexander Bokovoy <ab@samba.org>
buildtools/wafsamba/wscript
python/pyglue.c
python/samba/__init__.py
python/samba/tests/rust.py

index 587bc6df8acd3ddf657310c848d70beee558c9cb..ef9d5be62af7a8293fdadce75757fa7725e9e62c 100644 (file)
@@ -355,6 +355,8 @@ def configure(conf):
 
     conf.env.disable_python = Options.options.disable_python
     conf.env.enable_rust = Options.options.enable_rust
+    if Options.options.enable_rust:
+        conf.DEFINE('HAVE_RUST', '1')
 
     if (conf.env.AUTOCONF_HOST and
         conf.env.AUTOCONF_BUILD and
index 042bf9e14f32937d7641e2ef046f1dd311b7681e..5598c0929f3e0ed505e0ab8775d06d6a1202d233 100644 (file)
@@ -309,6 +309,16 @@ static PyObject *py_is_ad_dc_built(PyObject *self,
 #endif
 }
 
+static PyObject *py_is_rust_built(PyObject *self,
+               PyObject *Py_UNUSED(ignored))
+{
+#ifdef HAVE_RUST
+       Py_RETURN_TRUE;
+#else
+       Py_RETURN_FALSE;
+#endif
+}
+
 static PyObject *py_is_selftest_enabled(PyObject *self,
                 PyObject *Py_UNUSED(ignored))
 {
@@ -580,6 +590,8 @@ static PyMethodDef py_misc_methods[] = {
                METH_NOARGS, "How many NDR internal tokens is too many for this build?" },
        { "get_burnt_commandline", (PyCFunction)py_get_burnt_commandline,
                METH_VARARGS, "Return a redacted commandline to feed to setproctitle (None if no redaction required)" },
+       { "is_rust_built", (PyCFunction)py_is_rust_built, METH_NOARGS,
+               "is Samba built with Rust?" },
        {0}
 };
 
index d0e797e94c3fc64af6f61e646bffbf6241d0d5a6..538237a633194ae0c3d485fa4cdce65a5f9adf34 100644 (file)
@@ -432,6 +432,7 @@ is_ntvfs_fileserver_built = _glue.is_ntvfs_fileserver_built
 is_heimdal_built = _glue.is_heimdal_built
 is_ad_dc_built = _glue.is_ad_dc_built
 is_selftest_enabled = _glue.is_selftest_enabled
+is_rust_built = _glue.is_rust_built
 
 NTSTATUSError = _glue.NTSTATUSError
 HRESULTError = _glue.HRESULTError
index d453b3330275f59a82c38b49a8f4a67a6689179a..99f66a26cd2cf1efd7d04e10476ab3084228b943 100644 (file)
@@ -23,6 +23,7 @@
 from samba.tests import TestCase, BlackboxProcessError
 import os
 from subprocess import Popen, PIPE
+from samba import is_rust_built
 
 
 class RustCargoTests(TestCase):
@@ -65,6 +66,9 @@ class RustCargoTests(TestCase):
                                        msg)
 
     def test_rust(self):
+        if not is_rust_built():
+            self.skipTest('Cannot test Samba Rust if not built')
+
         crates = []
         for root, dirs, files in os.walk(self.rust_dir):
             for file in files: