import argcargvtest.*; public class argcargvtest_runme { static { try { System.loadLibrary("argcargvtest"); } 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[]) { argcargvtest test = new argcargvtest(); String[] largs = {"hi", "hola", "hello"}; if (test.mainc(largs) != 3) throw new RuntimeException("bad main typemap"); String[] targs = {"hi", "hola"}; if (!test.mainv(targs, 0).equals("hi")) throw new RuntimeException("bad main typemap"); if (!test.mainv(targs, 1).equals("hola")) throw new RuntimeException("bad main typemap"); if (!test.mainv(targs, 2).equals("<>")) throw new RuntimeException("bad main typemap"); // For dynamically typed languages we test this throws an exception or similar // at runtime, but for Java this doesn't even compile (but we can't easily // test for that here). // test.mainv("hello", 1); test.initializeApp(largs); // Check that an empty array works. String[] empty_args = {}; if (test.mainc(empty_args) != 0) throw new RuntimeException("bad main typemap"); if (!test.mainv(empty_args, 0).equals("<>")) throw new RuntimeException("bad main typemap"); // Check that empty strings are handled. String[] empty_string = {"hello", "", "world"}; if (test.mainc(empty_string) != 3) throw new RuntimeException("bad main typemap"); if (!test.mainv(empty_string, 0).equals("hello")) throw new RuntimeException("bad main typemap"); if (!test.mainv(empty_string, 1).equals("")) throw new RuntimeException("bad main typemap"); if (!test.mainv(empty_string, 2).equals("world")) throw new RuntimeException("bad main typemap"); if (!test.mainv(empty_string, 3).equals("<>")) throw new RuntimeException("bad main typemap"); } }