[Lldb-commits] [lldb] 4e5af6e - Revert "[lldb] Upstream support for Foundation constant classes"
Sterling Augustine via lldb-commits
lldb-commits at lists.llvm.org
Fri Aug 6 16:57:18 PDT 2021
Author: Sterling Augustine
Date: 2021-08-06T16:56:59-07:00
New Revision: 4e5af6ef48590e7248e344ddabf245bb3de71c51
URL: https://github.com/llvm/llvm-project/commit/4e5af6ef48590e7248e344ddabf245bb3de71c51
DIFF: https://github.com/llvm/llvm-project/commit/4e5af6ef48590e7248e344ddabf245bb3de71c51.diff
LOG: Revert "[lldb] Upstream support for Foundation constant classes"
This reverts commit 34d78b6a6755946e547afc47d38b59b6a2854457.
This breaks build bots witha missing file:
/home/worker/2.0.1/lldb-x86_64-debian/llvm-project/lldb/source/Plugins/Language/ObjC/Cocoa.cpp:10:10: fatal error: 'objc/runtime.h' file not found
Added:
Modified:
lldb/source/Plugins/Language/ObjC/Cocoa.cpp
lldb/source/Plugins/Language/ObjC/NSArray.cpp
lldb/source/Plugins/Language/ObjC/NSDictionary.cpp
lldb/source/Plugins/Language/ObjC/ObjCLanguage.cpp
lldb/test/API/functionalities/data-formatter/data-formatter-objc/ObjCDataFormatterTestCase.py
lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSBundle.py
lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSContainer.py
lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSData.py
lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSDate.py
lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSError.py
lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSURL.py
lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjNSException.py
lldb/test/API/functionalities/data-formatter/data-formatter-objc/main.m
lldb/test/API/functionalities/data-formatter/nsdictionarysynth/TestNSDictionarySynthetic.py
lldb/test/API/functionalities/data-formatter/nssetsynth/TestNSSetSynthetic.py
lldb/test/API/functionalities/data-formatter/poarray/TestPrintObjectArray.py
lldb/test/API/lang/objc/orderedset/TestOrderedSet.py
lldb/test/API/lang/objc/single-entry-dictionary/TestObjCSingleEntryDictionary.py
Removed:
lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSNumber.py
################################################################################
diff --git a/lldb/source/Plugins/Language/ObjC/Cocoa.cpp b/lldb/source/Plugins/Language/ObjC/Cocoa.cpp
index e5dcf8441bb6..1479f4f0c151 100644
--- a/lldb/source/Plugins/Language/ObjC/Cocoa.cpp
+++ b/lldb/source/Plugins/Language/ObjC/Cocoa.cpp
@@ -7,7 +7,6 @@
//===----------------------------------------------------------------------===//
#include "Cocoa.h"
-#include "objc/runtime.h"
#include "Plugins/TypeSystem/Clang/TypeSystemClang.h"
#include "lldb/Core/Mangled.h"
@@ -457,72 +456,6 @@ bool lldb_private::formatters::NSNumberSummaryProvider(
if (class_name == "NSDecimalNumber")
return NSDecimalNumberSummaryProvider(valobj, stream, options);
- if (class_name == "NSConstantIntegerNumber") {
- Status error;
- int64_t value = process_sp->ReadSignedIntegerFromMemory(
- valobj_addr + 2 * ptr_size, 8, 0, error);
- if (error.Fail())
- return false;
- uint64_t encoding_addr = process_sp->ReadUnsignedIntegerFromMemory(
- valobj_addr + ptr_size, ptr_size, 0, error);
- if (error.Fail())
- return false;
- char encoding =
- process_sp->ReadUnsignedIntegerFromMemory(encoding_addr, 1, 0, error);
- if (error.Fail())
- return false;
-
- switch (encoding) {
- case _C_CHR:
- NSNumber_FormatChar(valobj, stream, (char)value, options.GetLanguage());
- return true;
- case _C_SHT:
- NSNumber_FormatShort(valobj, stream, (short)value, options.GetLanguage());
- return true;
- case _C_INT:
- NSNumber_FormatInt(valobj, stream, (int)value, options.GetLanguage());
- return true;
- case _C_LNG:
- case _C_LNG_LNG:
- NSNumber_FormatLong(valobj, stream, value, options.GetLanguage());
- return true;
-
- case _C_UCHR:
- case _C_USHT:
- case _C_UINT:
- case _C_ULNG:
- case _C_ULNG_LNG:
- stream.Printf("%" PRIu64, value);
- return true;
- }
-
- return false;
- }
-
- if (class_name == "NSConstantFloatNumber") {
- Status error;
- uint32_t flt_as_int = process_sp->ReadUnsignedIntegerFromMemory(
- valobj_addr + ptr_size, 4, 0, error);
- if (error.Fail())
- return false;
- float flt_value = 0.0f;
- memcpy(&flt_value, &flt_as_int, sizeof(flt_as_int));
- NSNumber_FormatFloat(valobj, stream, flt_value, options.GetLanguage());
- return true;
- }
-
- if (class_name == "NSConstantDoubleNumber") {
- Status error;
- uint64_t dbl_as_lng = process_sp->ReadUnsignedIntegerFromMemory(
- valobj_addr + ptr_size, 8, 0, error);
- if (error.Fail())
- return false;
- double dbl_value = 0.0;
- memcpy(&dbl_value, &dbl_as_lng, sizeof(dbl_as_lng));
- NSNumber_FormatDouble(valobj, stream, dbl_value, options.GetLanguage());
- return true;
- }
-
if (class_name == "NSNumber" || class_name == "__NSCFNumber") {
int64_t value = 0;
uint64_t i_bits = 0;
diff --git a/lldb/source/Plugins/Language/ObjC/NSArray.cpp b/lldb/source/Plugins/Language/ObjC/NSArray.cpp
index f18b59fb11ff..b0398dd19c02 100644
--- a/lldb/source/Plugins/Language/ObjC/NSArray.cpp
+++ b/lldb/source/Plugins/Language/ObjC/NSArray.cpp
@@ -280,22 +280,6 @@ namespace Foundation1436 {
}
}
-namespace ConstantArray {
-
-struct ConstantArray32 {
- uint64_t used;
- uint32_t list;
-};
-
-struct ConstantArray64 {
- uint64_t used;
- uint64_t list;
-};
-
-using NSConstantArraySyntheticFrontEnd =
- GenericNSArrayISyntheticFrontEnd<ConstantArray32, ConstantArray64, false>;
-} // namespace ConstantArray
-
class NSArray0SyntheticFrontEnd : public SyntheticChildrenFrontEnd {
public:
NSArray0SyntheticFrontEnd(lldb::ValueObjectSP valobj_sp);
@@ -372,7 +356,6 @@ bool lldb_private::formatters::NSArraySummaryProvider(
static const ConstString g_NSArrayMLegacy("__NSArrayM_Legacy");
static const ConstString g_NSArrayMImmutable("__NSArrayM_Immutable");
static const ConstString g_NSCallStackArray("_NSCallStackArray");
- static const ConstString g_NSConstantArray("NSConstantArray");
if (class_name.IsEmpty())
return false;
@@ -383,12 +366,6 @@ bool lldb_private::formatters::NSArraySummaryProvider(
ptr_size, 0, error);
if (error.Fail())
return false;
- } else if (class_name == g_NSConstantArray) {
- Status error;
- value = process_sp->ReadUnsignedIntegerFromMemory(valobj_addr + ptr_size, 8,
- 0, error);
- if (error.Fail())
- return false;
} else if (class_name == g_NSArrayM) {
AppleObjCRuntime *apple_runtime =
llvm::dyn_cast_or_null<AppleObjCRuntime>(runtime);
@@ -826,7 +803,6 @@ lldb_private::formatters::NSArraySyntheticFrontEndCreator(
ConstString class_name(descriptor->GetClassName());
static const ConstString g_NSArrayI("__NSArrayI");
- static const ConstString g_NSConstantArray("NSConstantArray");
static const ConstString g_NSArrayI_Transfer("__NSArrayI_Transfer");
static const ConstString g_NSFrozenArrayM("__NSFrozenArrayM");
static const ConstString g_NSArrayM("__NSArrayM");
@@ -847,8 +823,6 @@ lldb_private::formatters::NSArraySyntheticFrontEndCreator(
return (new Foundation1300::NSArrayISyntheticFrontEnd(valobj_sp));
} else if (class_name == g_NSArrayI_Transfer) {
return (new Foundation1436::NSArrayI_TransferSyntheticFrontEnd(valobj_sp));
- } else if (class_name == g_NSConstantArray) {
- return new ConstantArray::NSConstantArraySyntheticFrontEnd(valobj_sp);
} else if (class_name == g_NSFrozenArrayM) {
return (new Foundation1436::NSFrozenArrayMSyntheticFrontEnd(valobj_sp));
} else if (class_name == g_NSArray0) {
diff --git a/lldb/source/Plugins/Language/ObjC/NSDictionary.cpp b/lldb/source/Plugins/Language/ObjC/NSDictionary.cpp
index d8bf034e731b..326f47a10660 100644
--- a/lldb/source/Plugins/Language/ObjC/NSDictionary.cpp
+++ b/lldb/source/Plugins/Language/ObjC/NSDictionary.cpp
@@ -142,38 +142,6 @@ class NSDictionaryISyntheticFrontEnd : public SyntheticChildrenFrontEnd {
std::vector<DictionaryItemDescriptor> m_children;
};
-class NSConstantDictionarySyntheticFrontEnd : public SyntheticChildrenFrontEnd {
-public:
- NSConstantDictionarySyntheticFrontEnd(lldb::ValueObjectSP valobj_sp);
-
- size_t CalculateNumChildren() override;
-
- lldb::ValueObjectSP GetChildAtIndex(size_t idx) override;
-
- bool Update() override;
-
- bool MightHaveChildren() override;
-
- size_t GetIndexOfChildWithName(ConstString name) override;
-
-private:
- ExecutionContextRef m_exe_ctx_ref;
- CompilerType m_pair_type;
- uint8_t m_ptr_size = 8;
- lldb::ByteOrder m_order = lldb::eByteOrderInvalid;
- unsigned int m_size = 0;
- lldb::addr_t m_keys_ptr = LLDB_INVALID_ADDRESS;
- lldb::addr_t m_objects_ptr = LLDB_INVALID_ADDRESS;
-
- struct DictionaryItemDescriptor {
- lldb::addr_t key_ptr;
- lldb::addr_t val_ptr;
- lldb::ValueObjectSP valobj_sp;
- };
-
- std::vector<DictionaryItemDescriptor> m_children;
-};
-
class NSCFDictionarySyntheticFrontEnd : public SyntheticChildrenFrontEnd {
public:
NSCFDictionarySyntheticFrontEnd(lldb::ValueObjectSP valobj_sp);
@@ -448,7 +416,6 @@ bool lldb_private::formatters::NSDictionarySummaryProvider(
static const ConstString g_DictionaryCF("__CFDictionary");
static const ConstString g_DictionaryNSCF("__NSCFDictionary");
static const ConstString g_DictionaryCFRef("CFDictionaryRef");
- static const ConstString g_ConstantDictionary("NSConstantDictionary");
if (class_name.IsEmpty())
return false;
@@ -461,14 +428,8 @@ bool lldb_private::formatters::NSDictionarySummaryProvider(
return false;
value &= (is_64bit ? ~0xFC00000000000000UL : ~0xFC000000U);
- } else if (class_name == g_ConstantDictionary) {
- Status error;
- value = process_sp->ReadUnsignedIntegerFromMemory(
- valobj_addr + 2 * ptr_size, ptr_size, 0, error);
- if (error.Fail())
- return false;
- } else if (class_name == g_DictionaryM || class_name == g_DictionaryMLegacy ||
- class_name == g_DictionaryMFrozen) {
+ } else if (class_name == g_DictionaryM || class_name == g_DictionaryMLegacy
+ || class_name == g_DictionaryMFrozen) {
AppleObjCRuntime *apple_runtime =
llvm::dyn_cast_or_null<AppleObjCRuntime>(runtime);
Status error;
@@ -486,7 +447,8 @@ bool lldb_private::formatters::NSDictionarySummaryProvider(
value = 1;
} else if (class_name == g_Dictionary0) {
value = 0;
- } else if (class_name == g_DictionaryCF || class_name == g_DictionaryNSCF ||
+ } else if (class_name == g_DictionaryCF ||
+ class_name == g_DictionaryNSCF ||
class_name == g_DictionaryCFRef) {
ExecutionContext exe_ctx(process_sp);
CFBasicHash cfbh;
@@ -555,15 +517,12 @@ lldb_private::formatters::NSDictionarySyntheticFrontEndCreator(
static const ConstString g_DictionaryCF("__CFDictionary");
static const ConstString g_DictionaryNSCF("__NSCFDictionary");
static const ConstString g_DictionaryCFRef("CFDictionaryRef");
- static const ConstString g_ConstantDictionary("NSConstantDictionary");
if (class_name.IsEmpty())
return nullptr;
if (class_name == g_DictionaryI) {
return (new NSDictionaryISyntheticFrontEnd(valobj_sp));
- } else if (class_name == g_ConstantDictionary) {
- return (new NSConstantDictionarySyntheticFrontEnd(valobj_sp));
} else if (class_name == g_DictionaryM || class_name == g_DictionaryMFrozen) {
if (runtime->GetFoundationVersion() >= 1437) {
return (new Foundation1437::NSDictionaryMSyntheticFrontEnd(valobj_sp));
@@ -573,10 +532,11 @@ lldb_private::formatters::NSDictionarySyntheticFrontEndCreator(
return (new Foundation1100::NSDictionaryMSyntheticFrontEnd(valobj_sp));
}
} else if (class_name == g_DictionaryMLegacy) {
- return (new Foundation1100::NSDictionaryMSyntheticFrontEnd(valobj_sp));
+ return (new Foundation1100::NSDictionaryMSyntheticFrontEnd(valobj_sp));
} else if (class_name == g_Dictionary1) {
return (new NSDictionary1SyntheticFrontEnd(valobj_sp));
- } else if (class_name == g_DictionaryCF || class_name == g_DictionaryNSCF ||
+ } else if (class_name == g_DictionaryCF ||
+ class_name == g_DictionaryNSCF ||
class_name == g_DictionaryCFRef) {
return (new NSCFDictionarySyntheticFrontEnd(valobj_sp));
} else {
@@ -870,120 +830,6 @@ lldb_private::formatters::NSCFDictionarySyntheticFrontEnd::GetChildAtIndex(
return dict_item.valobj_sp;
}
-lldb_private::formatters::NSConstantDictionarySyntheticFrontEnd::
- NSConstantDictionarySyntheticFrontEnd(lldb::ValueObjectSP valobj_sp)
- : SyntheticChildrenFrontEnd(*valobj_sp) {}
-
-size_t lldb_private::formatters::NSConstantDictionarySyntheticFrontEnd::
- GetIndexOfChildWithName(ConstString name) {
- const char *item_name = name.GetCString();
- uint32_t idx = ExtractIndexFromString(item_name);
- if (idx < UINT32_MAX && idx >= CalculateNumChildren())
- return UINT32_MAX;
- return idx;
-}
-
-size_t lldb_private::formatters::NSConstantDictionarySyntheticFrontEnd::
- CalculateNumChildren() {
- return m_size;
-}
-
-bool lldb_private::formatters::NSConstantDictionarySyntheticFrontEnd::Update() {
- ValueObjectSP valobj_sp = m_backend.GetSP();
- if (!valobj_sp)
- return false;
- m_exe_ctx_ref = valobj_sp->GetExecutionContextRef();
- Status error;
- error.Clear();
- lldb::ProcessSP process_sp(valobj_sp->GetProcessSP());
- if (!process_sp)
- return false;
- m_ptr_size = process_sp->GetAddressByteSize();
- m_order = process_sp->GetByteOrder();
- uint64_t valobj_addr = valobj_sp->GetValueAsUnsigned(0);
- m_size = process_sp->ReadUnsignedIntegerFromMemory(
- valobj_addr + 2 * m_ptr_size, m_ptr_size, 0, error);
- if (error.Fail())
- return false;
- m_keys_ptr =
- process_sp->ReadPointerFromMemory(valobj_addr + 3 * m_ptr_size, error);
- if (error.Fail())
- return false;
- m_objects_ptr =
- process_sp->ReadPointerFromMemory(valobj_addr + 4 * m_ptr_size, error);
- return !error.Fail();
-}
-
-bool lldb_private::formatters::NSConstantDictionarySyntheticFrontEnd::
- MightHaveChildren() {
- return true;
-}
-
-lldb::ValueObjectSP lldb_private::formatters::
- NSConstantDictionarySyntheticFrontEnd::GetChildAtIndex(size_t idx) {
- uint32_t num_children = CalculateNumChildren();
-
- if (idx >= num_children)
- return lldb::ValueObjectSP();
-
- if (m_children.empty()) {
- // do the scan phase
- lldb::addr_t key_at_idx = 0, val_at_idx = 0;
- ProcessSP process_sp = m_exe_ctx_ref.GetProcessSP();
- if (!process_sp)
- return lldb::ValueObjectSP();
-
- for (unsigned int child = 0; child < num_children; ++child) {
- Status error;
- key_at_idx = process_sp->ReadPointerFromMemory(
- m_keys_ptr + child * m_ptr_size, error);
- if (error.Fail())
- return lldb::ValueObjectSP();
- val_at_idx = process_sp->ReadPointerFromMemory(
- m_objects_ptr + child * m_ptr_size, error);
- if (error.Fail())
- return lldb::ValueObjectSP();
- DictionaryItemDescriptor descriptor = {key_at_idx, val_at_idx,
- lldb::ValueObjectSP()};
- m_children.push_back(descriptor);
- }
- }
-
- if (idx >= m_children.size()) // should never happen
- return lldb::ValueObjectSP();
-
- DictionaryItemDescriptor &dict_item = m_children[idx];
- if (!dict_item.valobj_sp) {
- if (!m_pair_type.IsValid()) {
- TargetSP target_sp(m_backend.GetTargetSP());
- if (!target_sp)
- return ValueObjectSP();
- m_pair_type = GetLLDBNSPairType(target_sp);
- }
- if (!m_pair_type.IsValid())
- return ValueObjectSP();
-
- DataBufferSP buffer_sp(new DataBufferHeap(2 * m_ptr_size, 0));
-
- if (m_ptr_size == 8) {
- uint64_t *data_ptr = (uint64_t *)buffer_sp->GetBytes();
- *data_ptr = dict_item.key_ptr;
- *(data_ptr + 1) = dict_item.val_ptr;
- } else {
- uint32_t *data_ptr = (uint32_t *)buffer_sp->GetBytes();
- *data_ptr = dict_item.key_ptr;
- *(data_ptr + 1) = dict_item.val_ptr;
- }
-
- StreamString idx_name;
- idx_name.Printf("[%" PRIu64 "]", (uint64_t)idx);
- DataExtractor data(buffer_sp, m_order, m_ptr_size);
- dict_item.valobj_sp = CreateValueObjectFromData(idx_name.GetString(), data,
- m_exe_ctx_ref, m_pair_type);
- }
- return dict_item.valobj_sp;
-}
-
lldb_private::formatters::NSDictionary1SyntheticFrontEnd::
NSDictionary1SyntheticFrontEnd(lldb::ValueObjectSP valobj_sp)
: SyntheticChildrenFrontEnd(*valobj_sp.get()), m_pair(nullptr) {}
diff --git a/lldb/source/Plugins/Language/ObjC/ObjCLanguage.cpp b/lldb/source/Plugins/Language/ObjC/ObjCLanguage.cpp
index 613b2fb2d8a5..379c53432b7b 100644
--- a/lldb/source/Plugins/Language/ObjC/ObjCLanguage.cpp
+++ b/lldb/source/Plugins/Language/ObjC/ObjCLanguage.cpp
@@ -403,9 +403,6 @@ static void LoadObjCFormatters(TypeCategoryImplSP objc_category_sp) {
AddCXXSummary(
objc_category_sp, lldb_private::formatters::NSArraySummaryProvider,
"NSArray summary provider", ConstString("NSArray"), appkit_flags);
- AddCXXSummary(
- objc_category_sp, lldb_private::formatters::NSArraySummaryProvider,
- "NSArray summary provider", ConstString("NSConstantArray"), appkit_flags);
AddCXXSummary(
objc_category_sp, lldb_private::formatters::NSArraySummaryProvider,
"NSArray summary provider", ConstString("NSMutableArray"), appkit_flags);
@@ -440,10 +437,6 @@ static void LoadObjCFormatters(TypeCategoryImplSP objc_category_sp) {
lldb_private::formatters::NSDictionarySummaryProvider<false>,
"NSDictionary summary provider", ConstString("NSDictionary"),
appkit_flags);
- AddCXXSummary(objc_category_sp,
- lldb_private::formatters::NSDictionarySummaryProvider<false>,
- "NSDictionary summary provider",
- ConstString("NSConstantDictionary"), appkit_flags);
AddCXXSummary(objc_category_sp,
lldb_private::formatters::NSDictionarySummaryProvider<false>,
"NSDictionary summary provider",
@@ -550,10 +543,6 @@ static void LoadObjCFormatters(TypeCategoryImplSP objc_category_sp) {
lldb_private::formatters::NSArraySyntheticFrontEndCreator,
"NSArray synthetic children", ConstString("NSArray"),
ScriptedSyntheticChildren::Flags());
- AddCXXSynthetic(objc_category_sp,
- lldb_private::formatters::NSArraySyntheticFrontEndCreator,
- "NSArray synthetic children", ConstString("NSConstantArray"),
- ScriptedSyntheticChildren::Flags());
AddCXXSynthetic(objc_category_sp,
lldb_private::formatters::NSArraySyntheticFrontEndCreator,
"NSArray synthetic children", ConstString("NSMutableArray"),
@@ -581,11 +570,6 @@ static void LoadObjCFormatters(TypeCategoryImplSP objc_category_sp) {
lldb_private::formatters::NSDictionarySyntheticFrontEndCreator,
"NSDictionary synthetic children", ConstString("__NSDictionaryM"),
ScriptedSyntheticChildren::Flags());
- AddCXXSynthetic(
- objc_category_sp,
- lldb_private::formatters::NSDictionarySyntheticFrontEndCreator,
- "NSDictionary synthetic children", ConstString("NSConstantDictionary"),
- ScriptedSyntheticChildren::Flags());
AddCXXSynthetic(
objc_category_sp,
lldb_private::formatters::NSDictionarySyntheticFrontEndCreator,
@@ -807,18 +791,6 @@ static void LoadObjCFormatters(TypeCategoryImplSP objc_category_sp) {
AddCXXSummary(
objc_category_sp, lldb_private::formatters::NSNumberSummaryProvider,
"NSNumber summary provider", ConstString("NSNumber"), appkit_flags);
- AddCXXSummary(objc_category_sp,
- lldb_private::formatters::NSNumberSummaryProvider,
- "NSNumber summary provider",
- ConstString("NSConstantIntegerNumber"), appkit_flags);
- AddCXXSummary(objc_category_sp,
- lldb_private::formatters::NSNumberSummaryProvider,
- "NSNumber summary provider",
- ConstString("NSConstantDoubleNumber"), appkit_flags);
- AddCXXSummary(objc_category_sp,
- lldb_private::formatters::NSNumberSummaryProvider,
- "NSNumber summary provider",
- ConstString("NSConstantFloatNumber"), appkit_flags);
AddCXXSummary(
objc_category_sp, lldb_private::formatters::NSNumberSummaryProvider,
"CFNumberRef summary provider", ConstString("CFNumberRef"), appkit_flags);
diff --git a/lldb/test/API/functionalities/data-formatter/data-formatter-objc/ObjCDataFormatterTestCase.py b/lldb/test/API/functionalities/data-formatter/data-formatter-objc/ObjCDataFormatterTestCase.py
index db7f823493f1..c31af352037f 100644
--- a/lldb/test/API/functionalities/data-formatter/data-formatter-objc/ObjCDataFormatterTestCase.py
+++ b/lldb/test/API/functionalities/data-formatter/data-formatter-objc/ObjCDataFormatterTestCase.py
@@ -14,19 +14,8 @@ class ObjCDataFormatterTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- def appkit_tester_impl(self, commands, use_constant_classes):
- if use_constant_classes:
- self.build()
- else:
- disable_constant_classes = {
- 'CC':
- 'xcrun clang', # FIXME: Remove when flags are available upstream.
- 'CFLAGS_EXTRAS':
- '-fno-constant-nsnumber-literals ' +
- '-fno-constant-nsarray-literals ' +
- '-fno-constant-nsdictionary-literals'
- }
- self.build(dictionary=disable_constant_classes)
+ def appkit_tester_impl(self, commands):
+ self.build()
self.appkit_common_data_formatters_command()
commands()
diff --git a/lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSBundle.py b/lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSBundle.py
index 84fd49b07b86..673366fcbb3e 100644
--- a/lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSBundle.py
+++ b/lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSBundle.py
@@ -16,12 +16,7 @@ class ObjCDataFormatterNSBundle(ObjCDataFormatterTestCase):
def test_nsbundle_with_run_command(self):
"""Test formatters for NSBundle."""
- self.appkit_tester_impl(self.nsbundle_data_formatter_commands, True)
-
- @skipUnlessDarwin
- def test_nsbundle_with_run_command_no_sonct(self):
- """Test formatters for NSBundle."""
- self.appkit_tester_impl(self.nsbundle_data_formatter_commands, False)
+ self.appkit_tester_impl(self.nsbundle_data_formatter_commands)
def nsbundle_data_formatter_commands(self):
self.expect(
diff --git a/lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSContainer.py b/lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSContainer.py
index 375aefe36422..26ebf28929ff 100644
--- a/lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSContainer.py
+++ b/lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSContainer.py
@@ -16,7 +16,7 @@ class ObjCDataFormatterNSContainer(ObjCDataFormatterTestCase):
def test_nscontainers_with_run_command(self):
"""Test formatters for NS container classes."""
- self.appkit_tester_impl(self.nscontainers_data_formatter_commands, False)
+ self.appkit_tester_impl(self.nscontainers_data_formatter_commands)
def nscontainers_data_formatter_commands(self):
self.expect(
diff --git a/lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSData.py b/lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSData.py
index 846e1d9bb69a..f1c5554eebfb 100644
--- a/lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSData.py
+++ b/lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSData.py
@@ -16,12 +16,7 @@ class ObjCDataFormatterNSData(ObjCDataFormatterTestCase):
def test_nsdata_with_run_command(self):
"""Test formatters for NSData."""
- self.appkit_tester_impl(self.nsdata_data_formatter_commands, True)
-
- @skipUnlessDarwin
- def test_nsdata_with_run_command_no_const(self):
- """Test formatters for NSData."""
- self.appkit_tester_impl(self.nsdata_data_formatter_commands, False)
+ self.appkit_tester_impl(self.nsdata_data_formatter_commands)
def nsdata_data_formatter_commands(self):
self.expect(
diff --git a/lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSDate.py b/lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSDate.py
index 06996b1c151b..622bb4a327ed 100644
--- a/lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSDate.py
+++ b/lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSDate.py
@@ -17,7 +17,7 @@ class ObjCDataFormatterNSDate(ObjCDataFormatterTestCase):
def test_nsdate_with_run_command(self):
"""Test formatters for NSDate."""
- self.appkit_tester_impl(self.nsdate_data_formatter_commands, False)
+ self.appkit_tester_impl(self.nsdate_data_formatter_commands)
def nsdate_data_formatter_commands(self):
self.expect(
diff --git a/lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSError.py b/lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSError.py
index 8a3773a590ea..92f1f46deba4 100644
--- a/lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSError.py
+++ b/lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSError.py
@@ -16,12 +16,7 @@ class ObjCDataFormatterNSError(ObjCDataFormatterTestCase):
def test_nserror_with_run_command(self):
"""Test formatters for NSError."""
- self.appkit_tester_impl(self.nserror_data_formatter_commands, True)
-
- @skipUnlessDarwin
- def test_nserror_with_run_command_no_const(self):
- """Test formatters for NSError."""
- self.appkit_tester_impl(self.nserror_data_formatter_commands, False)
+ self.appkit_tester_impl(self.nserror_data_formatter_commands)
def nserror_data_formatter_commands(self):
self.expect(
diff --git a/lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSNumber.py b/lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSNumber.py
deleted file mode 100644
index 47e272d4fe2e..000000000000
--- a/lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSNumber.py
+++ /dev/null
@@ -1,67 +0,0 @@
-# encoding: utf-8
-"""
-Test lldb data formatter subsystem.
-"""
-
-from __future__ import print_function
-
-import lldb
-from lldbsuite.test.decorators import *
-from lldbsuite.test.lldbtest import *
-from lldbsuite.test import lldbutil
-
-from ObjCDataFormatterTestCase import ObjCDataFormatterTestCase
-
-
-class ObjCDataFormatterNSNumber(ObjCDataFormatterTestCase):
-
- @skipUnlessDarwin
- def test_nsnumber_with_run_command(self):
- """Test formatters for NS container classes."""
- self.appkit_tester_impl(self.nscontainers_data_formatter_commands, True)
-
- @skipUnlessDarwin
- def test_nsnumber_with_run_command_no_const(self):
- """Test formatters for NS container classes."""
- self.appkit_tester_impl(self.nscontainers_data_formatter_commands, False)
-
- def nscontainers_data_formatter_commands(self):
- self.expect(
- 'frame variable newArray nsDictionary newDictionary nscfDictionary cfDictionaryRef newMutableDictionary cfarray_ref mutable_array_ref',
- substrs=[
- '(NSArray *) newArray = ', '@"50 elements"',
- '(NSDictionary *) nsDictionary = ', ' 2 key/value pairs',
- '(NSDictionary *) newDictionary = ', ' 12 key/value pairs',
- '(CFDictionaryRef) cfDictionaryRef = ', ' 2 key/value pairs',
- '(NSDictionary *) newMutableDictionary = ', ' 21 key/value pairs',
- '(CFArrayRef) cfarray_ref = ', '@"3 elements"',
- '(CFMutableArrayRef) mutable_array_ref = ', '@"11 elements"'
- ])
-
- numbers = [ ("num1", "(int)5"),
- ("num2", "(float)3.140000"),
- ("num3", "(double)3.14"),
- ("num4", "(int128_t)18446744073709551614"),
- ("num5", "(char)65"),
- ("num6", "(long)255"),
- ("num7", "(long)2000000"),
- ("num8_Y", "YES"),
- ("num8_N", "NO"),
- ("num9", "(short)-31616"),
- ("num_at1", "(int)12"),
- ("num_at2", "(int)-12"),
- ("num_at3", "(double)12.5"),
- ("num_at4", "(double)-12.5"),
- ("num_at5", "(char)97"),
- ("num_at6", "(float)42.123"),
- ("num_at7", "(double)43.123"),
- ("num_at8", "(long)12345"),
- ("num_at9", "17375808098308635870"),
- ("num_at9b", "-1070935975400915746"),
- ("num_at10", "YES"),
- ("num_at11", "NO"),
- ]
-
- for var, res in numbers:
- self.expect('frame variable ' + var, substrs=[res])
-
diff --git a/lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSURL.py b/lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSURL.py
index c16e0986b082..b746c4907236 100644
--- a/lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSURL.py
+++ b/lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCNSURL.py
@@ -16,12 +16,7 @@ class ObjCDataFormatterNSURL(ObjCDataFormatterTestCase):
def test_nsurl_with_run_command(self):
"""Test formatters for NSURL."""
- self.appkit_tester_impl(self.nsurl_data_formatter_commands, True)
-
- @skipUnlessDarwin
- def test_nsurl_with_run_command_no_const(self):
- """Test formatters for NSURL."""
- self.appkit_tester_impl(self.nsurl_data_formatter_commands, False)
+ self.appkit_tester_impl(self.nsurl_data_formatter_commands)
def nsurl_data_formatter_commands(self):
self.expect(
diff --git a/lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjNSException.py b/lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjNSException.py
index 664425d05f05..cf4144458dde 100644
--- a/lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjNSException.py
+++ b/lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjNSException.py
@@ -16,12 +16,7 @@ class ObjCDataFormatterNSException(ObjCDataFormatterTestCase):
def test_nsexception_with_run_command(self):
"""Test formatters for NSException."""
- self.appkit_tester_impl(self.nsexception_data_formatter_commands, True)
-
- @skipUnlessDarwin
- def test_nsexception_with_run_command_no_const(self):
- """Test formatters for NSException."""
- self.appkit_tester_impl(self.nsexception_data_formatter_commands, False)
+ self.appkit_tester_impl(self.nsexception_data_formatter_commands)
def nsexception_data_formatter_commands(self):
self.expect(
diff --git a/lldb/test/API/functionalities/data-formatter/data-formatter-objc/main.m b/lldb/test/API/functionalities/data-formatter/data-formatter-objc/main.m
index 0ca5cf98bd3a..e1e6d1a1b759 100644
--- a/lldb/test/API/functionalities/data-formatter/data-formatter-objc/main.m
+++ b/lldb/test/API/functionalities/data-formatter/data-formatter-objc/main.m
@@ -154,14 +154,6 @@ int main(int argc, const char *argv[]) {
NSNumber *num_at2 = @-12;
NSNumber *num_at3 = @12.5;
NSNumber *num_at4 = @-12.5;
- NSNumber *num_at5 = @'a';
- NSNumber *num_at6 = @42.123f;
- NSNumber *num_at7 = @43.123;
- NSNumber *num_at8 = @12345ll;
- NSNumber *num_at9 = @0xF1234567890abcdeull;
- NSNumber *num_at9b = @-1070935975400915746;
- NSNumber *num_at10 = @YES;
- NSNumber *num_at11 = @NO;
NSDecimalNumber *decimal_number =
[NSDecimalNumber decimalNumberWithMantissa:123456
diff --git a/lldb/test/API/functionalities/data-formatter/nsdictionarysynth/TestNSDictionarySynthetic.py b/lldb/test/API/functionalities/data-formatter/nsdictionarysynth/TestNSDictionarySynthetic.py
index eb54f53bd811..b77d01a8086c 100644
--- a/lldb/test/API/functionalities/data-formatter/nsdictionarysynth/TestNSDictionarySynthetic.py
+++ b/lldb/test/API/functionalities/data-formatter/nsdictionarysynth/TestNSDictionarySynthetic.py
@@ -24,23 +24,6 @@ def setUp(self):
def test_rdar11988289_with_run_command(self):
"""Test that NSDictionary reports its synthetic children properly."""
self.build()
- self.run_tests()
-
- @skipUnlessDarwin
- def test_rdar11988289_with_run_command_no_const(self):
- """Test that NSDictionary reports its synthetic children properly."""
- disable_constant_classes = {
- 'CC':
- 'xcrun clang', # FIXME: Remove when flags are available upstream.
- 'CFLAGS_EXTRAS':
- '-fno-constant-nsnumber-literals ' +
- '-fno-constant-nsarray-literals ' +
- '-fno-constant-nsdictionary-literals'
- }
- self.build(dictionary=disable_constant_classes)
- self.run_tests()
-
- def run_tests(self):
self.runCmd("file " + self.getBuildArtifact("a.out"), CURRENT_EXECUTABLE_SET)
lldbutil.run_break_set_by_file_and_line(
diff --git a/lldb/test/API/functionalities/data-formatter/nssetsynth/TestNSSetSynthetic.py b/lldb/test/API/functionalities/data-formatter/nssetsynth/TestNSSetSynthetic.py
index 219ed2c3aacb..feac24be836d 100644
--- a/lldb/test/API/functionalities/data-formatter/nssetsynth/TestNSSetSynthetic.py
+++ b/lldb/test/API/functionalities/data-formatter/nssetsynth/TestNSSetSynthetic.py
@@ -24,23 +24,6 @@ def setUp(self):
def test_rdar12529957_with_run_command(self):
"""Test that NSSet reports its synthetic children properly."""
self.build()
- self.run_tests()
-
- @skipUnlessDarwin
- def test_rdar12529957_with_run_command_no_const(self):
- """Test that NSSet reports its synthetic children properly."""
- disable_constant_classes = {
- 'CC':
- 'xcrun clang', # FIXME: Remove when flags are available upstream.
- 'CFLAGS_EXTRAS':
- '-fno-constant-nsnumber-literals ' +
- '-fno-constant-nsarray-literals ' +
- '-fno-constant-nsdictionary-literals'
- }
- self.build(dictionary=disable_constant_classes)
- self.run_tests()
-
- def run_tests(self):
self.runCmd("file " + self.getBuildArtifact("a.out"), CURRENT_EXECUTABLE_SET)
lldbutil.run_break_set_by_file_and_line(
diff --git a/lldb/test/API/functionalities/data-formatter/poarray/TestPrintObjectArray.py b/lldb/test/API/functionalities/data-formatter/poarray/TestPrintObjectArray.py
index 3fcb2794b952..626e6cd16e8f 100644
--- a/lldb/test/API/functionalities/data-formatter/poarray/TestPrintObjectArray.py
+++ b/lldb/test/API/functionalities/data-formatter/poarray/TestPrintObjectArray.py
@@ -20,20 +20,6 @@ def test_print_array(self):
self.build()
self.printarray_data_formatter_commands()
- @skipUnlessDarwin
- def test_print_array_no_const(self):
- """Test that expr -O -Z works"""
- disable_constant_classes = {
- 'CC':
- 'xcrun clang', # FIXME: Remove when flags are available upstream.
- 'CFLAGS_EXTRAS':
- '-fno-constant-nsnumber-literals ' +
- '-fno-constant-nsarray-literals ' +
- '-fno-constant-nsdictionary-literals'
- }
- self.build(dictionary=disable_constant_classes)
- self.printarray_data_formatter_commands()
-
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
diff --git a/lldb/test/API/lang/objc/orderedset/TestOrderedSet.py b/lldb/test/API/lang/objc/orderedset/TestOrderedSet.py
index ac7af265b27c..80cb97a9d108 100644
--- a/lldb/test/API/lang/objc/orderedset/TestOrderedSet.py
+++ b/lldb/test/API/lang/objc/orderedset/TestOrderedSet.py
@@ -8,22 +8,6 @@ class TestOrderedSet(TestBase):
def test_ordered_set(self):
self.build()
- self.run_tests()
-
- @skipUnlessDarwin
- def test_ordered_set_no_const(self):
- disable_constant_classes = {
- 'CC':
- 'xcrun clang', # FIXME: Remove when flags are available upstream.
- 'CFLAGS_EXTRAS':
- '-fno-constant-nsnumber-literals ' +
- '-fno-constant-nsarray-literals ' +
- '-fno-constant-nsdictionary-literals'
- }
- self.build(dictionary=disable_constant_classes)
- self.run_tests()
-
- def run_tests(self):
src_file = "main.m"
src_file_spec = lldb.SBFileSpec(src_file)
(target, process, thread, main_breakpoint) = lldbutil.run_to_source_breakpoint(self,
diff --git a/lldb/test/API/lang/objc/single-entry-dictionary/TestObjCSingleEntryDictionary.py b/lldb/test/API/lang/objc/single-entry-dictionary/TestObjCSingleEntryDictionary.py
index 88d2536a1618..d50cbb39246b 100644
--- a/lldb/test/API/lang/objc/single-entry-dictionary/TestObjCSingleEntryDictionary.py
+++ b/lldb/test/API/lang/objc/single-entry-dictionary/TestObjCSingleEntryDictionary.py
@@ -21,27 +21,9 @@ def setUp(self):
# Find the line number to break inside main().
self.line = line_number('main.m', '// break here')
- @skipUnlessDarwin
@expectedFailureAll(oslist=['watchos'], bugnumber="rdar://problem/34642736") # bug in NSDictionary formatting on watchos
def test_single_entry_dict(self):
self.build()
- self.run_tests()
-
- @skipUnlessDarwin
- @expectedFailureAll(oslist=['watchos'], bugnumber="rdar://problem/34642736") # bug in NSDictionary formatting on watchos
- def test_single_entry_dict_no_const(self):
- disable_constant_classes = {
- 'CC':
- 'xcrun clang', # FIXME: Remove when flags are available upstream.
- 'CFLAGS_EXTRAS':
- '-fno-constant-nsnumber-literals ' +
- '-fno-constant-nsarray-literals ' +
- '-fno-constant-nsdictionary-literals'
- }
- self.build(dictionary=disable_constant_classes)
- self.run_tests()
-
- def run_tests(self):
exe = self.getBuildArtifact("a.out")
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
More information about the lldb-commits
mailing list