mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-18 10:04:42 +02:00
8213058: remove ExecuteInternalVMTests and VerboseInternalVMTests flags
Reviewed-by: erikj, dholmes, ihse
This commit is contained in:
parent
de6f5b33ed
commit
35871a8ca1
15 changed files with 7 additions and 218 deletions
|
@ -62,9 +62,8 @@ $ make exploded-test TEST=tier2</code></pre>
|
||||||
<p>If you want, you can single out an individual test or a group of tests, for instance <code>gtest:LogDecorations</code> or <code>gtest:LogDecorations.level_test_vm</code>. This can be particularly useful if you want to run a shaky test repeatedly.</p>
|
<p>If you want, you can single out an individual test or a group of tests, for instance <code>gtest:LogDecorations</code> or <code>gtest:LogDecorations.level_test_vm</code>. This can be particularly useful if you want to run a shaky test repeatedly.</p>
|
||||||
<p>For Gtest, there is a separate test suite for each JVM variant. The JVM variant is defined by adding <code>/<variant></code> to the test descriptor, e.g. <code>gtest:Log/client</code>. If you specify no variant, gtest will run once for each JVM variant present (e.g. server, client). So if you only have the server JVM present, then <code>gtest:all</code> will be equivalent to <code>gtest:all/server</code>.</p>
|
<p>For Gtest, there is a separate test suite for each JVM variant. The JVM variant is defined by adding <code>/<variant></code> to the test descriptor, e.g. <code>gtest:Log/client</code>. If you specify no variant, gtest will run once for each JVM variant present (e.g. server, client). So if you only have the server JVM present, then <code>gtest:all</code> will be equivalent to <code>gtest:all/server</code>.</p>
|
||||||
<h3 id="special-tests">Special tests</h3>
|
<h3 id="special-tests">Special tests</h3>
|
||||||
<p>A handful of odd tests that are not covered by any other testing framework are accessible using the <code>special:</code> test descriptor. Currently, this includes <code>hotspot-internal</code>, <code>failure-handler</code> and <code>make</code>.</p>
|
<p>A handful of odd tests that are not covered by any other testing framework are accessible using the <code>special:</code> test descriptor. Currently, this includes <code>failure-handler</code> and <code>make</code>.</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li><p>Hotspot legacy internal testing (run using <code>-XX:+ExecuteInternalVMTests</code>) is run using <code>special:hotspot-internal</code> or just <code>hotspot-internal</code> as test descriptor, and will only work on a debug JVM.</p></li>
|
|
||||||
<li><p>Failure handler testing is run using <code>special:failure-handler</code> or just <code>failure-handler</code> as test descriptor.</p></li>
|
<li><p>Failure handler testing is run using <code>special:failure-handler</code> or just <code>failure-handler</code> as test descriptor.</p></li>
|
||||||
<li><p>Tests for the build system, including both makefiles and related functionality, is run using <code>special:make</code> or just <code>make</code> as test descriptor. This is equivalent to <code>special:make:all</code>.</p>
|
<li><p>Tests for the build system, including both makefiles and related functionality, is run using <code>special:make</code> or just <code>make</code> as test descriptor. This is equivalent to <code>special:make:all</code>.</p>
|
||||||
<p>A specific make test can be run by supplying it as argument, e.g. <code>special:make:idea</code>. As a special syntax, this can also be expressed as <code>make-idea</code>, which allows for command lines as <code>make test-make-idea</code>.</p></li>
|
<p>A specific make test can be run by supplying it as argument, e.g. <code>special:make:idea</code>. As a special syntax, this can also be expressed as <code>make-idea</code>, which allows for command lines as <code>make test-make-idea</code>.</p></li>
|
||||||
|
|
|
@ -108,11 +108,7 @@ present, then `gtest:all` will be equivalent to `gtest:all/server`.
|
||||||
|
|
||||||
A handful of odd tests that are not covered by any other testing framework are
|
A handful of odd tests that are not covered by any other testing framework are
|
||||||
accessible using the `special:` test descriptor. Currently, this includes
|
accessible using the `special:` test descriptor. Currently, this includes
|
||||||
`hotspot-internal`, `failure-handler` and `make`.
|
`failure-handler` and `make`.
|
||||||
|
|
||||||
* Hotspot legacy internal testing (run using `-XX:+ExecuteInternalVMTests`)
|
|
||||||
is run using `special:hotspot-internal` or just `hotspot-internal` as test
|
|
||||||
descriptor, and will only work on a debug JVM.
|
|
||||||
|
|
||||||
* Failure handler testing is run using `special:failure-handler` or just
|
* Failure handler testing is run using `special:failure-handler` or just
|
||||||
`failure-handler` as test descriptor.
|
`failure-handler` as test descriptor.
|
||||||
|
|
|
@ -405,7 +405,7 @@ define ParseSpecialTestSelection
|
||||||
special:make:all \
|
special:make:all \
|
||||||
)
|
)
|
||||||
) \
|
) \
|
||||||
$(if $(filter hotspot-internal failure-handler, $1), \
|
$(if $(filter failure-handler, $1), \
|
||||||
special:$(strip $1) \
|
special:$(strip $1) \
|
||||||
)
|
)
|
||||||
endef
|
endef
|
||||||
|
@ -779,11 +779,7 @@ define SetupRunSpecialTestBody
|
||||||
$1_TEST_ARGS :=
|
$1_TEST_ARGS :=
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($$($1_TEST_NAME), hotspot-internal)
|
ifeq ($$($1_TEST_NAME), failure-handler)
|
||||||
$1_TEST_COMMAND_LINE := \
|
|
||||||
$$(JDK_IMAGE_DIR)/bin/java -XX:+ExecuteInternalVMTests \
|
|
||||||
-XX:+ShowMessageBoxOnError -version
|
|
||||||
else ifeq ($$($1_TEST_NAME), failure-handler)
|
|
||||||
ifeq ($(BUILD_FAILURE_HANDLER), true)
|
ifeq ($(BUILD_FAILURE_HANDLER), true)
|
||||||
$1_TEST_COMMAND_LINE := \
|
$1_TEST_COMMAND_LINE := \
|
||||||
($(CD) $(TOPDIR)/make/test && $(MAKE) $(MAKE_ARGS) -f \
|
($(CD) $(TOPDIR)/make/test && $(MAKE) $(MAKE_ARGS) -f \
|
||||||
|
|
|
@ -79,7 +79,7 @@ MAKE_TEST_TARGETS := $(shell $(MAKE) -s --no-print-directory $(MAKE_ARGS) \
|
||||||
ALL_NAMED_TESTS += $(addprefix make-, $(MAKE_TEST_TARGETS))
|
ALL_NAMED_TESTS += $(addprefix make-, $(MAKE_TEST_TARGETS))
|
||||||
|
|
||||||
# Add special tests
|
# Add special tests
|
||||||
ALL_NAMED_TESTS += hotspot-internal failure-handler make
|
ALL_NAMED_TESTS += failure-handler make
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
|
|
|
@ -5956,14 +5956,6 @@ int os::compare_file_modified_times(const char* file1, const char* file2) {
|
||||||
|
|
||||||
#ifndef PRODUCT
|
#ifndef PRODUCT
|
||||||
|
|
||||||
#define test_log(...) \
|
|
||||||
do { \
|
|
||||||
if (VerboseInternalVMTests) { \
|
|
||||||
tty->print_cr(__VA_ARGS__); \
|
|
||||||
tty->flush(); \
|
|
||||||
} \
|
|
||||||
} while (false)
|
|
||||||
|
|
||||||
class TestReserveMemorySpecial : AllStatic {
|
class TestReserveMemorySpecial : AllStatic {
|
||||||
public:
|
public:
|
||||||
static void small_page_write(void* addr, size_t size) {
|
static void small_page_write(void* addr, size_t size) {
|
||||||
|
@ -5980,8 +5972,6 @@ class TestReserveMemorySpecial : AllStatic {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
test_log("test_reserve_memory_special_huge_tlbfs_only(" SIZE_FORMAT ")", size);
|
|
||||||
|
|
||||||
char* addr = os::Linux::reserve_memory_special_huge_tlbfs_only(size, NULL, false);
|
char* addr = os::Linux::reserve_memory_special_huge_tlbfs_only(size, NULL, false);
|
||||||
|
|
||||||
if (addr != NULL) {
|
if (addr != NULL) {
|
||||||
|
@ -6040,15 +6030,10 @@ class TestReserveMemorySpecial : AllStatic {
|
||||||
::munmap(mapping1, mapping_size);
|
::munmap(mapping1, mapping_size);
|
||||||
|
|
||||||
// Case 1
|
// Case 1
|
||||||
test_log("%s, req_addr NULL:", __FUNCTION__);
|
|
||||||
test_log("size align result");
|
|
||||||
|
|
||||||
for (int i = 0; i < num_sizes; i++) {
|
for (int i = 0; i < num_sizes; i++) {
|
||||||
const size_t size = sizes[i];
|
const size_t size = sizes[i];
|
||||||
for (size_t alignment = ag; is_aligned(size, alignment); alignment *= 2) {
|
for (size_t alignment = ag; is_aligned(size, alignment); alignment *= 2) {
|
||||||
char* p = os::Linux::reserve_memory_special_huge_tlbfs_mixed(size, alignment, NULL, false);
|
char* p = os::Linux::reserve_memory_special_huge_tlbfs_mixed(size, alignment, NULL, false);
|
||||||
test_log(SIZE_FORMAT_HEX " " SIZE_FORMAT_HEX " -> " PTR_FORMAT " %s",
|
|
||||||
size, alignment, p2i(p), (p != NULL ? "" : "(failed)"));
|
|
||||||
if (p != NULL) {
|
if (p != NULL) {
|
||||||
assert(is_aligned(p, alignment), "must be");
|
assert(is_aligned(p, alignment), "must be");
|
||||||
small_page_write(p, size);
|
small_page_write(p, size);
|
||||||
|
@ -6058,17 +6043,11 @@ class TestReserveMemorySpecial : AllStatic {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Case 2
|
// Case 2
|
||||||
test_log("%s, req_addr non-NULL:", __FUNCTION__);
|
|
||||||
test_log("size align req_addr result");
|
|
||||||
|
|
||||||
for (int i = 0; i < num_sizes; i++) {
|
for (int i = 0; i < num_sizes; i++) {
|
||||||
const size_t size = sizes[i];
|
const size_t size = sizes[i];
|
||||||
for (size_t alignment = ag; is_aligned(size, alignment); alignment *= 2) {
|
for (size_t alignment = ag; is_aligned(size, alignment); alignment *= 2) {
|
||||||
char* const req_addr = align_up(mapping1, alignment);
|
char* const req_addr = align_up(mapping1, alignment);
|
||||||
char* p = os::Linux::reserve_memory_special_huge_tlbfs_mixed(size, alignment, req_addr, false);
|
char* p = os::Linux::reserve_memory_special_huge_tlbfs_mixed(size, alignment, req_addr, false);
|
||||||
test_log(SIZE_FORMAT_HEX " " SIZE_FORMAT_HEX " " PTR_FORMAT " -> " PTR_FORMAT " %s",
|
|
||||||
size, alignment, p2i(req_addr), p2i(p),
|
|
||||||
((p != NULL ? (p == req_addr ? "(exact match)" : "") : "(failed)")));
|
|
||||||
if (p != NULL) {
|
if (p != NULL) {
|
||||||
assert(p == req_addr, "must be");
|
assert(p == req_addr, "must be");
|
||||||
small_page_write(p, size);
|
small_page_write(p, size);
|
||||||
|
@ -6078,16 +6057,11 @@ class TestReserveMemorySpecial : AllStatic {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Case 3
|
// Case 3
|
||||||
test_log("%s, req_addr non-NULL with preexisting mapping:", __FUNCTION__);
|
|
||||||
test_log("size align req_addr result");
|
|
||||||
|
|
||||||
for (int i = 0; i < num_sizes; i++) {
|
for (int i = 0; i < num_sizes; i++) {
|
||||||
const size_t size = sizes[i];
|
const size_t size = sizes[i];
|
||||||
for (size_t alignment = ag; is_aligned(size, alignment); alignment *= 2) {
|
for (size_t alignment = ag; is_aligned(size, alignment); alignment *= 2) {
|
||||||
char* const req_addr = align_up(mapping2, alignment);
|
char* const req_addr = align_up(mapping2, alignment);
|
||||||
char* p = os::Linux::reserve_memory_special_huge_tlbfs_mixed(size, alignment, req_addr, false);
|
char* p = os::Linux::reserve_memory_special_huge_tlbfs_mixed(size, alignment, req_addr, false);
|
||||||
test_log(SIZE_FORMAT_HEX " " SIZE_FORMAT_HEX " " PTR_FORMAT " -> " PTR_FORMAT " %s",
|
|
||||||
size, alignment, p2i(req_addr), p2i(p), ((p != NULL ? "" : "(failed)")));
|
|
||||||
// as the area around req_addr contains already existing mappings, the API should always
|
// as the area around req_addr contains already existing mappings, the API should always
|
||||||
// return NULL (as per contract, it cannot return another address)
|
// return NULL (as per contract, it cannot return another address)
|
||||||
assert(p == NULL, "must be");
|
assert(p == NULL, "must be");
|
||||||
|
@ -6112,8 +6086,6 @@ class TestReserveMemorySpecial : AllStatic {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
test_log("test_reserve_memory_special_shm(" SIZE_FORMAT ", " SIZE_FORMAT ")", size, alignment);
|
|
||||||
|
|
||||||
char* addr = os::Linux::reserve_memory_special_shm(size, alignment, NULL, false);
|
char* addr = os::Linux::reserve_memory_special_shm(size, alignment, NULL, false);
|
||||||
|
|
||||||
if (addr != NULL) {
|
if (addr != NULL) {
|
||||||
|
|
|
@ -5557,12 +5557,8 @@ char* os::build_agent_function_name(const char *sym_name, const char *lib_name,
|
||||||
// that is reported is when the test tries to allocate at a particular location but gets a
|
// that is reported is when the test tries to allocate at a particular location but gets a
|
||||||
// different valid one. A NULL return value at this point is not considered an error but may
|
// different valid one. A NULL return value at this point is not considered an error but may
|
||||||
// be legitimate.
|
// be legitimate.
|
||||||
// If -XX:+VerboseInternalVMTests is enabled, print some explanatory messages.
|
|
||||||
void TestReserveMemorySpecial_test() {
|
void TestReserveMemorySpecial_test() {
|
||||||
if (!UseLargePages) {
|
if (!UseLargePages) {
|
||||||
if (VerboseInternalVMTests) {
|
|
||||||
tty->print("Skipping test because large pages are disabled");
|
|
||||||
}
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// save current value of globals
|
// save current value of globals
|
||||||
|
@ -5576,10 +5572,6 @@ void TestReserveMemorySpecial_test() {
|
||||||
const size_t large_allocation_size = os::large_page_size() * 4;
|
const size_t large_allocation_size = os::large_page_size() * 4;
|
||||||
char* result = os::reserve_memory_special(large_allocation_size, os::large_page_size(), NULL, false);
|
char* result = os::reserve_memory_special(large_allocation_size, os::large_page_size(), NULL, false);
|
||||||
if (result == NULL) {
|
if (result == NULL) {
|
||||||
if (VerboseInternalVMTests) {
|
|
||||||
tty->print("Failed to allocate control block with size " SIZE_FORMAT ". Skipping remainder of test.",
|
|
||||||
large_allocation_size);
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
os::release_memory_special(result, large_allocation_size);
|
os::release_memory_special(result, large_allocation_size);
|
||||||
|
|
||||||
|
@ -5589,10 +5581,6 @@ void TestReserveMemorySpecial_test() {
|
||||||
char* expected_location = result + os::large_page_size();
|
char* expected_location = result + os::large_page_size();
|
||||||
char* actual_location = os::reserve_memory_special(expected_allocation_size, os::large_page_size(), expected_location, false);
|
char* actual_location = os::reserve_memory_special(expected_allocation_size, os::large_page_size(), expected_location, false);
|
||||||
if (actual_location == NULL) {
|
if (actual_location == NULL) {
|
||||||
if (VerboseInternalVMTests) {
|
|
||||||
tty->print("Failed to allocate any memory at " PTR_FORMAT " size " SIZE_FORMAT ". Skipping remainder of test.",
|
|
||||||
expected_location, large_allocation_size);
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
// release memory
|
// release memory
|
||||||
os::release_memory_special(actual_location, expected_allocation_size);
|
os::release_memory_special(actual_location, expected_allocation_size);
|
||||||
|
|
|
@ -372,12 +372,6 @@
|
||||||
develop(uintx, MetadataAllocationFailALotInterval, 1000, \
|
develop(uintx, MetadataAllocationFailALotInterval, 1000, \
|
||||||
"Metadata allocation failure a lot interval") \
|
"Metadata allocation failure a lot interval") \
|
||||||
\
|
\
|
||||||
notproduct(bool, ExecuteInternalVMTests, false, \
|
|
||||||
"Enable execution of internal VM tests") \
|
|
||||||
\
|
|
||||||
notproduct(bool, VerboseInternalVMTests, false, \
|
|
||||||
"Turn on logging for internal VM tests.") \
|
|
||||||
\
|
|
||||||
product(bool, ExecutingUnitTests, false, \
|
product(bool, ExecutingUnitTests, false, \
|
||||||
"Whether the JVM is running unit tests or not") \
|
"Whether the JVM is running unit tests or not") \
|
||||||
\
|
\
|
||||||
|
|
|
@ -1059,14 +1059,6 @@ void VirtualSpace::print() {
|
||||||
|
|
||||||
#ifndef PRODUCT
|
#ifndef PRODUCT
|
||||||
|
|
||||||
#define test_log(...) \
|
|
||||||
do {\
|
|
||||||
if (VerboseInternalVMTests) { \
|
|
||||||
tty->print_cr(__VA_ARGS__); \
|
|
||||||
tty->flush(); \
|
|
||||||
}\
|
|
||||||
} while (false)
|
|
||||||
|
|
||||||
class TestReservedSpace : AllStatic {
|
class TestReservedSpace : AllStatic {
|
||||||
public:
|
public:
|
||||||
static void small_page_write(void* addr, size_t size) {
|
static void small_page_write(void* addr, size_t size) {
|
||||||
|
@ -1087,8 +1079,6 @@ class TestReservedSpace : AllStatic {
|
||||||
}
|
}
|
||||||
|
|
||||||
static void test_reserved_space1(size_t size, size_t alignment) {
|
static void test_reserved_space1(size_t size, size_t alignment) {
|
||||||
test_log("test_reserved_space1(%p)", (void*) (uintptr_t) size);
|
|
||||||
|
|
||||||
assert(is_aligned(size, alignment), "Incorrect input parameters");
|
assert(is_aligned(size, alignment), "Incorrect input parameters");
|
||||||
|
|
||||||
ReservedSpace rs(size, // size
|
ReservedSpace rs(size, // size
|
||||||
|
@ -1096,8 +1086,6 @@ class TestReservedSpace : AllStatic {
|
||||||
UseLargePages, // large
|
UseLargePages, // large
|
||||||
(char *)NULL); // requested_address
|
(char *)NULL); // requested_address
|
||||||
|
|
||||||
test_log(" rs.special() == %d", rs.special());
|
|
||||||
|
|
||||||
assert(rs.base() != NULL, "Must be");
|
assert(rs.base() != NULL, "Must be");
|
||||||
assert(rs.size() == size, "Must be");
|
assert(rs.size() == size, "Must be");
|
||||||
|
|
||||||
|
@ -1112,14 +1100,10 @@ class TestReservedSpace : AllStatic {
|
||||||
}
|
}
|
||||||
|
|
||||||
static void test_reserved_space2(size_t size) {
|
static void test_reserved_space2(size_t size) {
|
||||||
test_log("test_reserved_space2(%p)", (void*)(uintptr_t)size);
|
|
||||||
|
|
||||||
assert(is_aligned(size, os::vm_allocation_granularity()), "Must be at least AG aligned");
|
assert(is_aligned(size, os::vm_allocation_granularity()), "Must be at least AG aligned");
|
||||||
|
|
||||||
ReservedSpace rs(size);
|
ReservedSpace rs(size);
|
||||||
|
|
||||||
test_log(" rs.special() == %d", rs.special());
|
|
||||||
|
|
||||||
assert(rs.base() != NULL, "Must be");
|
assert(rs.base() != NULL, "Must be");
|
||||||
assert(rs.size() == size, "Must be");
|
assert(rs.size() == size, "Must be");
|
||||||
|
|
||||||
|
@ -1131,9 +1115,6 @@ class TestReservedSpace : AllStatic {
|
||||||
}
|
}
|
||||||
|
|
||||||
static void test_reserved_space3(size_t size, size_t alignment, bool maybe_large) {
|
static void test_reserved_space3(size_t size, size_t alignment, bool maybe_large) {
|
||||||
test_log("test_reserved_space3(%p, %p, %d)",
|
|
||||||
(void*)(uintptr_t)size, (void*)(uintptr_t)alignment, maybe_large);
|
|
||||||
|
|
||||||
if (size < alignment) {
|
if (size < alignment) {
|
||||||
// Tests might set -XX:LargePageSizeInBytes=<small pages> and cause unexpected input arguments for this test.
|
// Tests might set -XX:LargePageSizeInBytes=<small pages> and cause unexpected input arguments for this test.
|
||||||
assert((size_t)os::vm_page_size() == os::large_page_size(), "Test needs further refinement");
|
assert((size_t)os::vm_page_size() == os::large_page_size(), "Test needs further refinement");
|
||||||
|
@ -1147,8 +1128,6 @@ class TestReservedSpace : AllStatic {
|
||||||
|
|
||||||
ReservedSpace rs(size, alignment, large, false);
|
ReservedSpace rs(size, alignment, large, false);
|
||||||
|
|
||||||
test_log(" rs.special() == %d", rs.special());
|
|
||||||
|
|
||||||
assert(rs.base() != NULL, "Must be");
|
assert(rs.base() != NULL, "Must be");
|
||||||
assert(rs.size() == size, "Must be");
|
assert(rs.size() == size, "Must be");
|
||||||
|
|
||||||
|
|
|
@ -86,7 +86,6 @@
|
||||||
#include "utilities/dtrace.hpp"
|
#include "utilities/dtrace.hpp"
|
||||||
#include "utilities/events.hpp"
|
#include "utilities/events.hpp"
|
||||||
#include "utilities/histogram.hpp"
|
#include "utilities/histogram.hpp"
|
||||||
#include "utilities/internalVMTests.hpp"
|
|
||||||
#include "utilities/macros.hpp"
|
#include "utilities/macros.hpp"
|
||||||
#include "utilities/vmError.hpp"
|
#include "utilities/vmError.hpp"
|
||||||
#if INCLUDE_JVMCI
|
#if INCLUDE_JVMCI
|
||||||
|
@ -3977,9 +3976,6 @@ static jint JNI_CreateJavaVM_inner(JavaVM **vm, void **penv, void *args) {
|
||||||
// Some platforms (like Win*) need a wrapper around these test
|
// Some platforms (like Win*) need a wrapper around these test
|
||||||
// functions in order to properly handle error conditions.
|
// functions in order to properly handle error conditions.
|
||||||
VMError::test_error_handler();
|
VMError::test_error_handler();
|
||||||
if (ExecuteInternalVMTests) {
|
|
||||||
InternalVMTests::run();
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Since this is not a JVM_ENTRY we have to set the thread state manually before leaving.
|
// Since this is not a JVM_ENTRY we have to set the thread state manually before leaving.
|
||||||
|
|
|
@ -1,48 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (c) 2016, 2018, 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.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "precompiled.hpp"
|
|
||||||
|
|
||||||
#ifndef PRODUCT
|
|
||||||
#include <locale.h>
|
|
||||||
|
|
||||||
#include "utilities/internalVMTests.hpp"
|
|
||||||
#include "utilities/macros.hpp"
|
|
||||||
#include "utilities/ostream.hpp"
|
|
||||||
|
|
||||||
#define run_unit_test(unit_test_function_call) \
|
|
||||||
void unit_test_function_call(); \
|
|
||||||
run_test(#unit_test_function_call, unit_test_function_call);
|
|
||||||
|
|
||||||
void InternalVMTests::run_test(const char* name, void (*test)()) {
|
|
||||||
tty->print_cr("Running test: %s", name);
|
|
||||||
test();
|
|
||||||
}
|
|
||||||
|
|
||||||
void InternalVMTests::run() {
|
|
||||||
tty->print_cr("Running internal VM tests");
|
|
||||||
tty->print_cr("All internal VM tests passed");
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
|
@ -1,40 +0,0 @@
|
||||||
/*
|
|
||||||
* 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.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef SHARE_VM_UTILITIES_INTERNALVMTESTS_HPP
|
|
||||||
#define SHARE_VM_UTILITIES_INTERNALVMTESTS_HPP
|
|
||||||
|
|
||||||
#ifndef PRODUCT
|
|
||||||
|
|
||||||
#include "memory/allocation.hpp"
|
|
||||||
|
|
||||||
class InternalVMTests : public AllStatic {
|
|
||||||
static void run_test(const char* name, void (*test)());
|
|
||||||
public:
|
|
||||||
static void run();
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif // SHARE_VM_UTILITIES_INTERNALVMTESTS_HPP
|
|
|
@ -49,9 +49,6 @@ hotspot_%:
|
||||||
$(ECHO) "Running tests: $@"
|
$(ECHO) "Running tests: $@"
|
||||||
$(MAKE) -j 1 TEST_SELECTION=":$@" UNIQUE_DIR=$@ jtreg_tests;
|
$(MAKE) -j 1 TEST_SELECTION=":$@" UNIQUE_DIR=$@ jtreg_tests;
|
||||||
|
|
||||||
hotspot_internal:
|
|
||||||
$(ALT_OUTPUTDIR)/jdk/bin/java -XX:+ExecuteInternalVMTests -XX:+ShowMessageBoxOnError -version
|
|
||||||
|
|
||||||
################################################################
|
################################################################
|
||||||
|
|
||||||
# Set up the directory in which the jvm directories live (client/, server/, etc.)
|
# Set up the directory in which the jvm directories live (client/, server/, etc.)
|
||||||
|
|
|
@ -180,7 +180,6 @@ tier1_gc_1 = \
|
||||||
-gc/g1/ihop/TestIHOPErgo.java
|
-gc/g1/ihop/TestIHOPErgo.java
|
||||||
|
|
||||||
tier1_gc_2 = \
|
tier1_gc_2 = \
|
||||||
sanity/ExecuteInternalVMTests.java \
|
|
||||||
gc/ \
|
gc/ \
|
||||||
-gc/epsilon/ \
|
-gc/epsilon/ \
|
||||||
-gc/g1/ \
|
-gc/g1/ \
|
||||||
|
|
|
@ -53,8 +53,8 @@ public class VMOptionWarning {
|
||||||
output = new OutputAnalyzer(pb.start());
|
output = new OutputAnalyzer(pb.start());
|
||||||
output.shouldContain("Error: VM option 'VerifyStack' is develop and is available only in debug version of VM.");
|
output.shouldContain("Error: VM option 'VerifyStack' is develop and is available only in debug version of VM.");
|
||||||
|
|
||||||
pb = ProcessTools.createJavaProcessBuilder("-XX:+ExecuteInternalVMTests", "-version");
|
pb = ProcessTools.createJavaProcessBuilder("-XX:+CheckCompressedOops", "-version");
|
||||||
output = new OutputAnalyzer(pb.start());
|
output = new OutputAnalyzer(pb.start());
|
||||||
output.shouldContain("Error: VM option 'ExecuteInternalVMTests' is notproduct and is available only in debug version of VM.");
|
output.shouldContain("Error: VM option 'CheckCompressedOops' is notproduct and is available only in debug version of VM.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,39 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright (c) 2012, 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 ExecuteInternalVMTests
|
|
||||||
* @bug 8004691
|
|
||||||
* @summary Add a jtreg test that exercises the ExecuteInternalVMTests flag
|
|
||||||
* @run main/othervm -XX:+IgnoreUnrecognizedVMOptions -XX:+ExecuteInternalVMTests ExecuteInternalVMTests
|
|
||||||
*/
|
|
||||||
public class ExecuteInternalVMTests {
|
|
||||||
public static void main(String[] args) throws Exception {
|
|
||||||
// The tests that are run are the HotSpot internal tests which are
|
|
||||||
// executed only when the flag -XX:+ExecuteInternalVMTests is used.
|
|
||||||
|
|
||||||
// The flag -XX:+ExecuteInternalVMTests can only be used for
|
|
||||||
// non-product builds of HotSpot. Therefore, the flag
|
|
||||||
// -XX:+IgnoreUnrecognizedVMOptions is also used, which means that this
|
|
||||||
// test will do nothing on a product build.
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Add table
Add a link
Reference in a new issue