[lldb][NFC] Rewrite python_api/rdar-12481949 test

Summary:
This renames the test `rdar-12481949` to `get-value-32bit-int` as it just tests that we return the
correct result get calling GetValueAsSigned/GetValueAsUnsigned on 32-bit integers.

It also deletes all the strange things going on in this test including resetting the data formatters (which are to my
knowledge not used to calculate scalar values) and testing Python's long integers (let's just assume that our Python
distribution works correctly). Also modernises the setup code.

Reviewers: labath, aprantl

Reviewed By: aprantl

Subscribers: JDevlieghere, lldb-commits

Tags: #lldb

Differential Revision: https://reviews.llvm.org/D72593
This commit is contained in:
Raphael Isemann 2020-01-14 10:06:46 +01:00
parent eca4474587
commit d8ffd601d5
5 changed files with 24 additions and 82 deletions

View File

@ -0,0 +1,19 @@
"""
Check that SBValue.GetValueAsSigned() does the right thing for a 32-bit -1.
"""
import lldb
from lldbsuite.test.lldbtest import *
import lldbsuite.test.lldbutil as lldbutil
class TestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
NO_DEBUG_INFO_TESTCASE = True
def test_with_run_command(self):
self.build()
lldbutil.run_to_source_breakpoint(self,"// break here", lldb.SBFileSpec("main.cpp"))
self.assertEqual(self.frame().FindVariable("myvar").GetValueAsSigned(), -1)
self.assertEqual(self.frame().FindVariable("myvar").GetValueAsUnsigned(), 0xFFFFFFFF)

View File

@ -0,0 +1,5 @@
#include <cstdint>
int main () {
int32_t myvar = -1;
return myvar; // break here
}

View File

@ -1,66 +0,0 @@
"""
Check that SBValue.GetValueAsSigned() does the right thing for a 32-bit -1.
"""
import lldb
from lldbsuite.test.lldbtest import *
import lldbsuite.test.lldbutil as lldbutil
class Radar12481949DataFormatterTestCase(TestBase):
# test for rdar://problem/12481949
mydir = TestBase.compute_mydir(__file__)
NO_DEBUG_INFO_TESTCASE = True
def setUp(self):
# Call super's setUp().
TestBase.setUp(self)
# Find the line number to break at.
self.line = line_number('main.cpp', '// Set break point at this line.')
def test_with_run_command(self):
"""Check that SBValue.GetValueAsSigned() does the right thing for a 32-bit -1."""
self.build()
self.runCmd("file " + self.getBuildArtifact("a.out"), CURRENT_EXECUTABLE_SET)
lldbutil.run_break_set_by_file_and_line(
self, "main.cpp", 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'])
# This is the function to remove the custom formats in order to have a
# clean slate for the next test case.
def cleanup():
self.runCmd('type format delete hex', check=False)
self.runCmd('type summary clear', check=False)
# Execute the cleanup function during test case tear down.
self.addTearDownHook(cleanup)
self.assertTrue(
self.frame().FindVariable("myvar").GetValueAsSigned() == -1,
"GetValueAsSigned() says -1")
self.assertTrue(
self.frame().FindVariable("myvar").GetValueAsSigned() != 0xFFFFFFFF,
"GetValueAsSigned() does not say 0xFFFFFFFF")
self.assertTrue(
self.frame().FindVariable("myvar").GetValueAsSigned() != 0xFFFFFFFFFFFFFFFF,
"GetValueAsSigned() does not say 0xFFFFFFFFFFFFFFFF")
self.assertTrue(
self.frame().FindVariable("myvar").GetValueAsUnsigned() != -1,
"GetValueAsUnsigned() does not say -1")
self.assertTrue(
self.frame().FindVariable("myvar").GetValueAsUnsigned() == 0xFFFFFFFF,
"GetValueAsUnsigned() says 0xFFFFFFFF")
self.assertTrue(
self.frame().FindVariable("myvar").GetValueAsUnsigned() != 0xFFFFFFFFFFFFFFFF,
"GetValueAsUnsigned() does not says 0xFFFFFFFFFFFFFFFF")

View File

@ -1,16 +0,0 @@
//===-- main.cpp ------------------------------------------------*- C++ -*-===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
#include <stdio.h>
#include <stdint.h>
int main ()
{
int32_t myvar = -1;
printf ("%d\n", myvar); // Set break point at this line.
return myvar+1;
}