diff --git a/bindings/pyroot/cppyy/cppyy/test/test_operators.py b/bindings/pyroot/cppyy/cppyy/test/test_operators.py index 289348a42966a..52c6b840d50e1 100644 --- a/bindings/pyroot/cppyy/cppyy/test/test_operators.py +++ b/bindings/pyroot/cppyy/cppyy/test/test_operators.py @@ -336,6 +336,7 @@ def test14_single_argument_call(self): b = ns.Bar() assert b[42] == 42 + @mark.xfail(reason='Fails on macOS and on Linux with gcc 16 because cppyy picks the wrong "operator-" overload.') def test15_class_and_global_mix(self): """Iterator methods have both class and global overloads""" @@ -346,6 +347,10 @@ def test15_class_and_global_mix(self): x = std.vector[int]([1,2,3]) assert (x.end() - 1).__deref__() == 3 + # Next line fails with "TypeError: int/long conversion expects an integer object". + # The subtraction should pick the (iterator, iterator) -> int overload, + # but it somehow chooses the (iterator, iterator) -> iterator overload + # with compiling ROOT with gcc 16. TODO: fix this. assert std.max_element(x.begin(), x.end())-x.begin() == 2 assert (x.end() - 3).__deref__() == 1 diff --git a/bindings/pyroot/pythonizations/test/import_load_libs.py b/bindings/pyroot/pythonizations/test/import_load_libs.py index d82401fa7a435..a3701cad82efe 100644 --- a/bindings/pyroot/pythonizations/test/import_load_libs.py +++ b/bindings/pyroot/pythonizations/test/import_load_libs.py @@ -73,6 +73,7 @@ class ImportLoadLibs(unittest.TestCase): 'ld.*', 'libffi', 'libgcc_s', + 'libatomic', # AddressSanitizer runtime and ROOT configuration 'libclang_rt.asan-.*', 'libROOTSanitizerConfig', diff --git a/roofit/roofitcore/test/testRooFuncWrapper.cxx b/roofit/roofitcore/test/testRooFuncWrapper.cxx index cc40d9ab2281f..78f667eb99c70 100644 --- a/roofit/roofitcore/test/testRooFuncWrapper.cxx +++ b/roofit/roofitcore/test/testRooFuncWrapper.cxx @@ -35,12 +35,12 @@ #include #include +#include #include +#include #include -#include #include -#include #include "gtest_wrapper.h" @@ -67,13 +67,13 @@ double getNumDerivative(const RooAbsReal &pdf, RooRealVar &var, const RooArgSet void randomizeParameters(const RooArgSet ¶meters) { + TRandom3 rng(1337); + double lowerBound = -0.1; double upperBound = 0.1; - std::uniform_real_distribution unif(lowerBound, upperBound); - std::default_random_engine re; for (auto *param : parameters) { - double mul = unif(re); + double mul = rng.Uniform(lowerBound, upperBound); auto par = dynamic_cast(param); if (!par)