AsyncTests.cs 911 B

12345678910111213141516171819202122232425262728293031323334353637
  1. using Lua.Standard;
  2. namespace Lua.Tests;
  3. public class AsyncTests
  4. {
  5. LuaState state = default!;
  6. [SetUp]
  7. public void SetUp()
  8. {
  9. state = LuaState.Create();
  10. state.OpenStandardLibraries();
  11. var assert = state.Environment["assert"].Read<LuaFunction>();
  12. state.Environment["assert"] = new LuaFunction("wait",
  13. async (c, ct) =>
  14. {
  15. await Task.Delay(1, ct);
  16. return await assert.InvokeAsync(c, ct);
  17. });
  18. }
  19. [Test]
  20. public async Task Test_Async()
  21. {
  22. var path = FileHelper.GetAbsolutePath("tests-lua/coroutine.lua");
  23. try
  24. {
  25. await state.DoFileAsync(path);
  26. }
  27. catch (LuaRuntimeException e)
  28. {
  29. var line = e.LuaTraceback.LastLine;
  30. throw new Exception($"{path}:line {line}\n{e.InnerException}\n {e}");
  31. }
  32. }
  33. }