You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

249 lines
5.8 KiB

1 year ago
---
test case: "space after single-character macro name"
in:
macro: '{$A }'
out:
return: 'FAIL'
---
test case: "space before single-character macro name"
in:
macro: '{$ A}'
out:
return: 'FAIL'
---
test case: "macro without closing brace"
in:
macro: '{$A'
out:
return: 'FAIL'
---
test case: "macro without name"
in:
macro: '{$}'
out:
return: 'FAIL'
---
test case: "lower case single-character macro name"
in:
macro: '{$a}'
out:
return: 'FAIL'
---
test case: capitalized macro name"
in:
macro: '{$Ab}'
out:
return: 'FAIL'
---
test case: "no closing brace, empty context"
in:
macro: '{$A:'
out:
return: 'FAIL'
---
test case: "no closing brace, one opening quote in context"
in:
macro: '{$A: "'
out:
return: 'FAIL'
---
test case: "one opening quote in context"
in:
macro: '{$A: "}'
out:
return: 'FAIL'
---
test case: "one opening quote in before 1-digit context"
in:
macro: '{$A:"1}'
out:
return: 'FAIL'
---
test case: "quoted context with extra character after"
in:
macro: '{$A:"1"2}'
out:
return: 'FAIL'
---
test case: "one opening quote in before 1-digit context with space"
in:
macro: '{$A:"1 }'
out:
return: 'FAIL'
---
test case: "valid single-character macro"
in:
macro: '{$A}'
out:
return: 'SUCCEED'
macro_r: 3
context_l: 0
context_r: 0
---
test case: "valid multi-character macro"
in:
macro: '{$ABCD}'
out:
return: 'SUCCEED'
macro_r: 6
context_l: 0
context_r: 0
---
test case: "extra character after }"
in:
macro: '{$ABC}D'
out:
return: 'SUCCEED'
macro_r: 5
context_l: 0
context_r: 0
---
test case: "1-digit context"
in:
macro: '{$A:1}'
out:
return: 'SUCCEED'
macro_r: 5
context_l: 4
context_r: 4
---
test case: "multi-digit context"
in:
macro: '{$A:1234}'
out:
return: 'SUCCEED'
macro_r: 8
context_l: 4
context_r: 7
---
test case: "1-digit context and space"
in:
macro: '{$A:1 }'
out:
return: 'SUCCEED'
macro_r: 6
context_l: 4
context_r: 5
---
test case: "space before 1-digit context"
in:
macro: '{$A: 1}'
out:
return: 'SUCCEED'
macro_r: 6
context_l: 5
context_r: 5
---
test case: "space before and after 1-digit context"
in:
macro: '{$A: 1 }'
out:
return: 'SUCCEED'
macro_r: 7
context_l: 5
context_r: 6
---
test case: "quoted 1-digit context with 2 spaces before"
in:
macro: '{$A: "1"}'
out:
return: 'SUCCEED'
macro_r: 9
context_l: 6
context_r: 8
---
test case: "quoted 1-digit context with 2 spaces before and after"
in:
macro: '{$A: "1" }'
out:
return: 'SUCCEED'
macro_r: 11
context_l: 6
context_r: 8
---
test case: "two spaces before quoted context with escaped quotes"
in:
macro: '{$A: "\"1\""}'
out:
return: 'SUCCEED'
macro_r: 13
context_l: 6
context_r: 12
---
test case: "two spaces around quoted context with escaped quotes"
in:
macro: '{$A: "\"1\"" }'
out:
return: 'SUCCEED'
macro_r: 15
context_l: 6
context_r: 12
---
test case: "quoted context with macro look-alike string, spaces around quotes"
in:
macro: '{$A: "{$B}" }'
out:
return: 'SUCCEED'
macro_r: 12
context_l: 5
context_r: 10
---
test case: "empty context"
in:
macro: '{$A:}'
out:
return: 'SUCCEED'
macro_r: 4
context_l: 4
context_r: 3
---
test case: "ignore regex prefix for nonregex match"
in:
macro: '{$A:regex:}'
out:
return: 'SUCCEED'
macro_r: 10
context_l: 4
context_r: 9
---
test case: "unterminated regex prefix"
in:
macro: '{$A:regex}'
match: true
out:
return: 'SUCCEED'
macro_r: 9
context_l: 4
context_r: 8
---
test case: "empty regex match"
in:
macro: '{$A:regex:}'
match: true
out:
return: 'SUCCEED'
macro_r: 10
context_l: 10
context_r: 9
---
test case: "simple regex match"
in:
macro: '{$A:regex:(A|B):}'
match: true
out:
return: 'SUCCEED'
macro_r: 16
context_l: 10
context_r: 15
---
test case: "simple regex match"
in:
macro: '{$A:regex:(AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA|B):}'
match: true
out:
return: 'SUCCEED'
macro_r: 2035
context_l: 10
context_r: 2034
...