X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=cgi-auth-flexible.git;a=blobdiff_plain;f=tests%2Fautotest;h=4737b1ef7c39c98853d956bf8621350645ead529;hp=60ef3ffce6357007db3af862c2a4affcd27fbdbb;hb=84f9fce0c2fd18154fdc3d36da648313de042455;hpb=a2d1d2c00b41c075fd61c899c8884c2012817343 diff --git a/tests/autotest b/tests/autotest index 60ef3ff..4737b1e 100755 --- a/tests/autotest +++ b/tests/autotest @@ -1,13 +1,32 @@ #!/usr/bin/expect -f +# This is part of CGI::Auth::Flexible, a perl CGI authentication module. +# +# Copyright 2012,2013,2015 Ian Jackson. +# Copyright 2012,2013,2015 Citrix. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version, with the "CAF Login Exception" +# as published by Ian Jackson (version 1, or at your option any +# later version) as an Additional Permission. +# +# 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 Affero General Public License for more details. + set testfile [lindex $argv 0] switch -glob -- $testfile { tests/*.at { - regsub {^tests/} $testfile {tests/tmp/} tt - regsub {\.at$} $tt {} tt + regsub {^tests/} $testfile {} id + regsub {\.at$} $id {} id + set tt "tests/tmp/$id" } * { + set id "\[[info pid]\]" set tt tests/tmp/[info pid] } } @@ -28,14 +47,16 @@ log_user 0 log_file -a $tt/expect.log proc timeout-abort {} { + global id send_log "\r\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" - error "aborting due to timeout" + error "$id: aborting due to timeout" } -set timeout 10 +set timeout 15 proc elog {args} { + global id set m "[list expect [lindex $args end]]" - puts stderr $m + puts stderr "$id: $m" # send_log "\n$m\n" eval expect $args } @@ -77,6 +98,65 @@ proc loginas {user {password sesame} {wanttxt ACCESSGRANTED}} { submitform-expect $wanttxt } +proc srcdump-save-check {} { + global tt + global outertar sd files + + set outertar $tt/t-srcdump.tgz + set sd $tt/t-srcdump.d + + send "\x15$outertar\r" + etxt "Download complete" + + exec mkdir $sd + + set files [exec tar -C $sd -zvxf - < $outertar] + + foreach f { + manifest.txt + licence.data + cgi-auth-flexible.pm + .gitignore + } { + set got($f) 0 + } + + if {[file exists .git]} { + set got(.git/objects/) 0 + } + + foreach f $files { + switch -glob -- $f { + licence.data - manifest.txt { + set got($f) 1 + } + *.tar { + foreach g [exec tar -C $sd -tf - < $sd/$f] { + switch -glob -- $g { + cgi-auth-flexible.pm - .gitignore - .git/objects/ { + set got($g) 1 + } + *~ { + error "file $g inside $f !" + } + .git/* { + } + *.db { + error "file $g inside $f outside .git !" + } + } + } + } + } + } + + foreach g [array names got] { + if {!$got($g)} { + error "file $g missing" + } + } +} + source $testfile -puts ok +puts "$id: ok"