LuaTests.cs 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. using Lua.Standard;
  2. using System.Globalization;
  3. namespace Lua.Tests;
  4. public class LuaTests
  5. {
  6. LuaState state = default!;
  7. [SetUp]
  8. public void SetUp()
  9. {
  10. state = LuaState.Create();
  11. state.OpenStandardLibraries();
  12. }
  13. [Test]
  14. [TestCase("tests-lua/code.lua")]
  15. [TestCase("tests-lua/goto.lua")]
  16. [TestCase("tests-lua/constructs.lua")]
  17. [TestCase("tests-lua/locals.lua")]
  18. //[TestCase("tests-lua/pm.lua")] string.match is not implemented
  19. //[TestCase("tests-lua/sort.lua")] //check for "invalid order function" is not implemented
  20. //[TestCase("tests-lua/calls.lua")] // string.dump and reader function for load chunk is not implemented
  21. [TestCase("tests-lua/closure.lua")]
  22. [TestCase("tests-lua/events.lua")]
  23. [TestCase("tests-lua/vararg.lua")]
  24. [TestCase("tests-lua/nextvar.lua")]
  25. [TestCase("tests-lua/math.lua")]
  26. [TestCase("tests-lua/bitwise.lua")]
  27. [TestCase("tests-lua/strings.lua")]
  28. [TestCase("tests-lua/coroutine.lua")]
  29. [TestCase("tests-lua/db.lua")]
  30. [TestCase("tests-lua/verybig.lua")]
  31. public async Task Test_Lua(string file)
  32. {
  33. var path = FileHelper.GetAbsolutePath(file);
  34. try
  35. {
  36. await state.DoFileAsync(FileHelper.GetAbsolutePath(file));
  37. }
  38. catch (LuaRuntimeException e)
  39. {
  40. var traceback = e.LuaTraceback;
  41. var line = traceback.LastLine;
  42. throw new Exception($"{path}:line {line}\n{e.InnerException}\n{e} ");
  43. }
  44. }
  45. }