[Lldb-commits] [lldb] r125320 - in /lldb/trunk/test/foundation: Makefile TestConstStrings.py const-strings.m

Johnny Chen johnny.chen at apple.com
Thu Feb 10 15:58:38 PST 2011


Author: johnny
Date: Thu Feb 10 17:58:37 2011
New Revision: 125320

URL: http://llvm.org/viewvc/llvm-project?rev=125320&view=rev
Log:
Add TestConstStrings.py under foundation dir for testing expression parser on objective-c strings
and constant strings.

Added:
    lldb/trunk/test/foundation/TestConstStrings.py
Modified:
    lldb/trunk/test/foundation/Makefile
    lldb/trunk/test/foundation/const-strings.m

Modified: lldb/trunk/test/foundation/Makefile
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/foundation/Makefile?rev=125320&r1=125319&r2=125320&view=diff
==============================================================================
--- lldb/trunk/test/foundation/Makefile (original)
+++ lldb/trunk/test/foundation/Makefile Thu Feb 10 17:58:37 2011
@@ -1,6 +1,8 @@
 LEVEL = ../make
 
 OBJC_SOURCES := main.m my-base.m
+#OBJC_SOURCES := const-strings.m
+
 LDFLAGS = $(CFLAGS) -lobjc -framework Foundation
 
 include $(LEVEL)/Makefile.rules

Added: lldb/trunk/test/foundation/TestConstStrings.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/foundation/TestConstStrings.py?rev=125320&view=auto
==============================================================================
--- lldb/trunk/test/foundation/TestConstStrings.py (added)
+++ lldb/trunk/test/foundation/TestConstStrings.py Thu Feb 10 17:58:37 2011
@@ -0,0 +1,64 @@
+"""
+Test that objective-c constant strings are generated correctly by the expression
+parser.
+"""
+
+import os, time
+import unittest2
+import lldb
+from lldbtest import *
+
+ at unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
+class ConstStringTestCase(TestBase):
+
+    mydir = "foundation"
+    d = {'OBJC_SOURCES': 'const-strings.m'}
+
+    def test_break_with_dsym(self):
+        """Test constant string generation amd comparison by the expression parser."""
+        self.buildDsym(dictionary=self.d)
+        self.objc_const_strings()
+
+    def test_break_with_dwarf(self):
+        """Test constant string generation amd comparison by the expression parser."""
+        self.buildDwarf(dictionary=self.d)
+        self.objc_const_strings()
+
+    def setUp(self):
+        # Call super's setUp().
+        TestBase.setUp(self)
+        # Find the line number to break inside main().
+        self.main_source = "const-strings.m"
+        self.line = line_number(self.main_source, '// Set breakpoint here.')
+
+    def objc_const_strings(self):
+        """Test constant string generation amd comparison by the expression parser."""
+        exe = os.path.join(os.getcwd(), "a.out")
+        self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
+
+        self.expect("breakpoint set -f %s -l %d" % (self.main_source, self.line),
+                    BREAKPOINT_CREATED,
+            startstr = "Breakpoint created: 1: file ='%s', line = %d, locations = 1" %
+                        (self.main_source, self.line))
+
+        self.runCmd("run", RUN_SUCCEEDED)
+        self.runCmd("process status")
+
+        self.expect('expression (int)[str compare:@"hello"]',
+            startstr = "(int) $0 = 0")
+        self.expect('expression (int)[str compare:@"world"]',
+            startstr = "(int) $1 = -1")
+
+        # Test empty strings, too.
+        self.expect('expression (int)[@"" length]',
+            startstr = "(int) $2 = 0")
+
+        self.expect('expression (int)[@"123" length]',
+            startstr = "(int) $3 = 3")
+
+        
+if __name__ == '__main__':
+    import atexit
+    lldb.SBDebugger.Initialize()
+    atexit.register(lambda: lldb.SBDebugger.Terminate())
+    unittest2.main()

Modified: lldb/trunk/test/foundation/const-strings.m
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/foundation/const-strings.m?rev=125320&r1=125319&r2=125320&view=diff
==============================================================================
--- lldb/trunk/test/foundation/const-strings.m (original)
+++ lldb/trunk/test/foundation/const-strings.m Thu Feb 10 17:58:37 2011
@@ -17,7 +17,8 @@
 
   NSString *str = [NSString stringWithCString:"hello" encoding:NSASCIIStringEncoding];
 
-  NSLog(@"String \"%@\" has length %d", str, [str length]); // Breakpoint 1
+  NSLog(@"String \"%@\" has length %lu", str, [str length]); // Set breakpoint here.
 
   [pool drain];
+  return 0;
 }





More information about the lldb-commits mailing list