drgn/tests/test_lexer.py
Omar Sandoval a4b9d68a8c Use GPL-3.0-or-later license identifier instead of GPL-3.0+
Apparently the latter is deprecated and the former is preferred.

Signed-off-by: Omar Sandoval <osandov@osandov.com>
2021-04-03 01:10:35 -07:00

34 lines
1.1 KiB
Python

# Copyright (c) Facebook, Inc. and its affiliates.
# SPDX-License-Identifier: GPL-3.0-or-later
import unittest
from tests.libdrgn import Lexer, drgn_test_lexer_func
class TestLexer(unittest.TestCase):
def test_pop(self):
lexer = Lexer(drgn_test_lexer_func, "12345")
for i in range(5):
self.assertEqual(lexer.pop().kind, ord("1") + i)
self.assertEqual(lexer.pop().kind, 0)
def test_push(self):
lexer = Lexer(drgn_test_lexer_func, "12345")
tokens = []
for i in range(4):
tokens.append(lexer.pop())
while tokens:
lexer.push(tokens.pop())
for i in range(5):
self.assertEqual(lexer.pop().kind, ord("1") + i)
self.assertEqual(lexer.pop().kind, 0)
def test_peek(self):
lexer = Lexer(drgn_test_lexer_func, "12345")
for i in range(5):
self.assertEqual(lexer.peek().kind, ord("1") + i)
self.assertEqual(lexer.pop().kind, ord("1") + i)
self.assertEqual(lexer.peek().kind, 0)
self.assertEqual(lexer.pop().kind, 0)