hc
2024-03-25 edb30157bad0c0001c32b854271ace01d3b9a16a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
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;
}