blob: 10c52e8cf8d32545573513651d80019256632889 [file] [log] [blame]
/*
* Copyright (C) 2013 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "jdwp.h"
#include "gtest/gtest.h"
namespace art {
namespace JDWP {
TEST(JdwpOptionsTest, Options) {
{
/*
* "Example: -Xrunjdwp:transport=dt_socket,address=8000,server=y\n"
*/
JDWP::JdwpOptions opt = JDWP::JdwpOptions();
const char *opt_args = "transport=dt_socket,address=8000,server=y";
EXPECT_TRUE(ParseJdwpOptions(opt_args, &opt));
EXPECT_EQ(opt.transport, JdwpTransportType::kJdwpTransportSocket);
EXPECT_EQ(opt.port, 8000u);
EXPECT_EQ(opt.server, true);
EXPECT_EQ(opt.suspend, false);
}
{
/*
* Example: transport=dt_socket,address=localhost:6500,server=n
*/
JDWP::JdwpOptions opt = JDWP::JdwpOptions();
const char *opt_args = "transport=dt_socket,address=localhost:6500,server=y";
EXPECT_TRUE(ParseJdwpOptions(opt_args, &opt));
EXPECT_EQ(opt.transport, JdwpTransportType::kJdwpTransportSocket);
EXPECT_EQ(opt.port, 6500u);
EXPECT_EQ(opt.host, "localhost");
EXPECT_EQ(opt.server, true);
EXPECT_EQ(opt.suspend, false);
}
{
/*
* Example: transport=dt_android_adb,server=n,suspend=y;
*/
JDWP::JdwpOptions opt = JDWP::JdwpOptions();
const char *opt_args = "transport=dt_android_adb,server=y";
EXPECT_TRUE(ParseJdwpOptions(opt_args, &opt));
EXPECT_EQ(opt.transport, JdwpTransportType::kJdwpTransportAndroidAdb);
EXPECT_EQ(opt.port, 0xFFFF);
EXPECT_EQ(opt.host, "");
EXPECT_EQ(opt.server, true);
EXPECT_EQ(opt.suspend, false);
}
/*
* Test failures
*/
JDWP::JdwpOptions opt = JDWP::JdwpOptions();
EXPECT_FALSE(ParseJdwpOptions("help", &opt));
EXPECT_FALSE(ParseJdwpOptions("blabla", &opt));
EXPECT_FALSE(ParseJdwpOptions("transport=dt_android_adb,server=n", &opt));
}
} // namespace JDWP
} // namespace art