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) _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits