Convert tests to tcltest and integrate into Travis (#5)
* convert some tests to tcltest * exit with non-zero value if any test fails
This commit is contained in:
parent
cd15f4d7af
commit
2915c7e0c8
@ -17,4 +17,4 @@ script:
|
|||||||
- if [ -f /usr/local/opt/tcl-tk/lib/tclConfig.sh ]; then ./configure --with-tcl=/usr/local/opt/tcl-tk/lib --prefix=/usr/local; else ./configure; fi
|
- if [ -f /usr/local/opt/tcl-tk/lib/tclConfig.sh ]; then ./configure --with-tcl=/usr/local/opt/tcl-tk/lib --prefix=/usr/local; else ./configure; fi
|
||||||
- make
|
- make
|
||||||
- sudo make install
|
- sudo make install
|
||||||
|
- make test
|
||||||
|
@ -239,7 +239,7 @@ install-doc: doc
|
|||||||
done
|
done
|
||||||
|
|
||||||
test: binaries libraries
|
test: binaries libraries
|
||||||
$(TCLSH) `@CYGPATH@ $(srcdir)/tests/all.tcl` $(TESTFLAGS)
|
cd $(srcdir)/tests && $(TCLSH) `@CYGPATH@ ./all.tcl` $(TESTFLAGS)
|
||||||
|
|
||||||
shell: binaries libraries
|
shell: binaries libraries
|
||||||
@$(TCLSH) $(SCRIPT)
|
@$(TCLSH) $(SCRIPT)
|
||||||
|
38
tests/all.tcl
Executable file
38
tests/all.tcl
Executable file
@ -0,0 +1,38 @@
|
|||||||
|
#!/usr/bin/env tclsh
|
||||||
|
|
||||||
|
package require tcltest
|
||||||
|
|
||||||
|
::tcltest::configure -testdir [file dirname [file normalize [info script]]]
|
||||||
|
|
||||||
|
# The following will be upleveled and run whenever a test calls
|
||||||
|
# ::tcltest::loadTestedCommands
|
||||||
|
::tcltest::configure -load {
|
||||||
|
|
||||||
|
namespace import ::tcltest::*
|
||||||
|
}
|
||||||
|
|
||||||
|
::tcltest::skipFiles [list]
|
||||||
|
|
||||||
|
|
||||||
|
# Hook to determine if any of the tests failed. Then we can exit with
|
||||||
|
# proper exit code: 0=all passed, 1=one or more failed
|
||||||
|
proc tcltest::cleanupTestsHook {} {
|
||||||
|
variable numTests
|
||||||
|
set ::exitCode [expr {$numTests(Failed) > 0}]
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Allow command line arguments to be passed to the configure command
|
||||||
|
# This supports only running a single test or a single test file
|
||||||
|
::tcltest::configure {*}$argv
|
||||||
|
|
||||||
|
::tcltest::runAllTests
|
||||||
|
|
||||||
|
if {$exitCode == 1} {
|
||||||
|
puts "====== FAIL ====="
|
||||||
|
exit $exitCode
|
||||||
|
} else {
|
||||||
|
puts "====== SUCCESS ====="
|
||||||
|
}
|
||||||
|
|
@ -1,6 +0,0 @@
|
|||||||
package require TclCurl
|
|
||||||
|
|
||||||
|
|
||||||
set escaped [curl::escape {What about this?}]
|
|
||||||
puts "String to escape: What about this? - $escaped"
|
|
||||||
puts "And the reverse: [curl::unescape $escaped]"
|
|
19
tests/escape.test
Executable file
19
tests/escape.test
Executable file
@ -0,0 +1,19 @@
|
|||||||
|
#!/usr/local/bin/tclsh
|
||||||
|
|
||||||
|
package require TclCurl
|
||||||
|
package require tcltest
|
||||||
|
namespace import ::tcltest::*
|
||||||
|
|
||||||
|
test 1.01 {: Test escape} -body {
|
||||||
|
set escaped [curl::escape {What about this?}]
|
||||||
|
return $escaped
|
||||||
|
} -result {What%20about%20this%3F}
|
||||||
|
|
||||||
|
test 1.02 {: Test unescape} -body {
|
||||||
|
return [curl::unescape $escaped]
|
||||||
|
} -result {What about this?}
|
||||||
|
|
||||||
|
|
||||||
|
cleanupTests
|
||||||
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
|||||||
package require TclCurl
|
|
||||||
|
|
||||||
puts "[curl::version]"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
11
tests/version.test
Executable file
11
tests/version.test
Executable file
@ -0,0 +1,11 @@
|
|||||||
|
package require TclCurl
|
||||||
|
package require tcltest
|
||||||
|
namespace import ::tcltest::*
|
||||||
|
|
||||||
|
test 1.01 {: Test that curl::version returns something} -body {
|
||||||
|
set result [curl::version]
|
||||||
|
|
||||||
|
return $result
|
||||||
|
} -match regexp -result {^TclCurl Version \d+\.\d+\.\d+ \(libcurl/\d+\.\d+\.\d+ .*?\)$}
|
||||||
|
|
||||||
|
cleanupTests
|
@ -1,13 +0,0 @@
|
|||||||
package require TclCurl
|
|
||||||
|
|
||||||
|
|
||||||
puts "Version [curl::versioninfo -version]"
|
|
||||||
puts "Version (num): [curl::versioninfo -versionnum]"
|
|
||||||
puts "Host: [curl::versioninfo -host]"
|
|
||||||
puts "Features: [curl::versioninfo -features]"
|
|
||||||
puts "SSL version: [curl::versioninfo -sslversion]"
|
|
||||||
puts "SSL version (num): [curl::versioninfo -sslversionnum]"
|
|
||||||
puts "libz version: [curl::versioninfo -libzversion]"
|
|
||||||
puts "Protocols [curl::versioninfo -protocols]"
|
|
||||||
|
|
||||||
|
|
37
tests/versionInfo.test
Executable file
37
tests/versionInfo.test
Executable file
@ -0,0 +1,37 @@
|
|||||||
|
#!/usr/bin/tclsh
|
||||||
|
|
||||||
|
package require TclCurl
|
||||||
|
package require tcltest
|
||||||
|
namespace import ::tcltest::*
|
||||||
|
|
||||||
|
|
||||||
|
test 1.01 {: Test that -version returns something} -body {
|
||||||
|
return [curl::versioninfo -version]
|
||||||
|
} -match regexp -result {^\d+\.\d+\.\d+$}
|
||||||
|
|
||||||
|
test 1.02 {: Test that -versionnum returns something} -body {
|
||||||
|
return [curl::versioninfo -versionnum]
|
||||||
|
} -match regexp -result {^[0-9A-F]+$}
|
||||||
|
|
||||||
|
test 1.03 {: Test that -features returns something} -body {
|
||||||
|
return [curl::versioninfo -features]
|
||||||
|
} -match regexp -result {^([A-Z0-9]+ ?)+$}
|
||||||
|
|
||||||
|
test 1.04 {: Test that -sslversion returns something} -body {
|
||||||
|
return [curl::versioninfo -sslversion]
|
||||||
|
} -match regexp -result {^(OpenSSL|GnuTLS|LibreSSL)/\d+\.\d+\.\d+\w*$}
|
||||||
|
|
||||||
|
test 1.05 {: Test that -sslversionnum returns something} -body {
|
||||||
|
return [curl::versioninfo -sslversionnum]
|
||||||
|
} -match regexp -result {^\d+$}
|
||||||
|
|
||||||
|
test 1.06 {: Test that -libzversion returns something} -body {
|
||||||
|
return [curl::versioninfo -libzversion]
|
||||||
|
} -match regexp -result {^\d+\.\d+\.\d+$}
|
||||||
|
|
||||||
|
test 1.07 {: Test that -protocols returns something} -body {
|
||||||
|
return [curl::versioninfo -protocols]
|
||||||
|
} -match regexp -result {^([a-z0-9]+ ?)+$}
|
||||||
|
|
||||||
|
|
||||||
|
cleanupTests
|
Loading…
x
Reference in New Issue
Block a user