[AArch64,ELF] Restrict MOVZ/MOVK to non-PIC large code model (#70178)
[llvm-project.git] / lldb / unittests / Interpreter / TestOptionArgParser.cpp
blobe173febcfa8fe8ec8f941a27ececeb9f1564e601
1 //===-- ArgsTest.cpp ------------------------------------------------------===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
9 #include "gtest/gtest.h"
10 #include "lldb/Interpreter/OptionArgParser.h"
12 using namespace lldb_private;
14 TEST(OptionArgParserTest, toBoolean) {
15 bool success = false;
16 EXPECT_TRUE(
17 OptionArgParser::ToBoolean(llvm::StringRef("true"), false, nullptr));
18 EXPECT_TRUE(
19 OptionArgParser::ToBoolean(llvm::StringRef("on"), false, nullptr));
20 EXPECT_TRUE(
21 OptionArgParser::ToBoolean(llvm::StringRef("yes"), false, nullptr));
22 EXPECT_TRUE(OptionArgParser::ToBoolean(llvm::StringRef("1"), false, nullptr));
24 EXPECT_TRUE(
25 OptionArgParser::ToBoolean(llvm::StringRef("true"), false, &success));
26 EXPECT_TRUE(success);
27 EXPECT_TRUE(
28 OptionArgParser::ToBoolean(llvm::StringRef("on"), false, &success));
29 EXPECT_TRUE(success);
30 EXPECT_TRUE(
31 OptionArgParser::ToBoolean(llvm::StringRef("yes"), false, &success));
32 EXPECT_TRUE(success);
33 EXPECT_TRUE(
34 OptionArgParser::ToBoolean(llvm::StringRef("1"), false, &success));
35 EXPECT_TRUE(success);
37 EXPECT_FALSE(
38 OptionArgParser::ToBoolean(llvm::StringRef("false"), true, nullptr));
39 EXPECT_FALSE(
40 OptionArgParser::ToBoolean(llvm::StringRef("off"), true, nullptr));
41 EXPECT_FALSE(
42 OptionArgParser::ToBoolean(llvm::StringRef("no"), true, nullptr));
43 EXPECT_FALSE(OptionArgParser::ToBoolean(llvm::StringRef("0"), true, nullptr));
45 EXPECT_FALSE(
46 OptionArgParser::ToBoolean(llvm::StringRef("false"), true, &success));
47 EXPECT_TRUE(success);
48 EXPECT_FALSE(
49 OptionArgParser::ToBoolean(llvm::StringRef("off"), true, &success));
50 EXPECT_TRUE(success);
51 EXPECT_FALSE(
52 OptionArgParser::ToBoolean(llvm::StringRef("no"), true, &success));
53 EXPECT_TRUE(success);
54 EXPECT_FALSE(
55 OptionArgParser::ToBoolean(llvm::StringRef("0"), true, &success));
56 EXPECT_TRUE(success);
58 EXPECT_FALSE(
59 OptionArgParser::ToBoolean(llvm::StringRef("10"), false, &success));
60 EXPECT_FALSE(success);
61 EXPECT_TRUE(
62 OptionArgParser::ToBoolean(llvm::StringRef("10"), true, &success));
63 EXPECT_FALSE(success);
64 EXPECT_TRUE(OptionArgParser::ToBoolean(llvm::StringRef(""), true, &success));
65 EXPECT_FALSE(success);
68 TEST(OptionArgParserTest, toChar) {
69 bool success = false;
71 EXPECT_EQ('A', OptionArgParser::ToChar("A", 'B', nullptr));
72 EXPECT_EQ('B', OptionArgParser::ToChar("B", 'A', nullptr));
74 EXPECT_EQ('A', OptionArgParser::ToChar("A", 'B', &success));
75 EXPECT_TRUE(success);
76 EXPECT_EQ('B', OptionArgParser::ToChar("B", 'A', &success));
77 EXPECT_TRUE(success);
79 EXPECT_EQ('A', OptionArgParser::ToChar("", 'A', &success));
80 EXPECT_FALSE(success);
81 EXPECT_EQ('A', OptionArgParser::ToChar("ABC", 'A', &success));
82 EXPECT_FALSE(success);
85 TEST(OptionArgParserTest, toScriptLanguage) {
86 bool success = false;
88 EXPECT_EQ(lldb::eScriptLanguageDefault,
89 OptionArgParser::ToScriptLanguage(llvm::StringRef("default"),
90 lldb::eScriptLanguageNone,
91 nullptr));
92 EXPECT_EQ(lldb::eScriptLanguagePython,
93 OptionArgParser::ToScriptLanguage(
94 llvm::StringRef("python"), lldb::eScriptLanguageNone, nullptr));
95 EXPECT_EQ(lldb::eScriptLanguageNone,
96 OptionArgParser::ToScriptLanguage(
97 llvm::StringRef("none"), lldb::eScriptLanguagePython, nullptr));
99 EXPECT_EQ(lldb::eScriptLanguageDefault,
100 OptionArgParser::ToScriptLanguage(llvm::StringRef("default"),
101 lldb::eScriptLanguageNone,
102 &success));
103 EXPECT_TRUE(success);
104 EXPECT_EQ(lldb::eScriptLanguagePython,
105 OptionArgParser::ToScriptLanguage(llvm::StringRef("python"),
106 lldb::eScriptLanguageNone,
107 &success));
108 EXPECT_TRUE(success);
109 EXPECT_EQ(lldb::eScriptLanguageNone,
110 OptionArgParser::ToScriptLanguage(llvm::StringRef("none"),
111 lldb::eScriptLanguagePython,
112 &success));
113 EXPECT_TRUE(success);
115 EXPECT_EQ(lldb::eScriptLanguagePython,
116 OptionArgParser::ToScriptLanguage(llvm::StringRef("invalid"),
117 lldb::eScriptLanguagePython,
118 &success));
119 EXPECT_FALSE(success);