swig/Examples/test-suite/java/cpp11_std_function_runme.java

46 lines
1.3 KiB
Java

import cpp11_std_function.*;
public class cpp11_std_function_runme {
static {
try {
System.loadLibrary("cpp11_std_function");
} catch (UnsatisfiedLinkError e) {
System.err.println("Native code library failed to load. See the chapter on Dynamic Linking Problems in the SWIG Java documentation for help.\n" + e);
System.exit(1);
}
}
public static void main(String argv[]) {
cpp_lambda fn = cpp11_std_function.pass_checker(420);
// invoke functor via call method
boolean result = fn.call(420, "Petka");
if (!result)
throw new RuntimeException("Petka 420 should be true");
result = fn.call(419, "Chapai");
if (result)
throw new RuntimeException("Chapai 419 should be false");
// call wrapper
result = cpp11_std_function.call_function(fn, 420, "Petka");
if (!result)
throw new RuntimeException("Petka 420 should be true");
result = cpp11_std_function.call_function(fn, 419, "Chapai");
if (result)
throw new RuntimeException("Chapai 419 should be false");
// NULL handling
boolean passed = false;
try {
cpp11_std_function.call_function(null, 420, "Petka");
} catch (RuntimeException e) {
passed = true;
}
if (!passed)
throw new RuntimeException("call_function accepted invalid argument");
}
}