Commit 914b551e authored by Jonas Devlieghere's avatar Jonas Devlieghere
Browse files

[lldb/test] Add test for CMTime data formatter

Add a test for the CMTime data formatter. The coverage report showed
that this code path was untested.
parent a6faf851
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
OBJC_SOURCES := main.m

CFLAGS_EXTRAS := -w

LD_EXTRAS := -framework CoreMedia
include Makefile.rules
+39 −0
Original line number Diff line number Diff line
# encoding: utf-8

import lldb
from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
from lldbsuite.test import lldbutil


class CMTimeDataFormatterTestCase(TestBase):

    mydir = TestBase.compute_mydir(__file__)

    @skipUnlessDarwin
    def test_nsindexpath_with_run_command(self):
        """Test formatters for CMTime."""
        self.build()
        self.runCmd("file " + self.getBuildArtifact("a.out"),
                    CURRENT_EXECUTABLE_SET)

        line = line_number('main.m', '// break here')
        lldbutil.run_break_set_by_file_and_line(
            self, "main.m", line, num_expected_locations=1, loc_exact=True)

        self.runCmd("run", RUN_SUCCEEDED)

        self.expect(
            "thread list",
            STOPPED_DUE_TO_BREAKPOINT,
            substrs=['stopped', 'stop reason = breakpoint'])

        self.expect(
            'frame variable t1',
            substrs=[
                '1 10th of a second', 'value = 1', 'timescale = 10',
                'epoch = 0'
            ])
        self.expect(
            'frame variable t2',
            substrs=['10 seconds', 'value = 10', 'timescale = 1', 'epoch = 0'])
+22 −0
Original line number Diff line number Diff line
//===-- main.m ------------------------------------------------*- ObjC -*-===//
//
// 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
//
//===----------------------------------------------------------------------===//

#import <CoreMedia/CoreMedia.h>

int main(int argc, const char **argv)
{
    @autoreleasepool
    {
        CMTime t1 = CMTimeMake(1, 10);
        CMTime t2 = CMTimeMake(10, 1);

        CMTimeShow(t1); // break here
        CMTimeShow(t2);
    }
    return 0;
}