CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
58 lines
1.8 KiB
Python
58 lines
1.8 KiB
Python
from clang.cindex import CursorKind, SourceLocation, SourceRange, TokenKind
|
|
|
|
|
|
import unittest
|
|
|
|
from .util import get_tu
|
|
|
|
|
|
class TestTokens(unittest.TestCase):
|
|
def test_token_to_cursor(self):
|
|
"""Ensure we can obtain a Cursor from a Token instance."""
|
|
tu = get_tu("int i = 5;")
|
|
r = tu.get_extent("t.c", (0, 9))
|
|
tokens = list(tu.get_tokens(extent=r))
|
|
|
|
self.assertEqual(len(tokens), 4)
|
|
self.assertEqual(tokens[1].spelling, "i")
|
|
self.assertEqual(tokens[1].kind, TokenKind.IDENTIFIER)
|
|
|
|
cursor = tokens[1].cursor
|
|
self.assertEqual(cursor.kind, CursorKind.VAR_DECL)
|
|
self.assertEqual(tokens[1].cursor, tokens[2].cursor)
|
|
|
|
def test_token_location(self):
|
|
"""Ensure Token.location works."""
|
|
|
|
tu = get_tu("int foo = 10;")
|
|
r = tu.get_extent("t.c", (0, 11))
|
|
|
|
tokens = list(tu.get_tokens(extent=r))
|
|
self.assertEqual(len(tokens), 4)
|
|
|
|
loc = tokens[1].location
|
|
self.assertIsInstance(loc, SourceLocation)
|
|
self.assertEqual(loc.line, 1)
|
|
self.assertEqual(loc.column, 5)
|
|
self.assertEqual(loc.offset, 4)
|
|
|
|
def test_token_extent(self):
|
|
"""Ensure Token.extent works."""
|
|
tu = get_tu("int foo = 10;")
|
|
r = tu.get_extent("t.c", (0, 11))
|
|
|
|
tokens = list(tu.get_tokens(extent=r))
|
|
self.assertEqual(len(tokens), 4)
|
|
|
|
extent = tokens[1].extent
|
|
self.assertIsInstance(extent, SourceRange)
|
|
|
|
self.assertEqual(extent.start.offset, 4)
|
|
self.assertEqual(extent.end.offset, 7)
|
|
|
|
def test_null_cursor(self):
|
|
"""Ensure that the cursor property converts null cursors to None"""
|
|
tu = get_tu("int i = 5;")
|
|
tokens = list(tu.get_tokens(extent=tu.cursor.extent))
|
|
self.assertEqual(tokens[-1].cursor, None)
|