32 lines
843 B
Python
32 lines
843 B
Python
import sys
|
|
import os
|
|
sys.path.insert(0, os.getcwd())
|
|
|
|
from src.file_cache import ASTParser
|
|
|
|
def test_multibyte_definition_lookup():
|
|
# String with a multi-byte character (3 bytes)
|
|
# The shade character ▓ is 3 bytes in UTF-8.
|
|
# 3 shade characters = 9 bytes. In Python str they are 3 chars.
|
|
# Offset drift will be 6 bytes.
|
|
code = """
|
|
/* ▓▓▓ */
|
|
struct Target {
|
|
int x;
|
|
};
|
|
"""
|
|
parser = ASTParser("cpp")
|
|
# This should find Target and return its definition
|
|
definition = parser.get_definition(code, "Target")
|
|
print(f"Definition found: '{definition}'")
|
|
if "struct Target" not in definition:
|
|
print("FAILURE: 'struct Target' not in definition")
|
|
sys.exit(1)
|
|
if "int x;" not in definition:
|
|
print("FAILURE: 'int x;' not in definition")
|
|
sys.exit(1)
|
|
print("SUCCESS")
|
|
|
|
if __name__ == "__main__":
|
|
test_multibyte_definition_lookup()
|