You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ti...@apache.org on 2019/10/28 01:03:40 UTC
[maven-surefire] branch master updated: [SUREFIRE-1704] [JDK 11
Alpine Linux] long etime within hours has format 2h01 on busybox
This is an automated email from the ASF dual-hosted git repository.
tibordigana pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-surefire.git
The following commit(s) were added to refs/heads/master by this push:
new 0595e4e [SUREFIRE-1704] [JDK 11 Alpine Linux] long etime within hours has format 2h01 on busybox
0595e4e is described below
commit 0595e4eeddf900ba2918c8761942fe699327b651
Author: tibordigana <ti...@apache.org>
AuthorDate: Fri Oct 25 01:05:16 2019 +0200
[SUREFIRE-1704] [JDK 11 Alpine Linux] long etime within hours has format 2h01 on busybox
---
.../apache/maven/surefire/booter/PpidChecker.java | 25 ++++++++++++++++++++++
.../maven/surefire/booter/PpidCheckerTest.java | 15 +++++++++++++
2 files changed, 40 insertions(+)
diff --git a/surefire-booter/src/main/java/org/apache/maven/surefire/booter/PpidChecker.java b/surefire-booter/src/main/java/org/apache/maven/surefire/booter/PpidChecker.java
index e523bea..4a89b59 100644
--- a/surefire-booter/src/main/java/org/apache/maven/surefire/booter/PpidChecker.java
+++ b/surefire-booter/src/main/java/org/apache/maven/surefire/booter/PpidChecker.java
@@ -76,6 +76,8 @@ final class PpidChecker
*/
static final Pattern UNIX_CMD_OUT_PATTERN = compile( "^(((\\d+)-)?(\\d{1,2}):)?(\\d{1,2}):(\\d{1,2})\\s+(\\d+)$" );
+ static final Pattern BUSYBOX_CMD_OUT_PATTERN = compile( "^(\\d+)[hH](\\d{1,2})\\s+(\\d+)$" );
+
private final String ppid;
private volatile ProcessInfo parentProcessInfo;
@@ -174,6 +176,12 @@ final class PpidChecker
+ fromSeconds( matcher );
return unixProcessInfo( ppid, pidUptime );
}
+ matcher = BUSYBOX_CMD_OUT_PATTERN.matcher( line );
+ if ( matcher.matches() && ppid.equals( fromBusyboxPID( matcher ) ) )
+ {
+ long pidUptime = fromBusyboxHours( matcher ) + fromBusyboxMinutes( matcher );
+ return unixProcessInfo( ppid, pidUptime );
+ }
}
return previousOutputLine;
}
@@ -306,6 +314,23 @@ final class PpidChecker
return matcher.group( 7 );
}
+ static long fromBusyboxHours( Matcher matcher )
+ {
+ String s = matcher.group( 1 );
+ return s == null ? 0L : HOURS.toSeconds( parseLong( s ) );
+ }
+
+ static long fromBusyboxMinutes( Matcher matcher )
+ {
+ String s = matcher.group( 2 );
+ return s == null ? 0L : MINUTES.toSeconds( parseLong( s ) );
+ }
+
+ static String fromBusyboxPID( Matcher matcher )
+ {
+ return matcher.group( 3 );
+ }
+
private static void checkValid( Scanner scanner )
throws IOException
{
diff --git a/surefire-booter/src/test/java/org/apache/maven/surefire/booter/PpidCheckerTest.java b/surefire-booter/src/test/java/org/apache/maven/surefire/booter/PpidCheckerTest.java
index 2801ffd..cbe1ce3 100644
--- a/surefire-booter/src/test/java/org/apache/maven/surefire/booter/PpidCheckerTest.java
+++ b/surefire-booter/src/test/java/org/apache/maven/surefire/booter/PpidCheckerTest.java
@@ -231,6 +231,21 @@ public class PpidCheckerTest
}
@Test
+ public void shouldParseBusyboxHoursEtime()
+ {
+ Matcher m = PpidChecker.BUSYBOX_CMD_OUT_PATTERN.matcher( "38 1234567890" );
+ assertThat( m.matches() )
+ .isFalse();
+
+ m = PpidChecker.BUSYBOX_CMD_OUT_PATTERN.matcher( "05h38 1234567890" );
+ assertThat( m.matches() )
+ .isTrue();
+ assertThat( PpidChecker.fromBusyboxHours( m ) ).isEqualTo( 3600 * 5L );
+ assertThat( PpidChecker.fromBusyboxMinutes( m ) ).isEqualTo( 60 * 38L );
+ assertThat( PpidChecker.fromBusyboxPID( m ) ).isEqualTo( "1234567890" );
+ }
+
+ @Test
public void shouldHaveSystemPathToWmicOnWindows() throws Exception
{
assumeTrue( IS_OS_WINDOWS );