2022-03-20 16:01:04 -04:00
|
|
|
#![cfg(feature = "luau")]
|
|
|
|
|
|
|
|
use std::env;
|
|
|
|
use std::fs;
|
|
|
|
|
2022-03-22 16:52:10 -04:00
|
|
|
use mlua::{Lua, Result, Value};
|
2022-03-20 16:01:04 -04:00
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn test_require() -> Result<()> {
|
|
|
|
let lua = Lua::new();
|
|
|
|
|
|
|
|
let temp_dir = tempfile::tempdir().unwrap();
|
|
|
|
fs::write(
|
|
|
|
temp_dir.path().join("module.luau"),
|
|
|
|
r#"
|
|
|
|
counter = counter or 0
|
|
|
|
return counter + 1
|
|
|
|
"#,
|
|
|
|
)?;
|
|
|
|
|
|
|
|
env::set_var("LUAU_PATH", temp_dir.path().join("?.luau"));
|
|
|
|
lua.load(
|
|
|
|
r#"
|
|
|
|
local module = require("module")
|
|
|
|
assert(module == 1)
|
|
|
|
module = require("module")
|
|
|
|
assert(module == 1)
|
|
|
|
"#,
|
|
|
|
)
|
|
|
|
.exec()
|
|
|
|
}
|
2022-03-22 16:52:10 -04:00
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn test_vectors() -> Result<()> {
|
|
|
|
let lua = Lua::new();
|
|
|
|
|
|
|
|
let globals = lua.globals();
|
|
|
|
globals.set(
|
|
|
|
"vector",
|
|
|
|
lua.create_function(|_, (x, y, z)| Ok(Value::Vector(x, y, z)))?,
|
|
|
|
)?;
|
|
|
|
|
|
|
|
let v: [f32; 3] = lua
|
|
|
|
.load("return vector(1, 2, 3) + vector(3, 2, 1)")
|
|
|
|
.eval()?;
|
|
|
|
assert_eq!(v, [4.0, 4.0, 4.0]);
|
|
|
|
|
|
|
|
Ok(())
|
|
|
|
}
|