public class JniTest
|
{
|
private static void Test(
|
String name,
|
Object actual,
|
Object expected,
|
String actualAsString,
|
String expectedAsString)
|
{
|
if (!actual.equals(expected))
|
{
|
System.out.println(String.format(
|
"Test: %s failed\nExpected: \"%s\", Actual: \"%s\"",
|
name,
|
expected,
|
actual));
|
JniTest.exitCode = -1;
|
}
|
else
|
{
|
System.out.println(String.format("Test: %s passed", name));
|
}
|
}
|
|
private static void Test(
|
String name,
|
String actual,
|
String expected)
|
{
|
JniTest.Test(name, actual, expected, actual, expected);
|
}
|
|
public static void main(String[] args)
|
{
|
var actualVersion = JniWrapper.get_jni_version();
|
var expectedVersion = 0x000A0000;
|
JniTest.Test(
|
"Get JNI Version",
|
actualVersion,
|
expectedVersion,
|
String.format("0x%08X", actualVersion),
|
String.format("0x%08X", expectedVersion));
|
|
JniTest.Test(
|
"Read Native String Constant",
|
JniWrapper.read_constant_string(),
|
"Hello from C");
|
|
JniTest.Test(
|
"Write Java String to Native Library",
|
JniWrapper.write_string("Hello from Java"),
|
"Hello from Java");
|
|
JniTest.Test(
|
"Write Java Char Array to Native Library",
|
JniWrapper.write_char_array("Hello from Java".toCharArray()),
|
"Hello from Java");
|
|
var helper = new JniHelper();
|
JniTest.Test(
|
"Write String Member to Native Library",
|
JniWrapper.write_string_member(helper),
|
"Set from Java");
|
|
JniWrapper.set_string_member(helper);
|
JniTest.Test(
|
"Set String Member from Native Library",
|
helper.stringMember,
|
"Set from C");
|
|
JniWrapper.execute_java_function(helper);
|
JniTest.Test(
|
"Execeute Java Function from Native Library",
|
helper.stringMember,
|
"Hello, Managed World");
|
|
helper = JniWrapper.instantiate_java_class();
|
JniTest.Test(
|
"Instantiate Java Class",
|
helper.stringMember,
|
"Instantiated from C");
|
|
JniTest.Test(
|
"Call Native Library to Set System Time",
|
JniWrapper.set_and_write_time_in_seconds(1000),
|
"1000");
|
|
System.exit(exitCode);
|
}
|
|
public static int exitCode = 0;
|
}
|