swig/Examples/test-suite/java/preproc_line_file_runme.java
Vadim Zeitlin ad02cb98e6 Relax Java preproc_line_file unit test to pass in a separate build directory.
Exact paths comparison doesn't work when SWIG is built in a directory
different from the source one, so check whether the path just ends with the
expected path components instead.

This allows all Java tests to pass in this build configuration.

closes #115
2013-12-23 20:42:48 +00:00

70 lines
2.5 KiB
Java

import preproc_line_file.*;
public class preproc_line_file_runme {
static {
try {
System.loadLibrary("preproc_line_file");
} 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);
}
}
private static void test_file(String file, String suffix) throws Throwable
{
String FILENAME_WINDOWS = "Examples\\test-suite\\preproc_line_file.i";
String FILENAME_UNIX = "Examples/test-suite/preproc_line_file.i";
// We don't test for exact equality here because the file names are relative to the build directory, which can be different from the source directory,
// under Unix. But they do need to end with the same path components.
if (!file.endsWith(FILENAME_UNIX + suffix) && !file.endsWith(FILENAME_WINDOWS + suffix))
throw new RuntimeException("file \"" + file + "\" doesn't end with " + FILENAME_UNIX + suffix);
}
public static void main(String argv[]) throws Throwable
{
int myline = preproc_line_file.MYLINE;
int myline_adjusted = preproc_line_file.MYLINE_ADJUSTED;
if (myline != 4)
throw new RuntimeException("preproc failure");
if (myline + 100 + 1 != myline_adjusted)
throw new RuntimeException("preproc failure");
test_file(preproc_line_file.MYFILE, "");
test_file(preproc_line_file.MYFILE_ADJUSTED, ".bak");
if (!preproc_line_file.MY_STRINGNUM_A.equals("my15"))
throw new RuntimeException("preproc failed MY_STRINGNUM_A");
if (!preproc_line_file.MY_STRINGNUM_B.equals("my16"))
throw new RuntimeException("preproc failed MY_STRINGNUM_B");
if (preproc_line_file.getThing27() != -1)
throw new RuntimeException("preproc failure");
if (preproc_line_file.getThing28() != -2)
throw new RuntimeException("preproc failure");
if (preproc_line_file.MYLINE2 != 30)
throw new RuntimeException("preproc failure");
if (SillyStruct.LINE_NUMBER != 52)
throw new RuntimeException("preproc failure");
if (SillyMacroClass.LINE_NUM != 56)
throw new RuntimeException("preproc failure");
if (SillyMultipleMacroStruct.LINE_NUM != 81)
throw new RuntimeException("preproc failure");
if (preproc_line_file.INLINE_LINE != 87)
throw new RuntimeException("preproc failure");
test_file(preproc_line_file.INLINE_FILE, "");
if (Slash.LINE_NUM != 93)
throw new RuntimeException("preproc failure");
}
}