javatests/de/jflex/testcase/unicode_escape_warning/WarningsTest.java (33 lines of code) (raw):
/*
* Copyright 2023, Gerwin Klein <lsf@jflex.de>
* SPDX-License-Identifier: BSD-3-Clause
*/
package de.jflex.testcase.unicode_escape_warning;
import static com.google.common.truth.Truth.assertThat;
import de.jflex.testing.testsuite.JFlexTestRunner;
import de.jflex.testing.testsuite.annotations.TestSpec;
import de.jflex.util.scanner.ScannerFactory;
import org.junit.Test;
import org.junit.runner.RunWith;
/**
* Test warnings for and matching for unicode espace sequences that are too long.
*
* <p>See also <a href="https://github.com/jflex-de/jflex/pull/183">#183</a>.
*/
@RunWith(JFlexTestRunner.class)
@TestSpec(
lex = "javatests/de/jflex/testcase/unicode_escape_warning/warnings.flex",
sysout = "javatests/de/jflex/testcase/unicode_escape_warning/sys-out.txt",
quiet = true)
public class WarningsTest {
private final ScannerFactory<Warnings> scannerFactory = ScannerFactory.of(Warnings::new);
@Test
public void run() throws java.io.IOException {
Warnings scanner = scannerFactory.createScannerWithContent("013245020210ab121201ab0");
assertThat(scanner.yylex()).isEqualTo(0);
assertThat(scanner.yylex()).isEqualTo(1);
assertThat(scanner.yylex()).isEqualTo(3);
assertThat(scanner.yylex()).isEqualTo(2);
assertThat(scanner.yylex()).isEqualTo(4);
assertThat(scanner.yylex()).isEqualTo(5);
assertThat(scanner.yylex()).isEqualTo(6);
assertThat(scanner.yylex()).isEqualTo(7);
assertThat(scanner.yylex()).isEqualTo(8);
assertThat(scanner.yylex()).isEqualTo(9);
assertThat(scanner.yylex()).isEqualTo(10);
assertThat(scanner.yylex()).isEqualTo(11);
assertThat(scanner.yylex()).isEqualTo(0);
assertThat(scanner.yylex()).isEqualTo(-1);
}
}