< prev index next >

test/jdk/tools/launcher/JliLaunchTest.java

Print this page

        

*** 1,7 **** /* ! * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. --- 1,7 ---- /* ! * Copyright (c) 2016, 2020, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation.
*** 22,32 **** * */ /** * @test ! * @bug 8213362 * @comment Test JLI_Launch for tools distributed outside JDK * @library /test/lib * @run main/native JliLaunchTest */ --- 22,32 ---- * */ /** * @test ! * @bug 8213362 8238225 * @comment Test JLI_Launch for tools distributed outside JDK * @library /test/lib * @run main/native JliLaunchTest */
*** 54,61 **** --- 54,82 ---- String pathEnvVar = Platform.sharedLibraryPathVariableName(); env.compute(pathEnvVar, (k, v) -> (v == null) ? libdir : libdir + File.pathSeparator + v); OutputAnalyzer outputf = new OutputAnalyzer(pb.start()); outputf.shouldHaveExitValue(0); + + if (Platform.isOSX()) { + Path javaHome = Paths.get(Utils.TEST_JDK); + if (javaHome.getFileName().toString().equals("Home")) { + // To exercise this test path you need to make sure the JDK under test is + // the MacOS bundle and not the simple jdk image. This can currently be + // achieved by running something like this (from the build output dir): + // $ make test-only TEST=open/test/jdk/tools/launcher/JliLaunchTest.java \ + // JDK_IMAGE_DIR=$PWD/images/jdk-bundle/jdk-15.jdk/Contents/Home + System.out.println("MacOS bundle distribution detected, also testing Contents/MacOS/libjli.dylib"); + String macosDir = javaHome.getParent().resolve("MacOS").toString(); + ProcessBuilder pb2 = new ProcessBuilder(launcher.toString(), "--version"); + env = pb2.environment(); + env.compute(pathEnvVar, (k, v) -> (v == null) ? macosDir : macosDir + File.pathSeparator + v); + + OutputAnalyzer output2 = new OutputAnalyzer(pb2.start()); + output2.shouldHaveExitValue(0); + } else { + System.out.println("Not a MacOS bundle distribution, not testing Contents/MacOS/libjli.dylib"); + } + } } }
< prev index next >