# file : tests/value/reverse.testscript # license : MIT; see accompanying LICENSE file # Test reversal to canonical/original representation. # .include ../common.testscript : name : { : dir : $* <>EOO x = s/foo/bar/ print ([string] $x) print "$x" print -e=$x EOI s/foo/bar/ s/foo/bar/ -e=s/foo/bar/ EOO : proj : $* <>EOO print ([strings] foo%bar foo% %bar) EOI foo%bar foo% %bar EOO : pair : $* <>EOO print ([strings] foo@bar foo/@bar/ foo@ @bar @ "@@") EOI foo@bar foo/@bar/ foo@ @bar @ @@ EOO : proj-pair : $* <>EOO print ([strings] xx%foo@yy%bar xx%foo/@yy%bar/) EOI xx%foo@yy%bar xx%foo/@yy%bar/ EOO : invalid : : We should be able to represent an invalid name provided it is quoted. : $* <>EOO print ([strings] "pkcs11:object=SIGN%20key") EOI pkcs11:object=SIGN%20key EOO } : dir-path : { : rel : $* <>"EOO" x = [dir_path] foo/bar/ print ([string] $x) print "$x" print "-I$x" EOI foo/bar/ foo/bar -Ifoo/bar EOO : root : if ($cxx.target.class != 'windows') { $* <>EOO x = [dir_path] / print ([string] $x) print "$x" print "-I$x" EOI / / -I/ EOO } } : reduce : : Test empty simple value reduction heuristics. : { : typed : $* <>"EOO" x = [string] n = [string,null] y = [strings] $x y += $x y += $n print $size($y) file{*}: y += $x file{x}: print $size($(file{x}: y)) for i: $x print iteration print $null($x[0]) EOI 2 3 iteration false EOO : untyped : $* <>"EOO" x = n = [null] y = $x y += $x y += $n print $size($y) file{*}: y += $x file{x}: print $size($(file{x}: y)) for i: $x print iteration print $null($x[0]) EOI 0 0 true EOO }