| #[cfg(test)] |
| mod test { |
| summary_test! { |
| tokenize_recipe_interpolation_eol, |
| "foo: # some comment |
| {{hello}} |
| ", |
| "foo: \ |
| {{hello}} \ |
| {{ahah}}", |
| "N:#$>^{N}$<.", |
| } |
| |
| summary_test! { |
| tokenize_strings, |
| r#"a = "'a'" + '"b"' + "'c'" + '"d"'#echo hello"#, |
| r#"N="+'+"+'#."#, |
| } |
| |
| summary_test! { |
| tokenize_recipe_interpolation_eol, |
| "foo: # some comment |
| {{hello}} |
| ", |
| "N:#$>^{N}$<.", |
| } |
| |
| summary_test! { |
| tokenize_recipe_interpolation_eof, |
| "foo: # more comments |
| {{hello}} |
| # another comment |
| ", |
| "N:#$>^{N}$<#$.", |
| } |
| |
| summary_test! { |
| tokenize_recipe_complex_interpolation_expression, |
| "foo: #lol\n {{a + b + \"z\" + blarg}}", |
| "N:#$>^{N+N+\"+N}<.", |
| } |
| |
| summary_test! { |
| tokenize_recipe_multiple_interpolations, |
| "foo:,#ok\n {{a}}0{{b}}1{{c}}", |
| "N:,#$>^{N}_{N}_{N}<.", |
| } |
| |
| summary_test! { |
| tokenize_junk, |
| "bob |
| |
| hello blah blah blah : a b c #whatever |
| ", |
| "N$$NNNN:NNN#$.", |
| } |
| |
| summary_test! { |
| tokenize_empty_lines, |
| " |
| # this does something |
| hello: |
| asdf |
| bsdf |
| |
| csdf |
| |
| dsdf # whatever |
| |
| # yolo |
| ", |
| "$#$N:$>^_$^_$$^_$$^_$$<#$.", |
| } |
| |
| summary_test! { |
| tokenize_comment_before_variable, |
| " |
| # |
| A='1' |
| echo: |
| echo {{A}} |
| ", |
| "$#$N='$N:$>^_{N}$<.", |
| } |
| |
| summary_test! { |
| tokenize_interpolation_backticks, |
| "hello:\n echo {{`echo hello` + `echo goodbye`}}", |
| "N:$>^_{`+`}<.", |
| } |
| |
| summary_test! { |
| tokenize_assignment_backticks, |
| "a = `echo hello` + `echo goodbye`", |
| "N=`+`.", |
| } |
| |
| summary_test! { |
| tokenize_multiple, |
| " |
| hello: |
| a |
| b |
| |
| c |
| |
| d |
| |
| # hello |
| bob: |
| frank |
| ", |
| |
| "$N:$>^_$^_$$^_$$^_$$<#$N:$>^_$<.", |
| } |
| |
| summary_test! { |
| tokenize_comment, |
| "a:=#", |
| "N:=#." |
| } |
| |
| summary_test! { |
| tokenize_comment_with_bang, |
| "a:=#foo!", |
| "N:=#." |
| } |
| |
| summary_test! { |
| tokenize_order, |
| r" |
| b: a |
| @mv a b |
| |
| a: |
| @touch F |
| @touch a |
| |
| d: c |
| @rm c |
| |
| c: b |
| @mv b c", |
| "$N:N$>^_$$<N:$>^_$^_$$<N:N$>^_$$<N:N$>^_<.", |
| } |
| |
| summary_test! { |
| tokenize_parens, |
| r"((())) )abc(+", |
| "((())))N(+.", |
| } |
| |
| summary_test! { |
| crlf_newline, |
| "#\r\n#asdf\r\n", |
| "#$#$.", |
| } |
| } |