Skip to content

Commit

Permalink
8292206: TestCgroupMetrics.java fails as getMemoryUsage() is lower th…
Browse files Browse the repository at this point in the history
…an expected

Backport-of: 6ccee839580fd9dc4cd4941b44dbbe3105202561
  • Loading branch information
GoeLin committed May 10, 2023
1 parent d4467a7 commit efa1786
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 17 deletions.
13 changes: 2 additions & 11 deletions test/jdk/jdk/internal/platform/cgroup/TestCgroupMetrics.java
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2018, 2022, 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 @@ -36,16 +36,7 @@
public class TestCgroupMetrics {

public static void main(String[] args) throws Exception {
// If cgroups is not configured, report success.
Metrics metrics = Metrics.systemMetrics();
if (metrics == null) {
System.out.println("TEST PASSED!!!");
return;
}

MetricsTester metricsTester = new MetricsTester();
metricsTester.testAll(metrics);
System.out.println("TEST PASSED!!!");
MetricsTester.main(args);
}

}
3 changes: 2 additions & 1 deletion test/jdk/jdk/internal/platform/docker/TestSystemMetrics.java
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2018, 2020, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2018, 2022, 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 @@ -55,6 +55,7 @@ public static void main(String[] args) throws Exception {
opts.addDockerOpts("--memory=256m");
opts.addJavaOpts("-cp", "/test-classes/");
opts.addJavaOpts("--add-exports", "java.base/jdk.internal.platform=ALL-UNNAMED");
opts.addClassOptions("-incontainer");
DockerTestUtils.dockerRunJava(opts).shouldHaveExitValue(0).shouldContain("TEST PASSED!!!");
} finally {
DockerTestUtils.removeDockerImage(imageName);
Expand Down
24 changes: 19 additions & 5 deletions test/lib/jdk/test/lib/containers/cgroup/MetricsTester.java
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2020, Red Hat Inc.
* Copyright (c) 2020, 2022, Red Hat Inc.
* 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 @@ -52,14 +52,22 @@ private static CgroupMetricsTester createInstance(Metrics m) {
}
}

public void testAll(Metrics m) throws Exception {
private void testAll(Metrics m, boolean inContainer) throws Exception {
CgroupMetricsTester tester = createInstance(m);
tester.testCpuAccounting();
tester.testCpuConsumption();
tester.testCpuSchedulingMetrics();
tester.testCpuSets();
tester.testMemorySubsystem();
tester.testMemoryUsage();
if (!inContainer) {
// If not running in a container, these test cases query the memory usage.
// of all processes in the entire system (or those belonging to the current
// Linux user). They cannot produce predictable results due to interference
// from unrelated processes.
System.out.println("testMemorySubsystem and testMemoryUsage skipped");
} else {
tester.testMemorySubsystem();
tester.testMemoryUsage();
}
tester.testMisc();
}

Expand All @@ -71,8 +79,14 @@ public static void main(String[] args) throws Exception {
return;
}

boolean inContainer = false;
if (args.length > 0 && "-incontainer".equals(args[0])) {
inContainer = true;
}
System.out.println("inContainer = " + inContainer);

MetricsTester metricsTester = new MetricsTester();
metricsTester.testAll(m);
metricsTester.testAll(m, inContainer);
System.out.println("TEST PASSED!!!");
}
}

1 comment on commit efa1786

@openjdk-notifier
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please sign in to comment.