From aa70703fee4672078f70359d677646b700ef189d Mon Sep 17 00:00:00 2001 From: Pelle Johnsen Date: Thu, 2 Jul 2020 05:54:28 +0000 Subject: [PATCH] Add simple test for glsl-new lexer --- src/front/glsl_new/lex_tests.rs | 36 +++++++++++++++++++++++++++++++++ src/front/glsl_new/mod.rs | 3 +++ 2 files changed, 39 insertions(+) create mode 100644 src/front/glsl_new/lex_tests.rs diff --git a/src/front/glsl_new/lex_tests.rs b/src/front/glsl_new/lex_tests.rs new file mode 100644 index 0000000000..fe17f260e2 --- /dev/null +++ b/src/front/glsl_new/lex_tests.rs @@ -0,0 +1,36 @@ +use super::lex::Lexer; +use super::parser::Token; + +#[test] +fn glsl_lex_simple() { + let source = "void main() {\n}"; + let lex = Lexer::new(source); + let tokens: Vec = lex.collect(); + assert_eq!(tokens.len(), 6); + + let mut iter = tokens.iter(); + assert_eq!( + format!("{:?}", iter.next().unwrap()), + "Void(TokenMetadata { line: 0, chars: 0..4 })" + ); + assert_eq!( + format!("{:?}", iter.next().unwrap()), + "Identifier((TokenMetadata { line: 0, chars: 5..9 }, \"main\"))" + ); + assert_eq!( + format!("{:?}", iter.next().unwrap()), + "LeftParen(TokenMetadata { line: 0, chars: 9..10 })" + ); + assert_eq!( + format!("{:?}", iter.next().unwrap()), + "RightParen(TokenMetadata { line: 0, chars: 10..11 })" + ); + assert_eq!( + format!("{:?}", iter.next().unwrap()), + "LeftBrace(TokenMetadata { line: 0, chars: 12..13 })" + ); + assert_eq!( + format!("{:?}", iter.next().unwrap()), + "RightBrace(TokenMetadata { line: 1, chars: 0..1 })" + ); +} diff --git a/src/front/glsl_new/mod.rs b/src/front/glsl_new/mod.rs index 3f1d65fa47..202a7e6fa0 100644 --- a/src/front/glsl_new/mod.rs +++ b/src/front/glsl_new/mod.rs @@ -3,6 +3,9 @@ use crate::{ }; mod lex; +#[cfg(test)] +mod lex_tests; + use lex::Lexer; mod error; use error::ParseError;