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
#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))
{
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}
};
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
from samba.tests import TestCase, BlackboxProcessError
import os
from subprocess import Popen, PIPE
+from samba import is_rust_built
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: