test/hotspot/gtest/gc/z/test_zArray.cpp
changeset 50525 767cdb97f103
child 50975 b833992fa8fa
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/hotspot/gtest/gc/z/test_zArray.cpp	Tue Jun 12 17:40:28 2018 +0200
@@ -0,0 +1,79 @@
+/*
+ * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * ORACLE PROPRIETARY/CONFIDENTIAL.  Use is subject to license terms.
+ */
+
+#include "precompiled.hpp"
+#include "gc/z/zArray.inline.hpp"
+#include "unittest.hpp"
+
+TEST(ZArrayTest, test_add) {
+  ZArray<int> a;
+
+  // Add elements
+  for (int i = 0; i < 10; i++) {
+    a.add(i);
+  }
+
+  // Check size
+  ASSERT_EQ(a.size(), 10u);
+
+  // Check elements
+  for (int i = 0; i < 10; i++) {
+    EXPECT_EQ(a.at(i), i);
+  }
+}
+
+TEST(ZArrayTest, test_clear) {
+  ZArray<int> a;
+
+  // Add elements
+  for (int i = 0; i < 10; i++) {
+    a.add(i);
+  }
+
+  // Check size
+  ASSERT_EQ(a.size(), 10u);
+  ASSERT_EQ(a.is_empty(), false);
+
+  // Clear elements
+  a.clear();
+
+  // Check size
+  ASSERT_EQ(a.size(), 0u);
+  ASSERT_EQ(a.is_empty(), true);
+
+  // Add element
+  a.add(11);
+
+  // Check size
+  ASSERT_EQ(a.size(), 1u);
+  ASSERT_EQ(a.is_empty(), false);
+
+  // Clear elements
+  a.clear();
+
+  // Check size
+  ASSERT_EQ(a.size(), 0u);
+  ASSERT_EQ(a.is_empty(), true);
+}
+
+TEST(ZArrayTest, test_iterator) {
+  ZArray<int> a;
+
+  // Add elements
+  for (int i = 0; i < 10; i++) {
+    a.add(i);
+  }
+
+  // Iterate
+  int count = 0;
+  ZArrayIterator<int> iter(&a);
+  for (int value; iter.next(&value);) {
+    ASSERT_EQ(a.at(count), count);
+    count++;
+  }
+
+  // Check count
+  ASSERT_EQ(count, 10);
+}