Skip to content
Closed
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions make/RunTestsPrebuilt.gmk
Original file line number Diff line number Diff line change
Expand Up @@ -216,9 +216,9 @@ else ifeq ($(OPENJDK_TARGET_OS), macosx)
else ifeq ($(OPENJDK_TARGET_OS), windows)
NUM_CORES := $(NUMBER_OF_PROCESSORS)
MEMORY_SIZE := $(shell \
$(EXPR) `wmic computersystem get totalphysicalmemory -value \
| $(GREP) = | $(SED) 's/\\r//g' \
| $(CUT) -d "=" -f 2-` / 1024 / 1024 \
$(EXPR) `powershell -Command \
"(Get-CimInstance Win32_ComputerSystem).TotalPhysicalMemory" \
| $(SED) 's/\\r//g' ` / 1024 / 1024 \
)
endif
ifeq ($(NUM_CORES), )
Expand Down
5 changes: 3 additions & 2 deletions make/autoconf/build-performance.m4
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#
# Copyright (c) 2011, 2020, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2011, 2025, 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
Expand Down Expand Up @@ -85,7 +85,8 @@ AC_DEFUN([BPERF_CHECK_MEMORY_SIZE],
FOUND_MEM=yes
elif test "x$OPENJDK_BUILD_OS" = xwindows; then
# Windows, but without cygwin
MEMORY_SIZE=`wmic computersystem get totalphysicalmemory -value | grep = | cut -d "=" -f 2-`
MEMORY_SIZE=`powershell -Command \
"(Get-CimInstance Win32_ComputerSystem).TotalPhysicalMemory" | $SED 's/\\r//g' `
MEMORY_SIZE=`expr $MEMORY_SIZE / 1024 / 1024`
FOUND_MEM=yes
fi
Expand Down
16 changes: 9 additions & 7 deletions test/failure_handler/src/share/conf/windows.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#
# Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2015, 2025, 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
Expand All @@ -22,10 +22,10 @@
#

config.execSuffix=.exe
config.getChildren.app=bash
config.getChildren.app=powershell
config.getChildren.pattern=%p
config.getChildren.args=-c\0wmic process where ParentProcessId=%p get ProcessId | tail -n+2
config.getChildren.args.delimiter=\0
config.getChildren.args=-NoLogo\0-Command\0"Get-CimInstance Win32_Process -Filter \\\"ParentProcessId = %p\\\" | Select-Object ProcessId" | tail -n+4
################################################################################
# process info to gather
################################################################################
Expand All @@ -39,8 +39,9 @@ native.pattern=%p
native.javaOnly=false
native.args=%p

native.info.app=wmic
native.info.args=process where processId=%p list full
native.info.app=powershell
native.info.delimiter=\0
native.info.args=-NoLogo\0-Command\0"Get-WmiObject Win32_Process -Filter \\\"ProcessId = %p\\\" | Format-List -Property *"

native.pmap.app=pmap
native.pmap.normal.args=%p
Expand Down Expand Up @@ -96,8 +97,9 @@ system.events.delimiter=\0
system.events.system.args=-NoLogo\0-Command\0Get-EventLog System -After (Get-Date).AddDays(-1) | Format-List
system.events.application.args=-NoLogo\0-Command\0Get-EventLog Application -After (Get-Date).AddDays(-1) | Format-List

system.os.app=wmic
system.os.args=os get /format:list
system.os.app=powershell
system.os.delimiter=\0
system.os.args=-NoLogo\0-Command\0Get-WmiObject Win32_OperatingSystem | Format-List -Property *

process.top.app=top
process.top.args=-b -n 1
Expand Down
37 changes: 16 additions & 21 deletions test/jdk/tools/jpackage/windows/Win8301247Test.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@
import java.io.IOException;
import java.time.Duration;
import java.util.List;
import java.util.NoSuchElementException;
import java.util.Objects;
import java.util.Optional;
import java.util.concurrent.ExecutorService;
Expand Down Expand Up @@ -100,40 +99,36 @@ public void test() throws IOException, InterruptedException {

private static Optional<Long> findMainAppLauncherPID(JPackageCommand cmd,
int expectedCount) {
// Get the list of PIDs and PPIDs of app launcher processes.
// wmic process where (name = "foo.exe") get ProcessID,ParentProcessID
List<String> output = Executor.of("wmic", "process", "where", "(name",
"=",
"\"" + cmd.appLauncherPath().getFileName().toString() + "\"",
")", "get", "ProcessID,ParentProcessID").dumpOutput(true).
saveOutput().executeAndGetOutput();

if (output.isEmpty()) {
throw new NoSuchElementException();
}
String first = output.get(0);
// Get the list of PIDs and PPIDs of app launcher processes. Run setWinRunWithEnglishOutput(true) for JDK-8344275.
// powershell -NoLogo -NoProfile -NonInteractive -Command
// "Get-CimInstance Win32_Process -Filter \"Name = 'foo.exe'\" | select ProcessID,ParentProcessID"
String command = "Get-CimInstance Win32_Process -Filter \\\"Name = '"
+ cmd.appLauncherPath().getFileName().toString()
+ "'\\\" | select ProcessID,ParentProcessID";
List<String> output = Executor.of("powershell", "-NoLogo", "-NoProfile", "-NonInteractive", "-Command", command)
.dumpOutput(true).saveOutput().executeAndGetOutput();

if (expectedCount == 0) {
TKit.assertEquals("No Instance(s) Available.", first.
trim(), "Check no app launcher processes found running");
return Optional.empty();
if (output.size() < 1) {
return Optional.empty();
}
}

String[] headers = Stream.of(first.split("\\s+", 2)).map(
String[] headers = Stream.of(output.get(1).split("\\s+", 2)).map(
String::trim).map(String::toLowerCase).toArray(String[]::new);
Pattern pattern;
if (headers[0].equals("parentprocessid") && headers[1].equals(
"processid")) {
pattern = Pattern.compile("^(?<ppid>\\d+)\\s+(?<pid>\\d+)\\s+$");
pattern = Pattern.compile("^\\s+(?<ppid>\\d+)\\s+(?<pid>\\d+)$");
} else if (headers[1].equals("parentprocessid") && headers[0].equals(
"processid")) {
pattern = Pattern.compile("^(?<pid>\\d+)\\s+(?<ppid>\\d+)\\s+$");
pattern = Pattern.compile("^\\s+(?<pid>\\d+)\\s+(?<ppid>\\d+)$");
} else {
throw new RuntimeException(
"Unrecognizable output of \'wmic process\' command");
"Unrecognizable output of \'Get-CimInstance Win32_Process\' command");
}

List<long[]> processes = output.stream().skip(1).map(line -> {
List<long[]> processes = output.stream().skip(3).map(line -> {
Matcher m = pattern.matcher(line);
long[] pids = null;
if (m.matches()) {
Expand Down