diff --git a/build.sbt b/build.sbt index febab1b258bb..93be77b1f47d 100644 --- a/build.sbt +++ b/build.sbt @@ -403,6 +403,7 @@ lazy val enso = (project in file(".")) `std-microsoft`, `std-snowflake`, `std-table`, + `std-tests`, `std-tableau`, `std-saas`, `std-duckdb`, @@ -5525,6 +5526,26 @@ lazy val `std-table` = project .dependsOn(`poi-wrapper`) .dependsOn(`std-base` % "provided") +lazy val `std-tests` = project + .in(file("std-bits") / "tests") + .configs(Test) + .settings( + frgaalJavaCompilerSetting, + commands += WithDebugCommand.withDebug, + Test / fork := true, + autoScalaLibrary := false, + Compile / compile / compileInputs := (Compile / compile / compileInputs) + .dependsOn(SPIHelpers.ensureSPIConsistency) + .value, + libraryDependencies ++= Seq( + "junit" % "junit" % junitVersion % Test, + "com.github.sbt" % "junit-interface" % junitIfVersion % Test + ) + ) + .dependsOn(`std-base`) + .dependsOn(`std-table`) + .dependsOn(`test-utils`) + lazy val `opencv-wrapper` = project .in(file("lib/java/opencv-wrapper")) .enablePlugins(JarExtractPlugin) diff --git a/std-bits/tests/src/test/java/org/enso/base/polyglot/tests/EnsoMetaTest.java b/std-bits/tests/src/test/java/org/enso/base/polyglot/tests/EnsoMetaTest.java new file mode 100644 index 000000000000..bcfeb1f8e188 --- /dev/null +++ b/std-bits/tests/src/test/java/org/enso/base/polyglot/tests/EnsoMetaTest.java @@ -0,0 +1,35 @@ +package org.enso.base.polyglot.tests; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import org.enso.base.polyglot.EnsoMeta; +import org.enso.test.utils.ContextUtils; +import org.graalvm.polyglot.PolyglotException; +import org.junit.BeforeClass; +import org.junit.ClassRule; +import org.junit.Test; + +public class EnsoMetaTest { + @ClassRule public static final ContextUtils ctx = ContextUtils.createDefault(); + + @BeforeClass + public static void importAll() { + ctx.eval("enso", "from Standard.Base import all"); + } + + @Test + public void loadErrorType() { + var errorType = EnsoMeta.getType("Standard.Base.Error", "Error"); + assertTrue("Is meta object", errorType.isMetaObject()); + var fqn = errorType.getMetaQualifiedName(); + assertEquals("Standard.Base.Error.Error", fqn); + var error = errorType.invokeMember("throw", "error message"); + assertTrue("An error was created", error.isException()); + try { + throw error.throwException(); + } catch (PolyglotException ex) { + assertEquals("Converted to panic with the same exception", "error message", ex.getMessage()); + } + } +}