/* * Copyright (c) 2016, 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. * * This code is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA * or visit www.oracle.com if you need additional information or have any * questions. */ /** * Test $EXEC and $ENV.PWD handling across platforms. * There must be a java executable in the PATH. * * @test * @option -scripting * @runif os.not.windows.cmd */ $EXEC(["java", "-version"]) if ($EXIT != 0) { throw 'java executable problem: ' + $ERR } function eq(p, q, e) { if (p != q) { throw e } } function neq(p, q, e) { if (p == q) { throw e } } var File = Java.type("java.io.File"), System = Java.type("java.lang.System"), win = System.getProperty("os.name").startsWith("Windows"), sep = File.separator, startwd = $ENV.PWD, upwd = startwd.substring(0, startwd.lastIndexOf(sep)) $EXEC("ls") var ls_startwd = $OUT $EXEC("cd ..; ls") var ls_cdupwd = $OUT eq($ENV.PWD, startwd, 'PWD changed during $EXEC cd') neq(ls_startwd, ls_cdupwd, 'same ls result for startwd and upwd with $EXEC cd') $ENV.PWD = upwd eq($ENV.PWD, upwd, '$ENV.PWD change had no effect') $EXEC("ls") var ls_epupwd = $OUT neq(ls_startwd, ls_epupwd, 'same ls result for startwd and upwd with $ENV.PWD cd')