< prev index next >

test/hotspot/gtest/oops/test_compressedKlass.cpp

Print this page
@@ -1,7 +1,7 @@
  /*
-  * Copyright (c) 2024, Red Hat, Inc. All rights reserved.
+  * Copyright (c) 2024, 2025, Red Hat, Inc. All rights reserved.
   * Copyright (c) 2024, 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
   * under the terms of the GNU General Public License version 2 only, as

@@ -20,10 +20,11 @@
   * 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 "classfile/vmClasses.hpp"
  #include "oops/compressedKlass.inline.hpp"
  #include "utilities/globalDefinitions.hpp"
  
  #include "unittest.hpp"
  

@@ -105,5 +106,17 @@
    address addr = CompressedKlassPointers::klass_range_start();
    ASSERT_TRUE(CompressedKlassPointers::is_encodable(addr));
    addr = CompressedKlassPointers::klass_range_end() - alignment;
    ASSERT_TRUE(CompressedKlassPointers::is_encodable(addr));
  }
+ 
+ TEST_VM(CompressedKlass, test_is_valid_narrow_klass) {
+   if (!UseCompressedClassPointers) {
+     return;
+   }
+   ASSERT_FALSE(CompressedKlassPointers::is_valid_narrow_klass_id(0));
+   narrowKlass nk_jlC = CompressedKlassPointers::encode((Klass*)vmClasses::Class_klass());
+   ASSERT_TRUE(CompressedKlassPointers::is_valid_narrow_klass_id(nk_jlC));
+   if (CompressedClassSpaceSize < 4 * G && CompressedKlassPointers::base() != nullptr) {
+     ASSERT_FALSE(CompressedKlassPointers::is_valid_narrow_klass_id(0xFFFFFFFF));
+   }
+ }
< prev index next >