mirror of
https://github.com/YosysHQ/yosys
synced 2025-10-10 09:48:06 +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 'read_verilog "file name.v"'
|
||||||
$yosys -p 'write_verilog "file name.out"'
|
$yosys -p 'write_verilog "file name.out"'
|
||||||
|
|
||||||
# this one isn't a normal frontend so doesn't
|
# this one works if passes get their arguments unquoted
|
||||||
# $yosys -p 'script "file name.ys"'
|
$yosys -p 'script "file name.ys"'
|
||||||
|
|
||||||
# these get split by space and treated as two separate filenames
|
# these get split by space and treated as two separate filenames
|
||||||
# $yosys -p script\ "file name.ys"
|
# $yosys -p script\ "file name.ys"
|
||||||
|
|
|
@ -1,19 +1,104 @@
|
||||||
echo on
|
logger -expect-no-warnings
|
||||||
|
|
||||||
# pass
|
# quoted strings are a single argument to passes
|
||||||
test_args "quoted spaces"
|
logger -expect log "quoted space" 1
|
||||||
test_args escaped\ spaces
|
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 \"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\""
|
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"
|
read_test_args -arg "inner \"escaped quotes\"" "file name.v" "file name.ys"
|
||||||
write_test_args -arg "inner \"escaped quotes\"" "file name.out"
|
write_test_args -arg "inner \"escaped quotes\"" "file name.out"
|
||||||
read_test_args -arg no_quotes plugin.cc
|
read_test_args -arg no_quotes plugin.cc
|
||||||
write_test_args -arg no_quotes
|
write_test_args -arg no_quotes
|
||||||
|
|
||||||
# hash in string?
|
logger -check-expected
|
||||||
test_args "this is \\ #not a comment"
|
|
||||||
test_args this is #a comment
|
|
||||||
test_args "#no comment"
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue