summaryrefslogtreecommitdiffstats
path: root/runtime/parsed_options_test.cc
diff options
context:
space:
mode:
authorIgor Murashkin <iam@google.com>2015-01-26 10:55:53 -0800
committerIgor Murashkin <iam@google.com>2015-02-04 13:29:19 -0800
commitaaebaa0121be3b9d9f13630585304482cbcaeb4b (patch)
tree0f47257e497fdf920c8d703d2d00adab53934a76 /runtime/parsed_options_test.cc
parentbabecc483276b46d84cb83d4f01e577228827305 (diff)
downloadart-aaebaa0121be3b9d9f13630585304482cbcaeb4b.tar.gz
art-aaebaa0121be3b9d9f13630585304482cbcaeb4b.tar.bz2
art-aaebaa0121be3b9d9f13630585304482cbcaeb4b.zip
art: Refactor RuntimeOptions/ParsedOptions
Refactor the RuntimeOptions to be a type-safe map (VariantMap, see runtime_options.h) and the ParsedOptions to delegate the parsing to CmdlineParser (see cmdline/cmdline_parser.h). This is the start of a command line parsing refactor, and may include more in the future (dex2oat, patchoat, etc). For more details of the command line parsing generator usage see cmdline/README.md Change-Id: Ic67c6bca5e1f33bf2ec60e2e3ff8c366bab91563
Diffstat (limited to 'runtime/parsed_options_test.cc')
-rw-r--r--runtime/parsed_options_test.cc44
1 files changed, 27 insertions, 17 deletions
diff --git a/runtime/parsed_options_test.cc b/runtime/parsed_options_test.cc
index 61481b16e6..f68b6329c4 100644
--- a/runtime/parsed_options_test.cc
+++ b/runtime/parsed_options_test.cc
@@ -22,7 +22,7 @@
namespace art {
-class ParsedOptionsTest : public CommonRuntimeTest {};
+class ParsedOptionsTest : public ::testing::Test {};
TEST_F(ParsedOptionsTest, ParsedOptions) {
void* test_vfprintf = reinterpret_cast<void*>(0xa);
@@ -30,7 +30,7 @@ TEST_F(ParsedOptionsTest, ParsedOptions) {
void* test_exit = reinterpret_cast<void*>(0xc);
void* null = reinterpret_cast<void*>(NULL);
- std::string lib_core(GetLibCoreDexFileName());
+ std::string lib_core(CommonRuntimeTest::GetLibCoreDexFileName());
std::string boot_class_path;
boot_class_path += "-Xbootclasspath:";
@@ -54,20 +54,28 @@ TEST_F(ParsedOptionsTest, ParsedOptions) {
options.push_back(std::make_pair("vfprintf", test_vfprintf));
options.push_back(std::make_pair("abort", test_abort));
options.push_back(std::make_pair("exit", test_exit));
- std::unique_ptr<ParsedOptions> parsed(ParsedOptions::Create(options, false));
+
+ RuntimeArgumentMap map;
+ std::unique_ptr<ParsedOptions> parsed(ParsedOptions::Create(options, false, &map));
ASSERT_TRUE(parsed.get() != NULL);
+ ASSERT_NE(0u, map.Size());
+
+ using Opt = RuntimeArgumentMap;
- EXPECT_EQ(lib_core, parsed->boot_class_path_string_);
- EXPECT_EQ(lib_core, parsed->class_path_string_);
- EXPECT_EQ(std::string("boot_image"), parsed->image_);
- EXPECT_EQ(true, parsed->check_jni_);
- EXPECT_EQ(2048U, parsed->heap_initial_size_);
- EXPECT_EQ(4 * KB, parsed->heap_maximum_size_);
- EXPECT_EQ(1 * MB, parsed->stack_size_);
- EXPECT_DOUBLE_EQ(0.75, parsed->heap_target_utilization_);
- EXPECT_TRUE(test_vfprintf == parsed->hook_vfprintf_);
- EXPECT_TRUE(test_exit == parsed->hook_exit_);
- EXPECT_TRUE(test_abort == parsed->hook_abort_);
+#define EXPECT_PARSED_EQ(expected, actual_key) EXPECT_EQ(expected, map.GetOrDefault(actual_key))
+#define EXPECT_PARSED_EXISTS(actual_key) EXPECT_TRUE(map.Exists(actual_key))
+
+ EXPECT_PARSED_EQ(lib_core, Opt::BootClassPath);
+ EXPECT_PARSED_EQ(lib_core, Opt::ClassPath);
+ EXPECT_PARSED_EQ(std::string("boot_image"), Opt::Image);
+ EXPECT_PARSED_EXISTS(Opt::CheckJni);
+ EXPECT_PARSED_EQ(2048U, Opt::MemoryInitialSize);
+ EXPECT_PARSED_EQ(4 * KB, Opt::MemoryMaximumSize);
+ EXPECT_PARSED_EQ(1 * MB, Opt::StackSize);
+ EXPECT_DOUBLE_EQ(0.75, map.GetOrDefault(Opt::HeapTargetUtilization));
+ EXPECT_TRUE(test_vfprintf == map.GetOrDefault(Opt::HookVfprintf));
+ EXPECT_TRUE(test_exit == map.GetOrDefault(Opt::HookExit));
+ EXPECT_TRUE(test_abort == map.GetOrDefault(Opt::HookAbort));
EXPECT_TRUE(VLOG_IS_ON(class_linker));
EXPECT_FALSE(VLOG_IS_ON(compiler));
EXPECT_FALSE(VLOG_IS_ON(heap));
@@ -78,9 +86,11 @@ TEST_F(ParsedOptionsTest, ParsedOptions) {
EXPECT_FALSE(VLOG_IS_ON(startup));
EXPECT_FALSE(VLOG_IS_ON(third_party_jni));
EXPECT_FALSE(VLOG_IS_ON(threads));
- ASSERT_EQ(2U, parsed->properties_.size());
- EXPECT_EQ("foo=bar", parsed->properties_[0]);
- EXPECT_EQ("baz=qux", parsed->properties_[1]);
+
+ auto&& properties_list = map.GetOrDefault(Opt::PropertiesList);
+ ASSERT_EQ(2U, properties_list.size());
+ EXPECT_EQ("foo=bar", properties_list[0]);
+ EXPECT_EQ("baz=qux", properties_list[1]);
}
} // namespace art