diff options
author | dgp <dgp@users.sourceforge.net> | 2005-04-27 18:48:21 (GMT) |
---|---|---|
committer | dgp <dgp@users.sourceforge.net> | 2005-04-27 18:48:21 (GMT) |
commit | 7842c9275791d34656b40014d43e8177a94010ad (patch) | |
tree | aa7be44c0131f5a0a25dbcef7634100323b8a039 /tests | |
parent | ec3f17501d816894810d4d4ea984e4f60e6217fe (diff) | |
download | tcl-7842c9275791d34656b40014d43e8177a94010ad.zip tcl-7842c9275791d34656b40014d43e8177a94010ad.tar.gz tcl-7842c9275791d34656b40014d43e8177a94010ad.tar.bz2 |
TIP#183 IMPLEMENTATION [Patch 577093]
* generic/tclIOUtil.c (TclGetOpenModeEx): New routine.
* generic/tclInt.h:
* generic/tclIO.c (Tcl_OpenObjCmd): Support for "b" and
* doc/open.n: "BINARY" in "access" argument to [open].
* tests/ioCmd.test:
Diffstat (limited to 'tests')
-rw-r--r-- | tests/ioCmd.test | 38 |
1 files changed, 36 insertions, 2 deletions
diff --git a/tests/ioCmd.test b/tests/ioCmd.test index 45f889d..49da62e 100644 --- a/tests/ioCmd.test +++ b/tests/ioCmd.test @@ -12,7 +12,7 @@ # See the file "license.terms" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. # -# RCS: @(#) $Id: ioCmd.test,v 1.21 2004/06/23 15:36:57 dkf Exp $ +# RCS: @(#) $Id: ioCmd.test,v 1.22 2005/04/27 18:48:26 dgp Exp $ if {[lsearch [namespace children] ::tcltest] == -1} { package require tcltest @@ -426,11 +426,36 @@ unmatched open brace in list \"open \$path(test3) \"FOO \\{BAR BAZ\"\"" test iocmd-12.7 {POSIX open access modes: errors} { list [catch {open $path(test3) {FOO BAR BAZ}} msg] $msg -} {1 {invalid access mode "FOO": must be RDONLY, WRONLY, RDWR, APPEND, CREAT EXCL, NOCTTY, NONBLOCK, or TRUNC}} +} {1 {invalid access mode "FOO": must be RDONLY, WRONLY, RDWR, APPEND, BINARY, CREAT, EXCL, NOCTTY, NONBLOCK, or TRUNC}} test iocmd-12.8 {POSIX open access modes: errors} { list [catch {open $path(test3) {TRUNC CREAT}} msg] $msg } {1 {access mode must include either RDONLY, WRONLY, or RDWR}} close [open $path(test3) w] +test iocmd-12.9 {POSIX open access modes: BINARY} { + list [catch {open $path(test1) BINARY} msg] $msg +} {1 {access mode must include either RDONLY, WRONLY, or RDWR}} +test iocmd-12.10 {POSIX open access modes: BINARY} { + set f [open $path(test1) {WRONLY BINARY TRUNC}] + puts $f a + puts $f b + puts -nonewline $f c ;# contents are now 5 bytes: a\nb\nc + close $f + set f [open $path(test1) r] + fconfigure $f -translation binary + set result [string length [read $f]] + close $f + set result +} 5 +test iocmd-12.11 {POSIX open access modes: BINARY} { + set f [open $path(test1) {WRONLY BINARY TRUNC}] + puts $f \u0248 ;# gets truncated to \u0048 + close $f + set f [open $path(test1) r] + fconfigure $f -translation binary + set result [read -nonewline $f] + close $f + set result +} \u0048 test iocmd-13.1 {errors in open command} { list [catch {open} msg] $msg @@ -452,6 +477,15 @@ test iocmd-13.6 {errors in open command} { regsub [file join {} _non_existent_] $msg "_non_existent_" msg string tolower $msg } {1 {couldn't open "_non_existent_": no such file or directory} {posix enoent {no such file or directory}}} +test iocmd-13.7 {errors in open command} { + list [catch {open $path(test1) b} msg] $msg +} {1 {illegal access mode "b"}} +test iocmd-13.8 {errors in open command} { + list [catch {open $path(test1) rbb} msg] $msg +} {1 {illegal access mode "rbb"}} +test iocmd-13.9 {errors in open command} { + list [catch {open $path(test1) r++} msg] $msg +} {1 {illegal access mode "r++"}} test iocmd-14.1 {file id parsing errors} { list [catch {eof gorp} msg] $msg $errorCode |