From b29b313e7bedfb0f9b694df71087385dc5c00607 Mon Sep 17 00:00:00 2001 From: George Kiagiadakis Date: Wed, 6 Apr 2022 18:37:56 +0300 Subject: [PATCH] tests: wplua: add a test for asynchronous script activation --- tests/wplua/meson.build | 6 +++++ tests/wplua/scripts/async-activation.lua | 30 ++++++++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 tests/wplua/scripts/async-activation.lua diff --git a/tests/wplua/meson.build b/tests/wplua/meson.build index c827aba3..074c3cc1 100644 --- a/tests/wplua/meson.build +++ b/tests/wplua/meson.build @@ -43,3 +43,9 @@ test( args: ['require.lua'], env: common_env, ) +test( + 'test-lua-async-activation', + script_tester, + args: ['async-activation.lua'], + env: common_env, +) diff --git a/tests/wplua/scripts/async-activation.lua b/tests/wplua/scripts/async-activation.lua new file mode 100644 index 00000000..4cdbbb2d --- /dev/null +++ b/tests/wplua/scripts/async-activation.lua @@ -0,0 +1,30 @@ +Script.async_activation = true + +tags = {} + +function checkpoint(x) + Log.info(x) + table.insert(tags, x) +end + +Core.timeout_add(100, function() + checkpoint("timeout1") + return false +end) + +Core.timeout_add(200, function() + checkpoint("timeout2") + return false +end) + +Core.timeout_add(300, function() + checkpoint("timeout3") + assert(#tags == 3) + assert(tags[1] == "timeout1") + assert(tags[2] == "timeout2") + assert(tags[3] == "timeout3") + Script:finish_activation() + return false +end) + +assert(#tags == 0)