Check-in [4c09346858]

Not logged in
Bounty program for improvements to Tcl and certain Tcl packages.
Tcl 2019 Conference, Houston/TX, US, Nov 4-8
Send your abstracts to [email protected]
or submit via the online form by Sep 9.

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Enable closing of streams and use it to limit the number of open streams during tests by closing small streams for failure reporting quickly. Without that a large number of test failures can easily go over the max amount of open files allowed by the OS.
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: 4c093468583ea392ab301026d4c5cdc4784e109ec6257a4ba72585ce85da2248
User & Date: aku 2018-03-27 16:30:42
Context
2018-03-27
16:34
Tests use --include-dir to redirect the build into a local directory. This means that a build which needs additional include directories cannot have any during testing, making build for test impossible. Added a --test-include option as a hack to provide such directories. check-in: e1656e5ba2 user: aku tags: trunk
16:30
Enable closing of streams and use it to limit the number of open streams during tests by closing small streams for failure reporting quickly. Without that a large number of test failures can easily go over the max amount of open files allowed by the OS. check-in: 4c09346858 user: aku tags: trunk
2017-10-05
06:28
Show extended stack traces when `kt::local` and sibling run into trouble. check-in: 273c213e57 user: aku tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to stream.tcl.

72
73
74
75
76
77
78









79
80
81
82
83
84
85
	set ch [dict get $stream $name]
    }

    ::puts $ch $text
    flush  $ch
    return
}










# # ## ### ##### ######## ############# #####################
## Terminal log.

proc ::kettle::stream::term {mode text} {
    if {($mode ne "always") &&
	($mode ne [option get --log-mode])} return






>
>
>
>
>
>
>
>
>







72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
	set ch [dict get $stream $name]
    }

    ::puts $ch $text
    flush  $ch
    return
}

proc ::kettle::stream::done {name} {
    variable stream
    if {![active]} return
    if {![dict exists $stream $name]} return
    close [dict get $stream $name]
    dict unset stream $name
    return
}

# # ## ### ##### ######## ############# #####################
## Terminal log.

proc ::kettle::stream::term {mode text} {
    if {($mode ne "always") &&
	($mode ne [option get --log-mode])} return

Changes to testsuite.tcl.

1025
1026
1027
1028
1029
1030
1031


1032
1033
1034
1035
1036
1037
1038
	    set fname [string map {
		/ %2f
		: %3a
	    } $test]

	    stream to result.${fname}.expected {$expected}
	    stream to result.${fname}.actual   {$actual}


	}

	if {$setup ne {}} {
	    stream to faildetails {---- Test setup failed:}
	    stream to faildetails {[string range $setup 0 end-1]}
	}







>
>







1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
	    set fname [string map {
		/ %2f
		: %3a
	    } $test]

	    stream to result.${fname}.expected {$expected}
	    stream to result.${fname}.actual   {$actual}
	    stream done result.${fname}.expected
	    stream done result.${fname}.actual
	}

	if {$setup ne {}} {
	    stream to faildetails {---- Test setup failed:}
	    stream to faildetails {[string range $setup 0 end-1]}
	}