< prev index next >

test/native/runtime/test_arguments.cpp

Print this page

        

@@ -26,16 +26,22 @@
 #include "runtime/arguments.hpp"
 #include "unittest.hpp"
 #include "utilities/globalDefinitions.hpp"
 
 class ArgumentsTest : public ::testing::Test {
+public:
   static intx parse_xss_inner_annotated(const char* str, jint expected_err, const char* file, int line_number);
 
-public:
-  static void check_memory_size_min();
-  static void check_memory_size_max();
-  static void parse_xss();
+  // Expose the private Arguments functions.
+
+  static Arguments::ArgsRange check_memory_size(julong size, julong min_size, julong max_size) {
+    return Arguments::check_memory_size(size, min_size, max_size);
+  }
+
+  static jint parse_xss(const JavaVMOption* option, const char* tail, intx* out_ThreadStackSize) {
+    return Arguments::parse_xss(option, tail, out_ThreadStackSize);
+  }
 };
 
 TEST_F(ArgumentsTest, atojulong) {
   char ullong_max[32];
   int ret = jio_snprintf(ullong_max, sizeof(ullong_max), JULONG_FORMAT, ULLONG_MAX);

@@ -78,75 +84,65 @@
         << "Valid string '" << valid_strings[i].str << "' did not parse.";
     ASSERT_EQ(valid_strings[i].expected_value, value);
   }
 }
 
-// Proxy through the TestClass test fixture, which is a friend class of the implementation.
-#define FRIEND_PROXIED(TestClass, function, mode)  \
-  TEST ## mode (TestClass, function) {             \
-    TestClass::function();                         \
-  }                                           \
-  void TestClass::function()
-
-#define FRIEND_PROXIED_TEST_F(   TestClass, function) FRIEND_PROXIED(TestClass, function, _F)
-#define FRIEND_PROXIED_TEST_VM_F(TestClass, function) FRIEND_PROXIED(TestClass, function, _VM_F)
-
-FRIEND_PROXIED_TEST_F(ArgumentsTest, check_memory_size_min) {
-  EXPECT_EQ(Arguments::check_memory_size(999,  1000, max_uintx), Arguments::arg_too_small);
-  EXPECT_EQ(Arguments::check_memory_size(1000, 1000, max_uintx), Arguments::arg_in_range);
-  EXPECT_EQ(Arguments::check_memory_size(1001, 1000, max_uintx), Arguments::arg_in_range);
-
-  EXPECT_EQ(Arguments::check_memory_size(max_intx - 2, max_intx - 1, max_uintx), Arguments::arg_too_small);
-  EXPECT_EQ(Arguments::check_memory_size(max_intx - 1, max_intx - 1, max_uintx), Arguments::arg_in_range);
-  EXPECT_EQ(Arguments::check_memory_size(max_intx - 0, max_intx - 1, max_uintx), Arguments::arg_in_range);
+TEST_F(ArgumentsTest, check_memory_size__min) {
+  EXPECT_EQ(check_memory_size(999,  1000, max_uintx), Arguments::arg_too_small);
+  EXPECT_EQ(check_memory_size(1000, 1000, max_uintx), Arguments::arg_in_range);
+  EXPECT_EQ(check_memory_size(1001, 1000, max_uintx), Arguments::arg_in_range);
+
+  EXPECT_EQ(check_memory_size(max_intx - 2, max_intx - 1, max_uintx), Arguments::arg_too_small);
+  EXPECT_EQ(check_memory_size(max_intx - 1, max_intx - 1, max_uintx), Arguments::arg_in_range);
+  EXPECT_EQ(check_memory_size(max_intx - 0, max_intx - 1, max_uintx), Arguments::arg_in_range);
 
-  EXPECT_EQ(Arguments::check_memory_size(max_intx - 1, max_intx, max_uintx), Arguments::arg_too_small);
-  EXPECT_EQ(Arguments::check_memory_size(max_intx    , max_intx, max_uintx), Arguments::arg_in_range);
+  EXPECT_EQ(check_memory_size(max_intx - 1, max_intx, max_uintx), Arguments::arg_too_small);
+  EXPECT_EQ(check_memory_size(max_intx    , max_intx, max_uintx), Arguments::arg_in_range);
 
   NOT_LP64(
-    EXPECT_EQ(Arguments::check_memory_size((julong)max_intx + 1, max_intx, max_uintx), Arguments::arg_in_range);
+    EXPECT_EQ(check_memory_size((julong)max_intx + 1, max_intx, max_uintx), Arguments::arg_in_range);
 
-    EXPECT_EQ(Arguments::check_memory_size(        max_intx - 1, (julong)max_intx + 1, max_uintx), Arguments::arg_too_small);
-    EXPECT_EQ(Arguments::check_memory_size(        max_intx    , (julong)max_intx + 1, max_uintx), Arguments::arg_too_small);
-    EXPECT_EQ(Arguments::check_memory_size((julong)max_intx + 1, (julong)max_intx + 1, max_uintx), Arguments::arg_in_range);
-    EXPECT_EQ(Arguments::check_memory_size((julong)max_intx + 2, (julong)max_intx + 1, max_uintx), Arguments::arg_in_range);
+    EXPECT_EQ(check_memory_size(        max_intx - 1, (julong)max_intx + 1, max_uintx), Arguments::arg_too_small);
+    EXPECT_EQ(check_memory_size(        max_intx    , (julong)max_intx + 1, max_uintx), Arguments::arg_too_small);
+    EXPECT_EQ(check_memory_size((julong)max_intx + 1, (julong)max_intx + 1, max_uintx), Arguments::arg_in_range);
+    EXPECT_EQ(check_memory_size((julong)max_intx + 2, (julong)max_intx + 1, max_uintx), Arguments::arg_in_range);
   );
 
-  EXPECT_EQ(Arguments::check_memory_size(max_uintx - 2, max_uintx - 1, max_uintx), Arguments::arg_too_small);
-  EXPECT_EQ(Arguments::check_memory_size(max_uintx - 1, max_uintx - 1, max_uintx), Arguments::arg_in_range);
-  EXPECT_EQ(Arguments::check_memory_size(max_uintx    , max_uintx - 1, max_uintx), Arguments::arg_in_range);
+  EXPECT_EQ(check_memory_size(max_uintx - 2, max_uintx - 1, max_uintx), Arguments::arg_too_small);
+  EXPECT_EQ(check_memory_size(max_uintx - 1, max_uintx - 1, max_uintx), Arguments::arg_in_range);
+  EXPECT_EQ(check_memory_size(max_uintx    , max_uintx - 1, max_uintx), Arguments::arg_in_range);
 
-  EXPECT_EQ(Arguments::check_memory_size(max_uintx - 1, max_uintx, max_uintx), Arguments::arg_too_small);
-  EXPECT_EQ(Arguments::check_memory_size(max_uintx    , max_uintx, max_uintx), Arguments::arg_in_range);
+  EXPECT_EQ(check_memory_size(max_uintx - 1, max_uintx, max_uintx), Arguments::arg_too_small);
+  EXPECT_EQ(check_memory_size(max_uintx    , max_uintx, max_uintx), Arguments::arg_in_range);
 }
 
-FRIEND_PROXIED_TEST_F(ArgumentsTest, check_memory_size_max) {
-  EXPECT_EQ(Arguments::check_memory_size(max_uintx - 1, 1000, max_uintx), Arguments::arg_in_range);
-  EXPECT_EQ(Arguments::check_memory_size(max_uintx    , 1000, max_uintx), Arguments::arg_in_range);
+TEST_F(ArgumentsTest, check_memory_size__max) {
+  EXPECT_EQ(check_memory_size(max_uintx - 1, 1000, max_uintx), Arguments::arg_in_range);
+  EXPECT_EQ(check_memory_size(max_uintx    , 1000, max_uintx), Arguments::arg_in_range);
 
-  EXPECT_EQ(Arguments::check_memory_size(max_intx - 2     , 1000, max_intx - 1), Arguments::arg_in_range);
-  EXPECT_EQ(Arguments::check_memory_size(max_intx - 1     , 1000, max_intx - 1), Arguments::arg_in_range);
-  EXPECT_EQ(Arguments::check_memory_size(max_intx         , 1000, max_intx - 1), Arguments::arg_too_big);
+  EXPECT_EQ(check_memory_size(max_intx - 2     , 1000, max_intx - 1), Arguments::arg_in_range);
+  EXPECT_EQ(check_memory_size(max_intx - 1     , 1000, max_intx - 1), Arguments::arg_in_range);
+  EXPECT_EQ(check_memory_size(max_intx         , 1000, max_intx - 1), Arguments::arg_too_big);
 
-  EXPECT_EQ(Arguments::check_memory_size(max_intx - 1     , 1000, max_intx), Arguments::arg_in_range);
-  EXPECT_EQ(Arguments::check_memory_size(max_intx         , 1000, max_intx), Arguments::arg_in_range);
+  EXPECT_EQ(check_memory_size(max_intx - 1     , 1000, max_intx), Arguments::arg_in_range);
+  EXPECT_EQ(check_memory_size(max_intx         , 1000, max_intx), Arguments::arg_in_range);
 
   NOT_LP64(
-    EXPECT_EQ(Arguments::check_memory_size((julong)max_intx + 1     , 1000, max_intx), Arguments::arg_too_big);
+    EXPECT_EQ(check_memory_size((julong)max_intx + 1     , 1000, max_intx), Arguments::arg_too_big);
 
-    EXPECT_EQ(Arguments::check_memory_size(        max_intx         , 1000, (julong)max_intx + 1), Arguments::arg_in_range);
-    EXPECT_EQ(Arguments::check_memory_size((julong)max_intx + 1     , 1000, (julong)max_intx + 1), Arguments::arg_in_range);
-    EXPECT_EQ(Arguments::check_memory_size((julong)max_intx + 2     , 1000, (julong)max_intx + 1), Arguments::arg_too_big);
+    EXPECT_EQ(check_memory_size(        max_intx         , 1000, (julong)max_intx + 1), Arguments::arg_in_range);
+    EXPECT_EQ(check_memory_size((julong)max_intx + 1     , 1000, (julong)max_intx + 1), Arguments::arg_in_range);
+    EXPECT_EQ(check_memory_size((julong)max_intx + 2     , 1000, (julong)max_intx + 1), Arguments::arg_too_big);
  );
 }
 
 // A random value - used to verify the output when parsing is expected to fail.
 static const intx no_value = 4711;
 
 inline intx ArgumentsTest::parse_xss_inner_annotated(const char* str, jint expected_err, const char* file, int line_number) {
   intx value = no_value;
-  jint err = Arguments::parse_xss(NULL /* Silence error messages */, str, &value);
+  jint err = parse_xss(NULL /* Silence error messages */, str, &value);
   EXPECT_EQ(err, expected_err) << "Failure from: " << file << ":" << line_number;
   return value;
 }
 
 // Wrapper around the help function - gives file and line number when a test failure occurs.

@@ -165,11 +161,11 @@
 static char* to_string(julong value) {
   jio_snprintf(buff, sizeof(buff), JULONG_FORMAT, value);
   return buff;
 }
 
-FRIEND_PROXIED_TEST_VM_F(ArgumentsTest, parse_xss) {
+TEST_VM_F(ArgumentsTest, parse_xss) {
   // Test the maximum input value - should fail.
   {
     EXPECT_EQ(parse_xss_inner(to_string(max_julong), JNI_EINVAL), no_value);
     NOT_LP64(EXPECT_EQ(parse_xss_inner(to_string(max_uintx), JNI_EINVAL), no_value));
   }
< prev index next >