Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorAlexander Gavrilov <angavrilov@gmail.com>2020-01-19 12:44:34 +0300
committerAlexander Gavrilov <angavrilov@gmail.com>2020-01-24 20:48:02 +0300
commitfc1f5bded46afbb9b16fffe9e4c7f7c212566255 (patch)
treee4beb4c3119d87a668709b67e586ca8a1d9f0804 /tests
parent300f937aec5d0be7b6003a5e835cd2a33bd52d64 (diff)
Depsgraph: fix false positive time dependencies for simple drivers.
The dependency graph has to know whether a driver must be re-evaluated every frame due to a dependency on the current frame number. For python drivers it was using a heuristic based on searching for certain sub- strings in the expression, notably including '('. When the expression is actually evaluated using Python, this can't be easily improved; however if the Simple Expression evaluator is used, this check can be done precisely by accessing the parsed data. Differential Revision: https://developer.blender.org/D6624
Diffstat (limited to 'tests')
-rw-r--r--tests/gtests/blenlib/BLI_expr_pylike_eval_test.cc13
1 files changed, 13 insertions, 0 deletions
diff --git a/tests/gtests/blenlib/BLI_expr_pylike_eval_test.cc b/tests/gtests/blenlib/BLI_expr_pylike_eval_test.cc
index 32e33e2e118..449577401d7 100644
--- a/tests/gtests/blenlib/BLI_expr_pylike_eval_test.cc
+++ b/tests/gtests/blenlib/BLI_expr_pylike_eval_test.cc
@@ -282,6 +282,19 @@ TEST(expr_pylike, MultipleArgs)
BLI_expr_pylike_free(expr);
}
+TEST(expr_pylike, UsingParam)
+{
+ const char *names[3] = {"x", "y", "z"};
+
+ ExprPyLike_Parsed *expr = BLI_expr_pylike_parse("x + z", names, ARRAY_SIZE(names));
+
+ EXPECT_TRUE(BLI_expr_pylike_is_using_param(expr, 0));
+ EXPECT_FALSE(BLI_expr_pylike_is_using_param(expr, 1));
+ EXPECT_TRUE(BLI_expr_pylike_is_using_param(expr, 2));
+
+ BLI_expr_pylike_free(expr);
+}
+
#define TEST_ERROR(name, str, x, code) \
TEST(expr_pylike, Error_##name) \
{ \