8264403: [macos]: App names containing '.' characters results in an error message when launching
Reviewed-by: asemenyuk
This commit is contained in:
parent
b953386de1
commit
04f24fe9ad
@ -93,9 +93,8 @@ tstring findJvmLib(const CfgFile& cfgFile, const tstring& defaultRuntimePath,
|
||||
|
||||
Jvm* AppLauncher::createJvmLauncher() const {
|
||||
const tstring cfgFilePath = FileUtils::mkpath()
|
||||
<< appDirPath
|
||||
<< FileUtils::basename(FileUtils::replaceSuffix(
|
||||
launcherPath, _T(".cfg")));
|
||||
<< appDirPath << FileUtils::stripExeSuffix(
|
||||
FileUtils::basename(launcherPath)) + _T(".cfg");
|
||||
|
||||
LOG_TRACE(tstrings::any() << "Launcher config file path: \""
|
||||
<< cfgFilePath << "\"");
|
||||
|
@ -72,6 +72,9 @@ namespace FileUtils {
|
||||
*/
|
||||
tstring replaceSuffix(const tstring& path, const tstring& suffix=tstring());
|
||||
|
||||
// remove the executable suffix if there is one
|
||||
tstring stripExeSuffix(const tstring& path);
|
||||
|
||||
/**
|
||||
* Returns absolute path of the given path.
|
||||
* If the given string is empty, returns absolute path to the current
|
||||
|
@ -62,4 +62,9 @@ tstring toAbsolutePath(const tstring& path) {
|
||||
return mkpath() << toAbsolutePath("") << path;
|
||||
}
|
||||
|
||||
tstring stripExeSuffix(const tstring& path) {
|
||||
// for unix - there is no suffix to remove
|
||||
return path;
|
||||
}
|
||||
|
||||
} // namespace FileUtils
|
||||
|
@ -658,4 +658,13 @@ void FileWriter::finalize() {
|
||||
cleaner.cancel();
|
||||
}
|
||||
|
||||
tstring stripExeSuffix(const tstring& path) {
|
||||
// for windows - there is a ".exe" suffix to remove
|
||||
const tstring::size_type pos = path.rfind(_T(".exe"));
|
||||
if (pos == tstring::npos) {
|
||||
return path;
|
||||
}
|
||||
return path.substr(0, pos);
|
||||
}
|
||||
|
||||
} // namespace FileUtils
|
||||
|
@ -0,0 +1,61 @@
|
||||
/*
|
||||
* Copyright (c) 2021, 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 jdk.jpackage.tests;
|
||||
|
||||
import jdk.jpackage.test.JPackageCommand;
|
||||
import jdk.jpackage.test.HelloApp;
|
||||
import jdk.jpackage.test.TKit;
|
||||
import jdk.jpackage.test.Annotations.Parameters;
|
||||
import jdk.jpackage.test.Annotations.Test;
|
||||
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @summary jpackage create image with --java-options test
|
||||
* @library ../../../../helpers
|
||||
* @build jdk.jpackage.test.*
|
||||
* @modules jdk.jpackage/jdk.jpackage.internal
|
||||
* @compile DotInNameTest.java
|
||||
* @run main/othervm/timeout=360 -Xmx512m jdk.jpackage.test.Main
|
||||
* --jpt-run=jdk.jpackage.tests.DotInNameTest
|
||||
* --jpt-before-run=jdk.jpackage.test.JPackageCommand.useToolProviderByDefault
|
||||
*/
|
||||
|
||||
public class DotInNameTest {
|
||||
|
||||
@Test
|
||||
public void test() {
|
||||
JPackageCommand cmd = JPackageCommand.helloAppImage("Hello");
|
||||
|
||||
cmd.setArgumentValue("--name",
|
||||
cmd.getArgumentValue("--name") + ".with.dot");
|
||||
// run the jpackage command
|
||||
cmd.executeAndAssertImageCreated();
|
||||
|
||||
// run the launcher it generated
|
||||
HelloApp.executeLauncherAndVerifyOutput(cmd);
|
||||
|
||||
}
|
||||
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user