# Copyright 2021-2024 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # Testsuite self-tests for string_to_regexp/string_list_to_regexp. # The former is not explicitly tested, assuming string_list_to_regexp uses # string_to_regexp. set test_nr 0 proc test_regexp { args } { global test_nr incr test_nr set fargs {} set farg 1 foreach arg $args { if { $farg } { if { $arg == "--" } { set farg 0 continue } lappend fargs $arg } else { set re $arg break } } set res [string_list_to_regexp {*}$fargs] set test "#$test_nr: got expected re" if { $res eq $re } { pass $test } else { verbose -log "Expecting '$re'" verbose -log "Got '$res'" fail $test } set test "#$test_nr: re matches string" set str [join $fargs ""] if { [regexp $re $str] } { pass $test } else { verbose -log "Matching '$str'" verbose -log "Failed against '$re'" fail $test } } test_regexp abc -- abc test_regexp abc def -- abcdef test_regexp {\\} -- {\\\\} test_regexp "\n" -- "\n" test_regexp {\n} -- {\\n} test_regexp {\\} n -- {\\\\n}