mirror of
https://github.com/YosysHQ/yosys
synced 2025-10-10 01:41:59 +00:00
tests/scripts: Use logger -check-expected
This commit is contained in:
parent
51dc09ca4a
commit
ab6bdb50a9
2 changed files with 97 additions and 12 deletions
|
@ -14,8 +14,8 @@ $yosys file\ name.v -o file\ name.out -b verilog
|
|||
$yosys -p 'read_verilog "file name.v"'
|
||||
$yosys -p 'write_verilog "file name.out"'
|
||||
|
||||
# this one isn't a normal frontend so doesn't
|
||||
# $yosys -p 'script "file name.ys"'
|
||||
# this one works if passes get their arguments unquoted
|
||||
$yosys -p 'script "file name.ys"'
|
||||
|
||||
# these get split by space and treated as two separate filenames
|
||||
# $yosys -p script\ "file name.ys"
|
||||
|
|
|
@ -1,19 +1,104 @@
|
|||
echo on
|
||||
logger -expect-no-warnings
|
||||
|
||||
# pass
|
||||
test_args "quoted spaces"
|
||||
test_args escaped\ spaces
|
||||
# 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' 1
|
||||
logger -expect log 'quotes\\"' 1
|
||||
|
||||
test_args unquoted space
|
||||
test_args "quoted space"
|
||||
test_args \"escaped quotes\"
|
||||
test_args "inner \"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\""
|
||||
|
||||
# frontend/backend
|
||||
# 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
|
||||
|
||||
# hash in string?
|
||||
test_args "this is \\ #not a comment"
|
||||
test_args this is #a comment
|
||||
test_args "#no comment"
|
||||
logger -check-expected
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue