forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			53 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
	
from clang.cindex import CursorKind
 | 
						|
from clang.cindex import Index
 | 
						|
from clang.cindex import SourceLocation
 | 
						|
from clang.cindex import SourceRange
 | 
						|
from clang.cindex import TokenKind
 | 
						|
from nose.tools import eq_
 | 
						|
from nose.tools import ok_
 | 
						|
 | 
						|
from .util import get_tu
 | 
						|
 | 
						|
def test_token_to_cursor():
 | 
						|
    """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))
 | 
						|
 | 
						|
    assert len(tokens) == 4
 | 
						|
    assert tokens[1].spelling == 'i'
 | 
						|
    assert tokens[1].kind == TokenKind.IDENTIFIER
 | 
						|
 | 
						|
    cursor = tokens[1].cursor
 | 
						|
    assert cursor.kind == CursorKind.VAR_DECL
 | 
						|
    assert tokens[1].cursor == tokens[2].cursor
 | 
						|
 | 
						|
def test_token_location():
 | 
						|
    """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))
 | 
						|
    eq_(len(tokens), 4)
 | 
						|
 | 
						|
    loc = tokens[1].location
 | 
						|
    ok_(isinstance(loc, SourceLocation))
 | 
						|
    eq_(loc.line, 1)
 | 
						|
    eq_(loc.column, 5)
 | 
						|
    eq_(loc.offset, 4)
 | 
						|
 | 
						|
def test_token_extent():
 | 
						|
    """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))
 | 
						|
    eq_(len(tokens), 4)
 | 
						|
 | 
						|
    extent = tokens[1].extent
 | 
						|
    ok_(isinstance(extent, SourceRange))
 | 
						|
 | 
						|
    eq_(extent.start.offset, 4)
 | 
						|
    eq_(extent.end.offset, 7)
 |