From b7f8160ad46410fa7178a564babdfeb50526fd45 Mon Sep 17 00:00:00 2001 From: stephengold Date: Fri, 20 Sep 2024 16:46:00 -0700 Subject: [PATCH] PerformanceTest: prefer a Release native library over Debug ones --- src/test/java/testjoltjni/TestUtils.java | 36 +++++++++++++++++++ .../app/performancetest/PerformanceTest.java | 2 +- 2 files changed, 37 insertions(+), 1 deletion(-) diff --git a/src/test/java/testjoltjni/TestUtils.java b/src/test/java/testjoltjni/TestUtils.java index 150ad9d5..1383489d 100644 --- a/src/test/java/testjoltjni/TestUtils.java +++ b/src/test/java/testjoltjni/TestUtils.java @@ -298,6 +298,42 @@ public static boolean loadNativeLibrary( return success; } + /** + * Load some flavor of native library, preferably a Release build. + *

+ * The search order is: + *

    + *
  1. ReleaseSp
  2. + *
  3. ReleaseDp
  4. + *
  5. DebugSp
  6. + *
  7. DebugDp
  8. + *
+ */ + public static void loadNativeLibraryRelease() { + File directory = new File("build/libs/joltjni/shared"); + + boolean success = loadNativeLibrary(directory, "Release", "Sp"); + if (success) { + Assert.assertFalse(Jolt.isDoublePrecision()); + } else { + success = loadNativeLibrary(directory, "Release", "Dp"); + if (success) { + Assert.assertTrue(Jolt.isDoublePrecision()); + } else { + success = loadNativeLibrary(directory, "Debug", "Sp"); + if (success) { + Assert.assertFalse(Jolt.isDoublePrecision()); + } else { + success = loadNativeLibrary(directory, "Debug", "Dp"); + if (success) { + Assert.assertTrue(Jolt.isDoublePrecision()); + } + } + } + } + Assert.assertTrue(success); + } + /** * Allocate and initialize a {@code PhysicsSystem} in the customary * configuration. diff --git a/src/test/java/testjoltjni/app/performancetest/PerformanceTest.java b/src/test/java/testjoltjni/app/performancetest/PerformanceTest.java index c806d256..07e36daf 100644 --- a/src/test/java/testjoltjni/app/performancetest/PerformanceTest.java +++ b/src/test/java/testjoltjni/app/performancetest/PerformanceTest.java @@ -56,7 +56,7 @@ private static void Trace(String format, Object... args) // Program entry point public static void main(String[] argv) throws IOException { - TestUtils.loadNativeLibrary(); + TestUtils.loadNativeLibraryRelease(); // Install callbacks Jolt.installDefaultTraceCallback();