From 9388c4703ba84f7a76472492e6424fa3b64e5331 Mon Sep 17 00:00:00 2001 From: Jonas Devlieghere Date: Fri, 5 Apr 2019 22:06:53 +0000 Subject: [PATCH] [testsuite] Split Objective-C new syntax test This splits the second longest test into separate test cases. Similar to what we did for the Objective-C data formatters in r357786. llvm-svn: 357824 --- .../lang/objc/objc-new-syntax/ObjCNewSyntaxTest.py | 29 +++ .../lang/objc/objc-new-syntax/TestObjCNewSyntax.py | 204 --------------------- .../objc/objc-new-syntax/TestObjCNewSyntaxArray.py | 59 ++++++ .../objc-new-syntax/TestObjCNewSyntaxDictionary.py | 58 ++++++ .../objc-new-syntax/TestObjCNewSyntaxLiteral.py | 79 ++++++++ 5 files changed, 225 insertions(+), 204 deletions(-) create mode 100644 lldb/packages/Python/lldbsuite/test/lang/objc/objc-new-syntax/ObjCNewSyntaxTest.py delete mode 100644 lldb/packages/Python/lldbsuite/test/lang/objc/objc-new-syntax/TestObjCNewSyntax.py create mode 100644 lldb/packages/Python/lldbsuite/test/lang/objc/objc-new-syntax/TestObjCNewSyntaxArray.py create mode 100644 lldb/packages/Python/lldbsuite/test/lang/objc/objc-new-syntax/TestObjCNewSyntaxDictionary.py create mode 100644 lldb/packages/Python/lldbsuite/test/lang/objc/objc-new-syntax/TestObjCNewSyntaxLiteral.py diff --git a/lldb/packages/Python/lldbsuite/test/lang/objc/objc-new-syntax/ObjCNewSyntaxTest.py b/lldb/packages/Python/lldbsuite/test/lang/objc/objc-new-syntax/ObjCNewSyntaxTest.py new file mode 100644 index 0000000..5fa9336 --- /dev/null +++ b/lldb/packages/Python/lldbsuite/test/lang/objc/objc-new-syntax/ObjCNewSyntaxTest.py @@ -0,0 +1,29 @@ +"""Test that the Objective-C syntax for dictionary/array literals and indexing works""" + +import lldb +from lldbsuite.test.decorators import * +from lldbsuite.test.lldbtest import * +from lldbsuite.test import lldbutil + + +class ObjCNewSyntaxTest(TestBase): + + mydir = TestBase.compute_mydir(__file__) + + def runToBreakpoint(self): + self.build() + self.target, process, thread, bkpt = lldbutil.run_to_source_breakpoint( + self, '// Set breakpoint 0 here.', lldb.SBFileSpec( + 'main.m', False)) + + # The stop reason of the thread should be breakpoint. + self.expect( + "thread list", + STOPPED_DUE_TO_BREAKPOINT, + substrs=['stopped', 'stop reason = breakpoint']) + + # The breakpoint should have a hit count of 1. + self.expect( + "breakpoint list -f", + BREAKPOINT_HIT_ONCE, + substrs=[' resolved, hit count = 1']) diff --git a/lldb/packages/Python/lldbsuite/test/lang/objc/objc-new-syntax/TestObjCNewSyntax.py b/lldb/packages/Python/lldbsuite/test/lang/objc/objc-new-syntax/TestObjCNewSyntax.py deleted file mode 100644 index 7425634..0000000 --- a/lldb/packages/Python/lldbsuite/test/lang/objc/objc-new-syntax/TestObjCNewSyntax.py +++ /dev/null @@ -1,204 +0,0 @@ -"""Test that the Objective-C syntax for dictionary/array literals and indexing works""" - -from __future__ import print_function - - -import unittest2 -import os -import time -import platform - -from distutils.version import StrictVersion - -import lldb -from lldbsuite.test.decorators import * -from lldbsuite.test.lldbtest import * -from lldbsuite.test import lldbutil - - -class ObjCNewSyntaxTestCase(TestBase): - - mydir = TestBase.compute_mydir(__file__) - - def setUp(self): - # Call super's setUp(). - TestBase.setUp(self) - # Find the line number to break inside main(). - self.line = line_number('main.m', '// Set breakpoint 0 here.') - - def runToBreakpoint(self): - self.build() - exe = self.getBuildArtifact("a.out") - self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET) - - # Break inside the foo function which takes a bar_ptr argument. - lldbutil.run_break_set_by_file_and_line( - self, "main.m", self.line, num_expected_locations=1, loc_exact=True) - - self.runCmd("run", RUN_SUCCEEDED) - - # The stop reason of the thread should be breakpoint. - self.expect("thread list", STOPPED_DUE_TO_BREAKPOINT, - substrs=['stopped', - 'stop reason = breakpoint']) - - # The breakpoint should have a hit count of 1. - self.expect("breakpoint list -f", BREAKPOINT_HIT_ONCE, - substrs=[' resolved, hit count = 1']) - - @skipUnlessDarwin - @skipIf(macos_version=["<", "10.12"]) - @expectedFailureAll(archs=["i[3-6]86"]) - def test_read_array(self): - self.runToBreakpoint() - - self.expect( - "expr --object-description -- immutable_array[0]", - VARIABLES_DISPLAYED_CORRECTLY, - substrs=["foo"]) - - self.expect( - "expr --object-description -- mutable_array[0]", - VARIABLES_DISPLAYED_CORRECTLY, - substrs=["foo"]) - - @skipUnlessDarwin - @skipIf(macos_version=["<", "10.12"]) - @expectedFailureAll(archs=["i[3-6]86"]) - def test_update_array(self): - self.runToBreakpoint() - - self.expect( - "expr --object-description -- mutable_array[0] = @\"bar\"", - VARIABLES_DISPLAYED_CORRECTLY, - substrs=["bar"]) - - self.expect( - "expr --object-description -- mutable_array[0]", - VARIABLES_DISPLAYED_CORRECTLY, - substrs=["bar"]) - - @skipUnlessDarwin - @skipIf(macos_version=["<", "10.12"]) - @expectedFailureAll(archs=["i[3-6]86"]) - def test_read_dictionary(self): - self.runToBreakpoint() - - self.expect( - "expr --object-description -- immutable_dictionary[@\"key\"]", - VARIABLES_DISPLAYED_CORRECTLY, - substrs=["value"]) - - self.expect( - "expr --object-description -- mutable_dictionary[@\"key\"]", - VARIABLES_DISPLAYED_CORRECTLY, - substrs=["value"]) - - @skipUnlessDarwin - @skipIf(macos_version=["<", "10.12"]) - @expectedFailureAll(archs=["i[3-6]86"]) - def test_update_dictionary(self): - self.runToBreakpoint() - - self.expect( - "expr --object-description -- mutable_dictionary[@\"key\"] = @\"object\"", - VARIABLES_DISPLAYED_CORRECTLY, - substrs=["object"]) - - self.expect( - "expr --object-description -- mutable_dictionary[@\"key\"]", - VARIABLES_DISPLAYED_CORRECTLY, - substrs=["object"]) - - @skipUnlessDarwin - @skipIf(macos_version=["<", "10.12"]) - @expectedFailureAll(archs=["i[3-6]86"]) - def test_array_literal(self): - self.runToBreakpoint() - - self.expect( - "expr --object-description -- @[ @\"foo\", @\"bar\" ]", - VARIABLES_DISPLAYED_CORRECTLY, - substrs=[ - "NSArray", - "foo", - "bar"]) - - @skipUnlessDarwin - @skipIf(macos_version=["<", "10.12"]) - @expectedFailureAll(archs=["i[3-6]86"]) - def test_dictionary_literal(self): - self.runToBreakpoint() - - self.expect( - "expr --object-description -- @{ @\"key\" : @\"object\" }", - VARIABLES_DISPLAYED_CORRECTLY, - substrs=[ - "key", - "object"]) - - @skipUnlessDarwin - @skipIf(macos_version=["<", "10.12"]) - @expectedFailureAll(archs=["i[3-6]86"]) - def test_char_literal(self): - self.runToBreakpoint() - - self.expect("expr --object-description -- @'a'", - VARIABLES_DISPLAYED_CORRECTLY, substrs=[str(ord('a'))]) - - @skipUnlessDarwin - @skipIf(macos_version=["<", "10.12"]) - @expectedFailureAll(archs=["i[3-6]86"]) - def test_integer_literals(self): - self.runToBreakpoint() - - self.expect( - "expr --object-description -- @1", - VARIABLES_DISPLAYED_CORRECTLY, - substrs=["1"]) - - self.expect( - "expr --object-description -- @1l", - VARIABLES_DISPLAYED_CORRECTLY, - substrs=["1"]) - - self.expect( - "expr --object-description -- @1ul", - VARIABLES_DISPLAYED_CORRECTLY, - substrs=["1"]) - - self.expect( - "expr --object-description -- @1ll", - VARIABLES_DISPLAYED_CORRECTLY, - substrs=["1"]) - - self.expect( - "expr --object-description -- @1ull", - VARIABLES_DISPLAYED_CORRECTLY, - substrs=["1"]) - - @skipUnlessDarwin - @skipIf(macos_version=["<", "10.12"]) - @expectedFailureAll(archs=["i[3-6]86"]) - def test_float_literal(self): - self.runToBreakpoint() - - self.expect("expr -- @123.45", VARIABLES_DISPLAYED_CORRECTLY, - substrs=["NSNumber", "123.45"]) - - @skipUnlessDarwin - @skipIf(macos_version=["<", "10.12"]) - @expectedFailureAll(archs=["i[3-6]86"]) - def test_expressions_in_literals(self): - self.runToBreakpoint() - - self.expect( - "expr --object-description -- @( 1 + 3 )", - VARIABLES_DISPLAYED_CORRECTLY, - substrs=["4"]) - self.expect( - "expr -- @((char*)\"Hello world\" + 6)", - VARIABLES_DISPLAYED_CORRECTLY, - substrs=[ - "NSString", - "world"]) diff --git a/lldb/packages/Python/lldbsuite/test/lang/objc/objc-new-syntax/TestObjCNewSyntaxArray.py b/lldb/packages/Python/lldbsuite/test/lang/objc/objc-new-syntax/TestObjCNewSyntaxArray.py new file mode 100644 index 0000000..95deaf6 --- /dev/null +++ b/lldb/packages/Python/lldbsuite/test/lang/objc/objc-new-syntax/TestObjCNewSyntaxArray.py @@ -0,0 +1,59 @@ +"""Test that the Objective-C syntax for dictionary/array literals and indexing works""" + +from __future__ import print_function + +import lldb +from lldbsuite.test.decorators import * +from lldbsuite.test.lldbtest import * +from lldbsuite.test import lldbutil + +from ObjCNewSyntaxTest import ObjCNewSyntaxTest + + +class ObjCNewSyntaxTestCaseArray(ObjCNewSyntaxTest): + + @skipUnlessDarwin + @skipIf(macos_version=["<", "10.12"]) + @expectedFailureAll(archs=["i[3-6]86"]) + def test_read_array(self): + self.runToBreakpoint() + + self.expect( + "expr --object-description -- immutable_array[0]", + VARIABLES_DISPLAYED_CORRECTLY, + substrs=["foo"]) + + self.expect( + "expr --object-description -- mutable_array[0]", + VARIABLES_DISPLAYED_CORRECTLY, + substrs=["foo"]) + + @skipUnlessDarwin + @skipIf(macos_version=["<", "10.12"]) + @expectedFailureAll(archs=["i[3-6]86"]) + def test_update_array(self): + self.runToBreakpoint() + + self.expect( + "expr --object-description -- mutable_array[0] = @\"bar\"", + VARIABLES_DISPLAYED_CORRECTLY, + substrs=["bar"]) + + self.expect( + "expr --object-description -- mutable_array[0]", + VARIABLES_DISPLAYED_CORRECTLY, + substrs=["bar"]) + + @skipUnlessDarwin + @skipIf(macos_version=["<", "10.12"]) + @expectedFailureAll(archs=["i[3-6]86"]) + def test_array_literal(self): + self.runToBreakpoint() + + self.expect( + "expr --object-description -- @[ @\"foo\", @\"bar\" ]", + VARIABLES_DISPLAYED_CORRECTLY, + substrs=[ + "NSArray", + "foo", + "bar"]) diff --git a/lldb/packages/Python/lldbsuite/test/lang/objc/objc-new-syntax/TestObjCNewSyntaxDictionary.py b/lldb/packages/Python/lldbsuite/test/lang/objc/objc-new-syntax/TestObjCNewSyntaxDictionary.py new file mode 100644 index 0000000..0cb26bb --- /dev/null +++ b/lldb/packages/Python/lldbsuite/test/lang/objc/objc-new-syntax/TestObjCNewSyntaxDictionary.py @@ -0,0 +1,58 @@ +"""Test that the Objective-C syntax for dictionary/array literals and indexing works""" + +from __future__ import print_function + +import lldb +from lldbsuite.test.decorators import * +from lldbsuite.test.lldbtest import * +from lldbsuite.test import lldbutil + +from ObjCNewSyntaxTest import ObjCNewSyntaxTest + + +class ObjCNewSyntaxTestCaseDictionary(ObjCNewSyntaxTest): + + @skipUnlessDarwin + @skipIf(macos_version=["<", "10.12"]) + @expectedFailureAll(archs=["i[3-6]86"]) + def test_read_dictionary(self): + self.runToBreakpoint() + + self.expect( + "expr --object-description -- immutable_dictionary[@\"key\"]", + VARIABLES_DISPLAYED_CORRECTLY, + substrs=["value"]) + + self.expect( + "expr --object-description -- mutable_dictionary[@\"key\"]", + VARIABLES_DISPLAYED_CORRECTLY, + substrs=["value"]) + + @skipUnlessDarwin + @skipIf(macos_version=["<", "10.12"]) + @expectedFailureAll(archs=["i[3-6]86"]) + def test_update_dictionary(self): + self.runToBreakpoint() + + self.expect( + "expr --object-description -- mutable_dictionary[@\"key\"] = @\"object\"", + VARIABLES_DISPLAYED_CORRECTLY, + substrs=["object"]) + + self.expect( + "expr --object-description -- mutable_dictionary[@\"key\"]", + VARIABLES_DISPLAYED_CORRECTLY, + substrs=["object"]) + + @skipUnlessDarwin + @skipIf(macos_version=["<", "10.12"]) + @expectedFailureAll(archs=["i[3-6]86"]) + def test_dictionary_literal(self): + self.runToBreakpoint() + + self.expect( + "expr --object-description -- @{ @\"key\" : @\"object\" }", + VARIABLES_DISPLAYED_CORRECTLY, + substrs=[ + "key", + "object"]) diff --git a/lldb/packages/Python/lldbsuite/test/lang/objc/objc-new-syntax/TestObjCNewSyntaxLiteral.py b/lldb/packages/Python/lldbsuite/test/lang/objc/objc-new-syntax/TestObjCNewSyntaxLiteral.py new file mode 100644 index 0000000..6516530 --- /dev/null +++ b/lldb/packages/Python/lldbsuite/test/lang/objc/objc-new-syntax/TestObjCNewSyntaxLiteral.py @@ -0,0 +1,79 @@ +"""Test that the Objective-C syntax for dictionary/array literals and indexing works""" + +from __future__ import print_function + +import lldb +from lldbsuite.test.decorators import * +from lldbsuite.test.lldbtest import * +from lldbsuite.test import lldbutil + +from ObjCNewSyntaxTest import ObjCNewSyntaxTest + + +class ObjCNewSyntaxTestCaseLiteral(ObjCNewSyntaxTest): + + @skipUnlessDarwin + @skipIf(macos_version=["<", "10.12"]) + @expectedFailureAll(archs=["i[3-6]86"]) + def test_char_literal(self): + self.runToBreakpoint() + + self.expect("expr --object-description -- @'a'", + VARIABLES_DISPLAYED_CORRECTLY, substrs=[str(ord('a'))]) + + @skipUnlessDarwin + @skipIf(macos_version=["<", "10.12"]) + @expectedFailureAll(archs=["i[3-6]86"]) + def test_integer_literals(self): + self.runToBreakpoint() + + self.expect( + "expr --object-description -- @1", + VARIABLES_DISPLAYED_CORRECTLY, + substrs=["1"]) + + self.expect( + "expr --object-description -- @1l", + VARIABLES_DISPLAYED_CORRECTLY, + substrs=["1"]) + + self.expect( + "expr --object-description -- @1ul", + VARIABLES_DISPLAYED_CORRECTLY, + substrs=["1"]) + + self.expect( + "expr --object-description -- @1ll", + VARIABLES_DISPLAYED_CORRECTLY, + substrs=["1"]) + + self.expect( + "expr --object-description -- @1ull", + VARIABLES_DISPLAYED_CORRECTLY, + substrs=["1"]) + + @skipUnlessDarwin + @skipIf(macos_version=["<", "10.12"]) + @expectedFailureAll(archs=["i[3-6]86"]) + def test_float_literal(self): + self.runToBreakpoint() + + self.expect("expr -- @123.45", VARIABLES_DISPLAYED_CORRECTLY, + substrs=["NSNumber", "123.45"]) + + @skipUnlessDarwin + @skipIf(macos_version=["<", "10.12"]) + @expectedFailureAll(archs=["i[3-6]86"]) + def test_expressions_in_literals(self): + self.runToBreakpoint() + + self.expect( + "expr --object-description -- @( 1 + 3 )", + VARIABLES_DISPLAYED_CORRECTLY, + substrs=["4"]) + self.expect( + "expr -- @((char*)\"Hello world\" + 6)", + VARIABLES_DISPLAYED_CORRECTLY, + substrs=[ + "NSString", + "world"]) -- 2.7.4