From 1196d48842d681af49280634c163b6791de00b63 Mon Sep 17 00:00:00 2001 From: Caroline Tice Date: Mon, 31 Jan 2011 20:21:32 +0000 Subject: [PATCH] Add test for breakpoint id ranges. llvm-svn: 124598 --- lldb/test/breakpoint_ids/Makefile | 5 ++ lldb/test/breakpoint_ids/TestBreakpointIDs.py | 50 ++++++++++++++ lldb/test/breakpoint_ids/main.cpp | 65 +++++++++++++++++++ 3 files changed, 120 insertions(+) create mode 100644 lldb/test/breakpoint_ids/Makefile create mode 100644 lldb/test/breakpoint_ids/TestBreakpointIDs.py create mode 100644 lldb/test/breakpoint_ids/main.cpp diff --git a/lldb/test/breakpoint_ids/Makefile b/lldb/test/breakpoint_ids/Makefile new file mode 100644 index 000000000000..d4bc9c689043 --- /dev/null +++ b/lldb/test/breakpoint_ids/Makefile @@ -0,0 +1,5 @@ +LEVEL = ../make + +CXX_SOURCES := main.cpp + +include $(LEVEL)/Makefile.rules diff --git a/lldb/test/breakpoint_ids/TestBreakpointIDs.py b/lldb/test/breakpoint_ids/TestBreakpointIDs.py new file mode 100644 index 000000000000..bac031bb8635 --- /dev/null +++ b/lldb/test/breakpoint_ids/TestBreakpointIDs.py @@ -0,0 +1,50 @@ +""" +Test lldb breakpoint ids. +""" + +import os, time +import unittest2 +import lldb +from lldbtest import * + +class BreakpointIDTestCase(TestBase): + + mydir = "breakpoint_ids" + + @unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin") + def test_with_dsym (self): + self.buildDsym () + self.breakpoint_id_tests () + + def test_with_dwarf (self): + self.buildDwarf () + self.breakpoint_id_tests () + + def breakpoint_id_tests (self): + exe = os.path.join (os.getcwd(), "a.out") + self.expect("file " + exe, + patterns = [ "Current executable set to .*a.out" ]) + + self.expect ("breakpoint set -n product", + startstr = "Breakpoint created: 1: name = 'product', locations = 2") + + self.expect ("breakpoint set -n sum", + startstr = "Breakpoint created: 2: name = 'sum', locations = 3") + + + self.expect ("breakpoint disable 1.2 - 2.2 ", + COMMAND_FAILED_AS_EXPECTED, error = True, + startstr = "error: Invalid range: Ranges that specify particular breakpoint locations must be within the same major breakpoint; you specified two different major breakpoints, 1 and 2.") + + self.expect ("breakpoint disable 1.1 - 1.2", + startstr = "2 breakpoints disabled.") + + self.expect ("breakpoint enable 1.*", + startstr = "2 breakpoints enabled.") + +if __name__ == '__main__': + import atexit + lldb.SBDebugger.Initialize() + atexit.register(lambda: lldb.SBDebugger.Terminate()) + unittest2.main() + diff --git a/lldb/test/breakpoint_ids/main.cpp b/lldb/test/breakpoint_ids/main.cpp new file mode 100644 index 000000000000..3deef22c93c8 --- /dev/null +++ b/lldb/test/breakpoint_ids/main.cpp @@ -0,0 +1,65 @@ +//===-- main.cpp ------------------------------------------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#include +#include +#include +#include + + +#define INLINE inline __attribute__((always_inline)) + +INLINE int +product (int x, int y) +{ + int result = x * y; + return result; +} + +INLINE int +sum (int a, int b) +{ + int result = a + b; + return result; +} + +int +strange_max (int m, int n) +{ + if (m > n) + return m; + else if (n > m) + return n; + else + return 0; +} + +int +foo (int i, int j) +{ + if (strange_max (i, j) == i) + return product (i, j); + else if (strange_max (i, j) == j) + return sum (i, j); + else + return product (sum (i, i), sum (j, j)); +} + +int +main(int argc, char const *argv[]) +{ + + int array[3]; + + array[0] = foo (1238, 78392); + array[1] = foo (379265, 23674); + array[2] = foo (872934, 234); + + return 0; +}