Add a test case for the SBFrame APIs.  In particular, it uses the frame API to
get the argument values of the call stacks when stopped on the breakpoint.

Radar has been filed for the expected failures:
test failure: ./dotest.py -v -w -t -p TestFrames (argument values are wrong)

llvm-svn: 122460
diff --git a/lldb/test/python_api/frame/main.c b/lldb/test/python_api/frame/main.c
new file mode 100644
index 0000000..749bd61
--- /dev/null
+++ b/lldb/test/python_api/frame/main.c
@@ -0,0 +1,58 @@
+//===-- main.c --------------------------------------------------*- C++ -*-===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+#include <stdio.h>
+
+// This simple program is to test the lldb Python API related to frames.
+
+int a(int, char);
+int b(int, char);
+int c(int, char);
+
+int a(int val, char ch)
+{
+    int my_val = val;
+    char my_ch = ch;
+    printf("a(val=%d, ch='%c')\n", val, ch);
+    if (val <= 1)
+        return b(++val, ++ch);
+    else if (val >= 3)
+        return c(++val, ++ch);
+
+    return val;
+}
+
+int b(int val, char ch)
+{
+    int my_val = val;
+    char my_ch = ch;
+    printf("b(val=%d, ch='%c')\n", val, ch);
+    return c(++val, ++ch);
+}
+
+int c(int val, char ch)
+{
+    int my_val = val;
+    char my_ch = ch;
+    printf("c(val=%d, ch='%c')\n", val, ch);
+    return val + 3 + ch;
+}
+
+int main (int argc, char const *argv[])
+{
+    int A1 = a(1, 'A');  // a(1, 'A') -> b(2, 'B') -> c(3, 'C')
+    printf("a(1, 'A') returns %d\n", A1);
+    
+    int B2 = b(2, 'B');  // b(2, 'B') -> c(3, 'C')
+    printf("b(2, 'B') returns %d\n", B2);
+    
+    int A3 = a(3, 'A');  // a(3, 'A') -> c(4, 'B')
+    printf("a(3, 'A') returns %d\n", A3);
+    
+    return 0;
+}