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)