3
0
Fork 0
mirror of https://github.com/YosysHQ/yosys synced 2025-10-09 17:31:59 +00:00
yosys/tests/scripts/space_in_name.ys
Krystine Sherwin 1248af1e02
Tests: Prefer single quotes for regex
Replaces double quotes on problematic regex strings (mostly ones that have escape sequences that are easier to preserve in single quotes).  Necessitates also changing single quotes to `.`, i.e match any.
For some (mostly ones that only have a single escaped character, or were using `\.` to match a literal fullstop) keep the double quotes and fix the regex instead.
2025-10-06 14:22:33 +13:00

105 lines
2.3 KiB
Text
Executable file

logger -expect-no-warnings
# quoted strings are a single argument to passes
logger -expect log "quoted space" 1
logger -expect log "quoted" 2
logger -expect log "space" 2
logger -expect log '"escaped' 2
logger -expect log 'quotes"' 2
test_args unquoted space
test_args "quoted space"
test_args "\"escaped quotes\""
test_args '"escaped quotes"'
logger -check-expected
# empty strings can be arguments
logger -expect log "a b c" 2
log a " " b "" c
log a ' ' b '' c
logger -check-expected
# quotes can be arguments
logger -expect log '^"' 2
logger -expect log "^'" 1
test_args "'" '"' "\""
logger -check-expected
# whitespace (or a lack thereof) shouldn't break things
logger -expect log 'a. .b' 2
log a" "b
log a' 'b
logger -expect log '.a.b c' 2
log "a"b c
log 'a'b c
logger -check-expected
# numeric literals don't need quotes (unless they include a space)
logger -expect log "1'd2" 1
logger -expect log "3'b 011" 1
test_args 1'd2
test_args "3'b 011"
logger -check-expected
# sidenote that apparently logger regexp ends with '\n$', but \n in the pattern is rejected
logger -expect log "^('|\").$" 2
log "
log '
logger -check-expected
# bonus test
test_args -opt "some value here" -b "some other \"escaped value\""
# special characters can appear in strings
logger -expect log "#no comment" 2
logger -expect log ";" 1
logger -warn "a comment"
log "this is #no comment"
log this is #a comment
log "semicolon; "; log "#no comment"
logger -check-expected
# special characters are quoted in echo
logger -expect log "'#'" 1
logger -expect log "';'" 1
logger -expect log "' '" 1
logger -expect log "\"'\"" 1
logger -expect log "'\"'" 1
logger -expect log '.\\.' 1
echo on
log '#'
log ';'
log ' '
log "'"
log '"'
log '\'
echo off
logger -check-expected
# should this be a backslash or an escaped space?
log escaped\ space?
# frontend/backend args also work as expected
logger -expect log "arg: inner \"escaped quotes\"" 3
logger -expect log 'filename: file name\..{1,3}' 3
logger -expect log "filename: <stdout>" 1
logger -expect log "arg: no_quotes" 2
read_test_args -arg "inner \"escaped quotes\"" "file name.v" "file name.ys"
write_test_args -arg "inner \"escaped quotes\"" "file name.out"
read_test_args -arg no_quotes plugin.cc
write_test_args -arg no_quotes
logger -check-expected