Mercurial > octave
changeset 22497:a3f74fed899b
test: Check for JRE at runtime before executing BIST tests which use Java.
* ov-class.cc, ov-java.cc, ov-typeinfo.cc, fieldnames.m, methods.m,
javachk.m, usejava.m:
Add check on `usejava ("jvm")' before executing BIST test which uses
Java features.
author | Rik <rik@octave.org> |
---|---|
date | Thu, 15 Sep 2016 10:24:45 -0700 |
parents | d7931cb69486 |
children | 4d9c371d2cca |
files | libinterp/octave-value/ov-class.cc libinterp/octave-value/ov-java.cc libinterp/octave-value/ov-typeinfo.cc scripts/general/fieldnames.m scripts/general/methods.m scripts/java/javachk.m scripts/java/usejava.m |
diffstat | 7 files changed, 48 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/libinterp/octave-value/ov-class.cc Thu Sep 15 08:56:14 2016 -0700 +++ b/libinterp/octave-value/ov-class.cc Thu Sep 15 10:24:45 2016 -0700 @@ -1779,6 +1779,9 @@ %!assert (class (single (1.1)), "single") %!assert (class (uint8 (1)), "uint8") %!testif HAVE_JAVA +%! if (! usejava ("jvm")) +%! return; +%! endif %! jobj = javaObject ("java.lang.StringBuffer"); %! assert (class (jobj), "java.lang.StringBuffer"); @@ -1882,6 +1885,9 @@ %!assert (isa ({1, 2}, {"numeric", "integer", "cell"}), [false false true]) %!testif HAVE_JAVA +%! if (! usejava ("jvm")) +%! return; +%! endif %! ## 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
--- a/libinterp/octave-value/ov-java.cc Thu Sep 15 08:56:14 2016 -0700 +++ b/libinterp/octave-value/ov-java.cc Thu Sep 15 10:24:45 2016 -0700 @@ -2868,6 +2868,9 @@ ## 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 %! assert (javaObject ("java.lang.Short", 40000).doubleValue < 0); */ @@ -2940,6 +2943,9 @@ /* %!testif HAVE_JAVA +%! if (! usejava ("jvm")) +%! return; +%! endif %! ## 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}))); @@ -3210,12 +3216,18 @@ /* ## Check automatic conversion of java primitive arrays into octave types. %!testif HAVE_JAVA +%! if (! usejava ("jvm")) +%! return; +%! endif %! 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 %! 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); @@ -3224,6 +3236,9 @@ ## Check we can create objects that wrap java literals %!testif HAVE_JAVA <38821> +%! if (! usejava ("jvm")) +%! return; +%! endif %! 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"); @@ -3235,6 +3250,9 @@ ## Test for automatic conversion of specific numeric classes %!testif HAVE_JAVA <48013> +%! if (! usejava ("jvm")) +%! return; +%! endif %! 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) @@ -3246,6 +3264,9 @@ ## Automatic conversion from string cell array into String[] %!testif HAVE_JAVA <45290> +%! if (! usejava ("jvm")) +%! return; +%! endif %! 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);
--- a/libinterp/octave-value/ov-typeinfo.cc Thu Sep 15 08:56:14 2016 -0700 +++ b/libinterp/octave-value/ov-typeinfo.cc Thu Sep 15 10:24:45 2016 -0700 @@ -682,6 +682,9 @@ %! assert (typeinfo (cvar), "onCleanup"); %!testif HAVE_JAVA +%! if (! usejava ("jvm")) +%! return; +%! endif %! x = javaObject ("java.lang.StringBuffer"); %! assert (typeinfo (x), "octave_java");
--- a/scripts/general/fieldnames.m Thu Sep 15 08:56:14 2016 -0700 +++ b/scripts/general/fieldnames.m Thu Sep 15 10:24:45 2016 -0700 @@ -75,11 +75,17 @@ ## test Java classname by passing classname %!testif HAVE_JAVA +%! if (! usejava ("jvm")) +%! return; +%! endif %! 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 %! names = fieldnames (javaObject ("java.lang.Double", 10)); %! assert (any (strcmp (names, "MAX_VALUE"))); %! assert (all (ismember ({"POSITIVE_INFINITY", "NEGATIVE_INFINITY", ... @@ -88,6 +94,9 @@ %! names))); %!testif HAVE_JAVA +%! if (! usejava ("jvm")) +%! return; +%! endif %! names = fieldnames (javaObject ("java.lang.String", "Hello")); %! assert (any (strcmp (names, "CASE_INSENSITIVE_ORDER")));
--- a/scripts/general/methods.m Thu Sep 15 08:56:14 2016 -0700 +++ b/scripts/general/methods.m Thu Sep 15 10:24:45 2016 -0700 @@ -81,6 +81,9 @@ ## test Java classname %!testif HAVE_JAVA +%! if (! usejava ("jvm")) +%! return; +%! endif %! mtds = methods ("java.lang.Double"); %! search = strfind (mtds, "java.lang.Double valueOf"); %! assert (! isempty ([search{:}]));
--- a/scripts/java/javachk.m Thu Sep 15 08:56:14 2016 -0700 +++ b/scripts/java/javachk.m Thu Sep 15 10:24:45 2016 -0700 @@ -142,6 +142,9 @@ %! assert (msg.identifier, "Java DESKTOP"); %!testif HAVE_JAVA +%! if (! usejava ("jvm")) +%! return; +%! endif %! assert (javachk ("jvm"), ""); ## Test input validation
--- a/scripts/java/usejava.m Thu Sep 15 08:56:14 2016 -0700 +++ b/scripts/java/usejava.m Thu Sep 15 10:24:45 2016 -0700 @@ -86,6 +86,9 @@ %!assert (usejava ("desktop"), false) %!testif HAVE_JAVA +%! if (! usejava ("jvm")) +%! return; +%! endif %! assert (usejava ("jvm"), true); ## Test input validation