8167018: Nashorn and jjs should support --module-path and --add-modules options

Reviewed-by: jlaskey, hannesw
This commit is contained in:
Athijegannathan Sundararajan 2016-10-07 21:28:00 +05:30
parent 0d8b76a7d7
commit d47b7ffca5
5 changed files with 162 additions and 0 deletions

View File

@ -0,0 +1,17 @@
/*
* This is the test JavaScript program used in jjs-modulepathTest.sh
*/
print("--module-path passed: " + $OPTIONS._module_path);
print("--add-modules passed: " + $OPTIONS._add_modules);
if ($OPTIONS._add_modules != "java.base,com.greetings") {
throw new Error("--add-modules values are not merged!");
}
var Hello = com.greetings.Hello;
var moduleName = Hello.class.module.name;
if (moduleName != "com.greetings") {
throw new Error("Expected module name to be com.greetings");
}

View File

@ -0,0 +1,30 @@
/*
* 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.
*/
package com.greetings;
public class Hello {
public static String greet() {
return "Hello World!";
}
}

View File

@ -0,0 +1,26 @@
/*
* 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.
*/
module com.greetings {
exports com.greetings;
}

View File

@ -0,0 +1,68 @@
#!/bin/sh
#
# 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
# @bug 8167018
# @summary Nashorn and jjs should support --module-path and --add-modules options
# @run shell jjs-modulepathTest.sh
# Tests --module-path option to set the module path for jjs
. ${TESTSRC-.}/common.sh
setup
mkdir -p ${TESTCLASSES}/com.greetings
rm -rf ${TESTCLASSES}/com.greetings
${JAVAC} ${TESTSRC}/com.greetings/module-info.java \
${TESTSRC}/com.greetings/com/greetings/*.java \
-d ${TESTCLASSES}/com.greetings
# no --add-modules passed. This should result in error.
${JJS} -scripting --module-path ${TESTCLASSES} ${TESTSRC}/modulepath.js
if [ $? -ne 0 ]; then
echo "Error thrown as expected when --add-modules is missing!"
else
echo "Should have thrown error for missing --add-modules!"
exit 1
fi
# proper usage of --module-path with --add-modules
${JJS} -scripting --module-path ${TESTCLASSES} --add-modules com.greetings ${TESTSRC}/modulepath.js
if [ $? -ne 0 ]; then
exit 1
fi
# check that repeated --add-modules values are combined
${JJS} -scripting --module-path ${TESTCLASSES} --add-modules java.base --add-modules com.greetings ${TESTSRC}/addmodulesrepeat.js
if [ $? -ne 0 ]; then
exit 1
fi
rm -rf ${TESTCLASSES}/com.greetings
echo "Passed"
exit 0

View File

@ -0,0 +1,21 @@
/*
* This is the test JavaScript program used in jjs-modulepathTest.sh
*/
print("--module-path passed: " + $OPTIONS._module_path);
print("--add-modules passed: " + $OPTIONS._add_modules);
var Hello = com.greetings.Hello;
var moduleName = Hello.class.module.name;
if (moduleName != "com.greetings") {
throw new Error("Expected module name to be com.greetings");
} else {
print("Module name is " + moduleName);
}
var msg = Hello.greet();
if (msg != "Hello World!") {
throw new Error("Expected 'Hello World!'");
} else {
print(msg);
}