# HG changeset patch # User John W. Eaton # Date 1492465496 14400 # Node ID 32ec90068be51515400aac13a6ff0019efd78ed4 # Parent 314ac710f2aec6fca635db7c9978b61e1bf8bcde use %!testif runtime tests to properly skip java tests * ov-class.cc, ov-java.cc, ov-typeinfo.cc, fieldnames.m, methods.m, javachk.m, usejava.m: Use runtime test in %!testif line to skip if JVM is not available instead of checking inside the test itself. This way the test will be properly reported as skipped instead of passed. diff -r 314ac710f2ae -r 32ec90068be5 libinterp/octave-value/ov-class.cc --- a/libinterp/octave-value/ov-class.cc Mon Apr 17 21:28:55 2017 +0200 +++ b/libinterp/octave-value/ov-class.cc Mon Apr 17 17:44:56 2017 -0400 @@ -1740,10 +1740,7 @@ %!assert (class (1.1), "double") %!assert (class (single (1.1)), "single") %!assert (class (uint8 (1)), "uint8") -%!testif HAVE_JAVA -%! if (! usejava ("jvm")) -%! return; -%! endif +%!testif HAVE_JAVA; usejava ("jvm") %! jobj = javaObject ("java.lang.StringBuffer"); %! assert (class (jobj), "java.lang.StringBuffer"); @@ -1846,10 +1843,7 @@ %!assert (isa ({1, 2}, "cell")) %!assert (isa ({1, 2}, {"numeric", "integer", "cell"}), [false false true]) -%!testif HAVE_JAVA -%! if (! usejava ("jvm")) -%! return; -%! endif +%!testif HAVE_JAVA; usejava ("jvm") %! ## The first and last assert() are equal on purpose. The assert() in %! ## the middle with an invalid class name will cause the java code to %! ## throw exceptions which we then must clear properly (or all other calls diff -r 314ac710f2ae -r 32ec90068be5 libinterp/octave-value/ov-java.cc --- a/libinterp/octave-value/ov-java.cc Mon Apr 17 21:28:55 2017 +0200 +++ b/libinterp/octave-value/ov-java.cc Mon Apr 17 17:44:56 2017 -0400 @@ -2867,10 +2867,7 @@ ## it works properly, i.e., creates the right values, is a matter of ## Java itself. Create a Short and check if it really is a short, i.e., ## whether it overflows. -%!testif HAVE_JAVA -%! if (! usejava ("jvm")) -%! return; -%! endif +%!testif HAVE_JAVA; usejava ("jvm") %! assert (javaObject ("java.lang.Short", 40000).doubleValue < 0); */ @@ -2942,10 +2939,7 @@ } /* -%!testif HAVE_JAVA -%! if (! usejava ("jvm")) -%! return; -%! endif +%!testif HAVE_JAVA; usejava ("jvm") %! ## Check for valid first two Java version numbers %! jver = strsplit (javaMethod ("getProperty", "java.lang.System", "java.version"), "."); %! assert (isfinite (str2double (jver{1})) && isfinite (str2double (jver{2}))); @@ -3215,19 +3209,13 @@ /* ## Check automatic conversion of java primitive arrays into octave types. -%!testif HAVE_JAVA -%! if (! usejava ("jvm")) -%! return; -%! endif +%!testif HAVE_JAVA; usejava ("jvm") %! assert (javaObject ("java.lang.String", "hello").getBytes (), %! int8 ([104 101 108 108 111]')); ## Check automatic conversion of octave types into java primitive arrays. ## Note that uint8 is casted to int8. -%!testif HAVE_JAVA -%! if (! usejava ("jvm")) -%! return; -%! endif +%!testif HAVE_JAVA; usejava ("jvm") %! assert (javaMethod ("binarySearch", "java.util.Arrays", [90 100 255], 255), 2); %! assert (javaMethod ("binarySearch", "java.util.Arrays", uint8 ([90 100 255]), uint8 (255)) < 0); %! assert (javaMethod ("binarySearch", "java.util.Arrays", uint8 ([90 100 128]), uint8 (128)) < 0); @@ -3235,10 +3223,7 @@ %! assert (javaMethod ("binarySearch", "java.util.Arrays", uint16 ([90 100 128]), uint16 (128)), 2); ## Check we can create objects that wrap java literals -%!testif HAVE_JAVA <38821> -%! if (! usejava ("jvm")) -%! return; -%! endif +%!testif HAVE_JAVA; usejava ("jvm") <38821> %! assert (class (javaObject ("java.lang.Byte", uint8 (1))), "java.lang.Byte"); %! assert (class (javaObject ("java.lang.Byte", int8 (1))), "java.lang.Byte"); %! assert (class (javaObject ("java.lang.Short", uint16 (1))), "java.lang.Short"); @@ -3249,10 +3234,7 @@ %! assert (class (javaObject ("java.lang.Long", int64 (1))), "java.lang.Long"); ## Test for automatic conversion of specific numeric classes -%!testif HAVE_JAVA <48013> -%! if (! usejava ("jvm")) -%! return; -%! endif +%!testif HAVE_JAVA; usejava ("jvm") <48013> %! assert (javaMethod ("valueOf", "java.lang.Byte", int8 (1)), 1) %! assert (javaMethod ("valueOf", "java.lang.Short", int16 (1)), 1) %! assert (javaMethod ("valueOf", "java.lang.Integer", int32 (1)), 1) @@ -3263,10 +3245,7 @@ %! assert (class (javaMethod ("valueOf", "java.math.BigInteger", int64 (1))), "java.math.BigInteger") ## Automatic conversion from string cell array into String[] -%!testif HAVE_JAVA <45290> -%! if (! usejava ("jvm")) -%! return; -%! endif +%!testif HAVE_JAVA; usejava ("jvm") <45290> %! assert (javaMethod ("binarySearch", "java.util.Arrays", {"aaa", "bbb", "ccc", "zzz"}, "aaa"), 0); %! assert (javaMethod ("binarySearch", "java.util.Arrays", {"aaa", "bbb", "ccc", "zzz"}, "zzz"), 3); %! assert (javaMethod ("binarySearch", "java.util.Arrays", {"aaa", "bbb", "ccc", "zzz"}, "hhh") < 0); diff -r 314ac710f2ae -r 32ec90068be5 libinterp/octave-value/ov-typeinfo.cc --- a/libinterp/octave-value/ov-typeinfo.cc Mon Apr 17 21:28:55 2017 +0200 +++ b/libinterp/octave-value/ov-typeinfo.cc Mon Apr 17 17:44:56 2017 -0400 @@ -681,10 +681,7 @@ %! cvar = onCleanup (@() ""); %! assert (typeinfo (cvar), "onCleanup"); -%!testif HAVE_JAVA -%! if (! usejava ("jvm")) -%! return; -%! endif +%!testif HAVE_JAVA; usejava ("jvm") %! x = javaObject ("java.lang.StringBuffer"); %! assert (typeinfo (x), "octave_java"); diff -r 314ac710f2ae -r 32ec90068be5 scripts/general/fieldnames.m --- a/scripts/general/fieldnames.m Mon Apr 17 21:28:55 2017 +0200 +++ b/scripts/general/fieldnames.m Mon Apr 17 17:44:56 2017 -0400 @@ -74,18 +74,12 @@ %! assert (fieldnames (s), cell (0, 1)); ## test Java classname by passing classname -%!testif HAVE_JAVA -%! if (! usejava ("jvm")) -%! return; -%! endif +%!testif HAVE_JAVA; usejava ("jvm") %! names = fieldnames ("java.lang.Double"); %! assert (any (strcmp (names, "MAX_VALUE"))); ## test Java classname by passing java object -%!testif HAVE_JAVA -%! if (! usejava ("jvm")) -%! return; -%! endif +%!testif HAVE_JAVA; usejava ("jvm") %! names = fieldnames (javaObject ("java.lang.Double", 10)); %! assert (any (strcmp (names, "MAX_VALUE"))); %! assert (all (ismember ({"POSITIVE_INFINITY", "NEGATIVE_INFINITY", ... @@ -93,9 +87,6 @@ %! "MAX_EXPONENT", "MIN_EXPONENT", "SIZE", "TYPE"}, %! names))); -%!testif HAVE_JAVA -%! if (! usejava ("jvm")) -%! return; -%! endif +%!testif HAVE_JAVA; usejava ("jvm") %! names = fieldnames (javaObject ("java.lang.String", "Hello")); %! assert (any (strcmp (names, "CASE_INSENSITIVE_ORDER"))); diff -r 314ac710f2ae -r 32ec90068be5 scripts/general/methods.m --- a/scripts/general/methods.m Mon Apr 17 21:28:55 2017 +0200 +++ b/scripts/general/methods.m Mon Apr 17 17:44:56 2017 -0400 @@ -80,10 +80,7 @@ %! assert (mtds{1}, "ascii"); ## test Java classname -%!testif HAVE_JAVA -%! if (! usejava ("jvm")) -%! return; -%! endif +%!testif HAVE_JAVA; usejava ("jvm") %! mtds = methods ("java.lang.Double"); %! search = strfind (mtds, "java.lang.Double valueOf"); %! assert (! isempty ([search{:}])); diff -r 314ac710f2ae -r 32ec90068be5 scripts/java/javachk.m --- a/scripts/java/javachk.m Mon Apr 17 21:28:55 2017 +0200 +++ b/scripts/java/javachk.m Mon Apr 17 17:44:56 2017 -0400 @@ -141,10 +141,7 @@ %! assert (msg.message, "javachk: desktop is not supported"); %! assert (msg.identifier, "Java DESKTOP"); -%!testif HAVE_JAVA -%! if (! usejava ("jvm")) -%! return; -%! endif +%!testif HAVE_JAVA; usejava ("jvm") %! assert (javachk ("jvm"), ""); ## Test input validation diff -r 314ac710f2ae -r 32ec90068be5 scripts/java/usejava.m --- a/scripts/java/usejava.m Mon Apr 17 21:28:55 2017 +0200 +++ b/scripts/java/usejava.m Mon Apr 17 17:44:56 2017 -0400 @@ -85,10 +85,7 @@ %!assert (usejava ("desktop"), false) -%!testif HAVE_JAVA -%! if (! usejava ("jvm")) -%! return; -%! endif +%!testif HAVE_JAVA; usejava ("jvm") %! assert (usejava ("jvm"), true); ## Test input validation