summaryrefslogtreecommitdiffstats
path: root/tests/winPipe.test
diff options
context:
space:
mode:
Diffstat (limited to 'tests/winPipe.test')
-rw-r--r--tests/winPipe.test413
1 files changed, 0 insertions, 413 deletions
diff --git a/tests/winPipe.test b/tests/winPipe.test
deleted file mode 100644
index 2d23544..0000000
--- a/tests/winPipe.test
+++ /dev/null
@@ -1,413 +0,0 @@
-#
-# winPipe.test --
-#
-# This file contains a collection of tests for tclWinPipe.c
-#
-# Sourcing this file into Tcl runs the tests and generates output for
-# errors. No output means no errors were found.
-#
-# Copyright (c) 1996 Sun Microsystems, Inc.
-# Copyright (c) 1998-1999 by Scriptics Corporation.
-#
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-#
-# RCS: @(#) $Id: winPipe.test,v 1.6 1999/04/16 00:47:37 stanton Exp $
-
-if {[lsearch [namespace children] ::tcltest] == -1} {
- source [file join [pwd] [file dirname [info script]] defs.tcl]
-}
-
-set bindir [file join [pwd] [file dirname [info nameofexecutable]]]
-set cat16 [file join $bindir cat16.exe]
-set cat32 [file join $bindir cat32.exe]
-
-set ::tcltest::testConfig(cat32) [file exists $cat32]
-set ::tcltest::testConfig(cat16) [file exists $cat16]
-
-if {[catch {puts console1 ""}]} {
- set ::tcltest::testConfig(AllocConsole) 1
-} else {
- set ::tcltest::testConfig(.console) 1
-}
-
-set big bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\n
-append big $big
-append big $big
-append big $big
-append big $big
-append big $big
-append big $big
-
-set f [open "little" w]
-puts -nonewline $f "little"
-close $f
-
-set f [open "big" w]
-puts -nonewline $f $big
-close $f
-
-proc contents {file} {
- set f [open $file r]
- set r [read $f]
- close $f
- set r
-}
-
-set f [open more w]
-puts $f {
- while {[eof stdin] == 0} {
- puts -nonewline [read stdin]
- }
-}
-close $f
-
-test winpipe-1.1 {32 bit comprehensive tests: from little file} {pcOnly stdio cat32} {
- exec $cat32 < little > stdout 2> stderr
- list [contents stdout] [contents stderr]
-} {little stderr32}
-test winpipe-1.2 {32 bit comprehensive tests: from big file} {pcOnly stdio cat32} {
- exec $cat32 < big > stdout 2> stderr
- list [contents stdout] [contents stderr]
-} "{$big} stderr32"
-test winpipe-1.3 {32 bit comprehensive tests: a little from pipe} {nt stdio cat32} {
- exec $tcltest more < little | $cat32 > stdout 2> stderr
- list [contents stdout] [contents stderr]
-} {little stderr32}
-test winpipe-1.4 {32 bit comprehensive tests: a lot from pipe} {nt stdio cat32} {
- exec $tcltest more < big | $cat32 > stdout 2> stderr
- list [contents stdout] [contents stderr]
-} "{$big} stderr32"
-test winpipe-1.5 {32 bit comprehensive tests: a lot from pipe} {95 stdio cat32} {
- exec command /c type big |& $cat32 > stdout 2> stderr
- list [contents stdout] [contents stderr]
-} "{$big} stderr32"
-test winpipe-1.6 {32 bit comprehensive tests: from console} \
- {pcOnly stdio cat32 AllocConsole} {
- # would block waiting for human input
-} {}
-test winpipe-1.7 {32 bit comprehensive tests: from NUL} {pcOnly stdio cat32} {
- exec $cat32 < nul > stdout 2> stderr
- list [contents stdout] [contents stderr]
-} {{} stderr32}
-test winpipe-1.8 {32 bit comprehensive tests: from socket} {pcOnly stdio cat32} {
- # doesn't work
-} {}
-test winpipe-1.9 {32 bit comprehensive tests: from nowhere} \
- {pcOnly stdio cat32 .console} {
- exec $cat32 > stdout 2> stderr
- list [contents stdout] [contents stderr]
-} {{} stderr32}
-test winpipe-1.10 {32 bit comprehensive tests: from file handle} \
- {pcOnly stdio cat32} {
- set f [open "little" r]
- exec $cat32 <@$f > stdout 2> stderr
- close $f
- list [contents stdout] [contents stderr]
-} {little stderr32}
-test winpipe-1.11 {32 bit comprehensive tests: read from application} \
- {pcOnly stdio cat32} {
- set f [open "|$cat32 < little" r]
- gets $f line
- catch {close $f} msg
- list $line $msg
-} {little stderr32}
-test winpipe-1.12 {32 bit comprehensive tests: a little to file} \
- {pcOnly stdio cat32} {
- exec $cat32 < little > stdout 2> stderr
- list [contents stdout] [contents stderr]
-} {little stderr32}
-test winpipe-1.13 {32 bit comprehensive tests: a lot to file} \
- {pcOnly stdio cat32} {
- exec $cat32 < big > stdout 2> stderr
- list [contents stdout] [contents stderr]
-} "{$big} stderr32"
-test winpipe-1.14 {32 bit comprehensive tests: a little to pipe} \
- {pcOnly stdio cat32} {
- exec $cat32 < little | $tcltest more > stdout 2> stderr
- list [contents stdout] [contents stderr]
-} {little stderr32}
-test winpipe-1.15 {32 bit comprehensive tests: a lot to pipe} \
- {pcOnly stdio cat32} {
- exec $cat32 < big | $tcltest more > stdout 2> stderr
- list [contents stdout] [contents stderr]
-} "{$big} stderr32"
-test winpipe-1.16 {32 bit comprehensive tests: to console} {pcOnly stdio cat32} {
- catch {exec $cat32 << "You should see this\n" >@stdout} msg
- set msg
-} stderr32
-test winpipe-1.17 {32 bit comprehensive tests: to NUL} {pcOnly stdio cat32} {
- # some apps hang when sending a large amount to NUL. $cat32 isn't one.
- catch {exec $cat32 < big > nul} msg
- set msg
-} stderr32
-test winpipe-1.18 {32 bit comprehensive tests: to nowhere} \
- {pcOnly stdio cat32 .console} {
- exec $cat32 < big >&@stdout
-} {}
-test winpipe-1.19 {32 bit comprehensive tests: to file handle} {pcOnly stdio cat32} {
- set f1 [open "stdout" w]
- set f2 [open "stderr" w]
- exec $cat32 < little >@$f1 2>@$f2
- close $f1
- close $f2
- list [contents stdout] [contents stderr]
-} {little stderr32}
-test winpipe-1.20 {32 bit comprehensive tests: write to application} \
- {pcOnly stdio cat32} {
- set f [open "|$cat32 > stdout" w]
- puts -nonewline $f "foo"
- catch {close $f} msg
- list [contents stdout] $msg
-} {foo stderr32}
-test winpipe-1.21 {32 bit comprehensive tests: read/write application} \
- {pcOnly stdio cat32} {
- set f [open "|$cat32" r+]
- puts $f $big
- puts $f \032
- flush $f
- set r [read $f 64]
- catch {close $f}
- set r
-} "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
-
-
-test winpipe-2.1 {16 bit comprehensive tests: from little file} {pcOnly stdio cat16} {
- exec $cat16 < little > stdout 2> stderr
- list [contents stdout] [contents stderr]
-} "little stderr16"
-test winpipe-2.2 {16 bit comprehensive tests: from big file} {pcOnly stdio cat16} {
- exec $cat16 < big > stdout 2> stderr
- list [contents stdout] [contents stderr]
-} "{$big} stderr16"
-test winpipe-2.3 {16 bit comprehensive tests: a little from pipe} {pcOnly stdio cat16} {
- exec $tcltest more < little | $cat16 > stdout 2> stderr
- list [contents stdout] [contents stderr]
-} {little stderr16}
-test winpipe-2.4 {16 bit comprehensive tests: a lot from pipe} {nt stdio cat16} {
- exec $cat16 < big | $cat16 > stdout 2> stderr
- list [contents stdout] [contents stderr]
-} "{$big} stderr16stderr16"
-test winpipe-2.5 {16 bit comprehensive tests: a lot from pipe} {95 stdio cat16} {
- exec $tcltest more < big | $cat16 > stdout 2> stderr
- list [contents stdout] [contents stderr]
-} "{$big} stderr16"
-test winpipe-2.6 {16 bit comprehensive tests: from console} \
- {pcOnly stdio cat16 AllocConsole} {
- # would block waiting for human input
-} {}
-test winpipe-2.7 {16 bit comprehensive tests: from NUL} {nt stdio cat16} {
- exec $cat16 < nul > stdout 2> stderr
- list [contents stdout] [contents stderr]
-} "{} stderr16"
-test winpipe-2.8 {16 bit comprehensive tests: from socket} {pcOnly stdio cat16} {
- # doesn't work
-} {}
-test winpipe-2.9 {16 bit comprehensive tests: from nowhere} {pcOnly stdio cat16 .console} {
- exec $cat16 > stdout 2> stderr
- list [contents stdout] [contents stderr]
-} "{} stderr16"
-test winpipe-2.10 {16 bit comprehensive tests: from file handle} {pcOnly stdio cat16} {
- set f [open "little" r]
- exec $cat16 <@$f > stdout 2> stderr
- close $f
- list [contents stdout] [contents stderr]
-} "little stderr16"
-test winpipe-2.11 {16 bit comprehensive tests: read from application} {pcOnly stdio cat16} {
- set f [open "|$cat16 < little" r]
- gets $f line
- catch {close $f} msg
- list $line $msg
-} "little stderr16"
-test winpipe-2.12 {16 bit comprehensive tests: a little to file} {pcOnly stdio cat16} {
- exec $cat16 < little > stdout 2> stderr
- list [contents stdout] [contents stderr]
-} "little stderr16"
-test winpipe-2.13 {16 bit comprehensive tests: a lot to file} {pcOnly stdio cat16} {
- exec $cat16 < big > stdout 2> stderr
- list [contents stdout] [contents stderr]
-} "{$big} stderr16"
-test winpipe-2.14 {16 bit comprehensive tests: a little to pipe} {pcOnly stdio cat16} {
- exec $cat16 < little | $tcltest more > stdout 2> stderr
- list [contents stdout] [contents stderr]
-} {little stderr16}
-test winpipe-2.15 {16 bit comprehensive tests: a lot to pipe} {pcOnly stdio cat16} {
- exec $cat16 < big | $tcltest more > stdout 2> stderr
- list [contents stdout] [contents stderr]
-} "{$big} stderr16"
-test winpipe-2.16 {16 bit comprehensive tests: to console} {pcOnly stdio cat16} {
- catch {exec $cat16 << "You should see this\n" >@stdout} msg
- set msg
-} [lindex stderr16 0]
-test winpipe-2.17 {16 bit comprehensive tests: to NUL} {nt stdio cat16} {
- # some apps hang when sending a large amount to NUL. cat16 isn't one.
- catch {exec $cat16 < big > nul} msg
- set msg
-} stderr16
-test winpipe-2.18 {16 bit comprehensive tests: to nowhere} {pcOnly stdio cat16 .console} {
- exec $cat16 < big >&@stdout
-} {}
-test winpipe-2.19 {16 bit comprehensive tests: to file handle} {pcOnly stdio cat16} {
- set f1 [open "stdout" w]
- set f2 [open "stderr" w]
- exec $cat16 < little >@$f1 2>@$f2
- close $f1
- close $f2
- list [contents stdout] [contents stderr]
-} "little stderr16"
-test winpipe-2.20 {16 bit comprehensive tests: write to application} {pcOnly stdio cat16} {
- set f [open "|$cat16 > stdout" w]
- puts -nonewline $f "foo"
- catch {close $f} msg
- list [contents stdout] $msg
-} "foo stderr16"
-test winpipe-2.21 {16 bit comprehensive tests: read/write application} {nt stdio cat16} {
- set f [open "|$cat16" r+]
- puts $f $big
- puts $f \032
- flush $f
- set r [read $f 64]
- catch {close $f}
- set r
-} "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
-file delete more
-
-test winpipe-4.1 {Tcl_WaitPid} {nt stdio} {
- proc readResults {f} {
- global x result
- if { [eof $f] } {
- close $f
- set x 1
- } else {
- set line [read $f ]
- set result "$result$line"
- }
- }
-
- set f [open "|$cat32 < big 2> stderr" r]
- fconfigure $f -buffering none -blocking 0
- fileevent $f readable "readResults $f"
- set x 0
- set result ""
- vwait x
- list $result $x [contents stderr]
-} "{$big} 1 stderr32"
-
-close [open nothing w]
-
-catch {set env_tmp $env(TMP)}
-catch {set env_temp $env(TEMP)}
-
-set env(TMP) c:/
-set env(TEMP) c:/
-
-test winpipe-4.1 {TclpCreateTempFile: cleanup temp files} {pcOnly stdio} {
- set x {}
- set existing [glob -nocomplain c:/tcl*.tmp]
- exec $tcltest < nothing
- foreach p [glob -nocomplain c:/tcl*.tmp] {
- if {[lsearch $existing $p] == -1} {
- lappend x $p
- }
- }
- set x
-} {}
-test winpipe-4.2 {TclpCreateTempFile: TMP and TEMP not defined} {pcOnly stdio} {
- set tmp $env(TMP)
- set temp $env(TEMP)
- unset env(TMP)
- unset env(TEMP)
- exec $tcltest < nothing
- set env(TMP) $tmp
- set env(TEMP) $temp
- set x {}
-} {}
-test winpipe-4.3 {TclpCreateTempFile: TMP specifies non-existent directory} \
- {pcOnly stdio} {
- set tmp $env(TMP)
- set env(TMP) snarky
- exec $tcltest < nothing
- set env(TMP) $tmp
- set x {}
-} {}
-test winpipe-4.4 {TclpCreateTempFile: TEMP specifies non-existent directory} \
- {pcOnly stdio} {
- set tmp $env(TMP)
- set temp $env(TEMP)
- unset env(TMP)
- set env(TEMP) snarky
- exec $tcltest < nothing
- set env(TMP) $tmp
- set env(TEMP) $temp
- set x {}
-} {}
-
-test winpipe-5.1 {PipeSetupProc & PipeCheckProc: read threads} \
- {pcOnly stdio cat32} {
- set f [open "|$cat32" r+]
- fconfigure $f -blocking 0
- fileevent $f writable { set x writable }
- set x {}
- vwait x
- fileevent $f writable {}
- fileevent $f readable { lappend x readable }
- after 100 { lappend x timeout }
- vwait x
- puts $f foobar
- flush $f
- vwait x
- lappend x [read $f]
- after 100 { lappend x timeout }
- vwait x
- lappend x [catch {close $f} msg] $msg
-} {writable timeout readable {foobar
-} timeout 1 stderr32}
-test winpipe-5.2 {PipeSetupProc & PipeCheckProc: write threads} \
- {pcOnly stdio cat32} {
- set f [open "|$cat32" r+]
- fconfigure $f -blocking 0
- fileevent $f writable { set x writable }
- set x {}
- vwait x
- puts -nonewline $f $big$big$big$big
- flush $f
- after 100 { lappend x timeout }
- vwait x
- lappend x [catch {close $f} msg] $msg
-} {writable timeout 0 {}}
-
-makeFile {
- puts "[list $argv0 $argv]"
-} echoArgs.tcl
-
-test winpipe-4.1 {BuildCommandLine: null arguments} {pcOnly stdio} {
- exec $tcltest echoArgs.tcl foo "" bar
-} {echoArgs.tcl {foo {} bar}}
-test winpipe-4.1 {BuildCommandLine: null arguments} {pcOnly stdio} {
- exec $tcltest echoArgs.tcl foo \" bar
-} {echoArgs.tcl {foo {"} bar}}
-
-# restore old values for env(TMP) and env(TEMP)
-
-if {[catch {set env(TMP) $env_tmp}]} {
- unset env(TMP)
-}
-if {[catch {set env(TEMP) $env_temp}]} {
- unset env(TEMP)
-}
-
-# cleanup
-file delete big little stdout stderr nothing echoArgs.tcl
-::tcltest::cleanupTests
-return
-
-
-
-
-
-
-
-
-
-
-