Overview
Context
Changes
Modified build/test/test
from [cc021be514]
to [00a188ebb7].
| 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2526
27
28
29
30
3132
33
3435
36
37
38
39
4041
42
4344
45
46
4748
49
50
51
52
53
54
55
5657
5859
6061
62
6364
6566
67
6869
70
71
72
73
74
7576
77
78
79
80
8182
83
84
85
86
87
88
89
90
91
92 | 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
 | 
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
-
+
+
+
+
+
-
+
-
-
-
+
+
-
+
+
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
-
-
+
+
-
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
-
+
 | 
#! /bin/bash
VERSIONS="8.4.19 8.5.9 cvs_HEAD"
# Find the base directory
for x in 1 2 3 __fail__; do
	if [ "${x}" = "${fail}" ]; then
		echo 'Unable to find KitCreator, aborting.' >&2
		exit 1
	fi
	if [ -x kitcreator ]; then
		break
	fi
	cd ..
done
ROOTDIR="$(pwd)"
TESTDIR="${ROOTDIR}/build/test"
export ROOTDIR TESTDIR
# Handle command-line arguments
if [ "$1" = "clean" ]; then
	rm -rf "${TESTDIR}/kits"
fi
# Create place to put kits
mkdir "${TESTDIR}/kits" >/dev/null 2>/dev/null
if [ ! -d "${TESTDIR}/kits" ]; then
	echo 'Unable to create kits/ directory, aborting.' >&2
	exit 1
fi
# Cleanup
for file in "${TESTDIR}"/kits/*.log; do
	if echo "${file}" | grep -- '-build.log$' >/dev/null; then
		continue
	fi
rm -f "${rm -f "${file}"
done
failed=""TESTDIR}"/tclkit-*for kit in normal threaded for kit in normal normal-zip normal-threaded normal-threaded-zip normal-notk normal-threaded-notk normal-threaded-zip-notk min min-static win32 win32-zip win32-threaded win32-threaded-zip win32-notk win32-threaded-notk arm-min; do
	kitcreator="./kitcreator"
	args=""
	runnable="1"
	iszip="0"
	statictk="0"
	notk="0"
	# Handle base configuration
	case "${kit}" inmin static win32arm; do		normal)
normal|normal-*)
			true
			;;min)
			kitcreator="./build/make-minkit"
			iszip="1"
			notk="1"
			;;		threaded)			args="--enable-threads"			;;		static)
min-static)
			kitcreator="./build/make-minkit-static"
			iszip="1"
			notk="1"
			;;		win32)
win32|win32-*)
			kitcreator="./build/make-kit-win32"
			runnable="0"
			;;		arm)
arm-min)
			kitcreator="./build/make-kit-arm"
			runnable="0"
			notk="1"
			iszip="1"
			;;
	esac
	# Handle additional configuration
	tempkit="-${kit}-"
	for try in 1 2 3 4 5 6 7 8 9; do
		case "-${tempkit}-" in
			*-threaded-*)
				tempkit="$(echo "${tempkit}" | sed 's@-threaded-@-@')"
				args="${args} --enable-threads"
				;;
			*-zip-*)
				tempkit="$(echo "${tempkit}" | sed 's@-zip-@-@')"
				args="${args} --enable-kit-storage=zip"
				iszip="1"
				;;
			*-statictk-*)
				tempkit="$(echo "${tempkit}" | sed 's@-statictk-@-@')"
				if [ "${notk}" = "0" ]; then
					statictk="1"
				else
					echo "${kit}: Unable to create StaticTk and NoTk, ignoring StaticTk" >&2
				fi
				;;
			*-notk-*)
				tempkit="$(echo "${tempkit}" | sed 's@-notk-@-@')"
				if [ "${statictk}" = "0" ]; then
					notk="1"
				else
					echo "${kit}: Unable to create StaticTk and NoTk, ignoring NoTk" >&2
				fi
				;;
		esac
	done
	for version in ${VERSIONS}; do
		# Create Tclkit
		createdkit="tclkit-${version}"		outputname="${TESTDIR}/tclkit-${version}-${kit}"
outputname="${TESTDIR}/kits/tclkit-${version}-${kit}"
		buildlog="${outputname}-build.log"
		if [ ! -f "${outputname}" ]; then
			unset KITCREATOR_PKGS STATICTK
			echo "Creating Tclkit ${version}/${kit}..."
			if [ "${notk}" = "1" ]; then
				KITCREATOR_PKGS='itcl mk4tcl'
				export KITCREATOR_PKGS
			fi
			if [ "${statictk}" = "1" ]; then
				STATICTK="1"
				export STATICTK
			fi
			buildfailed="0"		"${kitcreator}" "${version}" ${args}
"${kitcreator}" "${version}" ${args} > "${buildlog}" 2>&1 || buildfailed="1"
			grep -n '^' */build.log >> "${buildlog}" 2>&1		if [ ! -f "${createdkit}" ]; then
			echo "Failed to create kit ${version}/${kit}" >&2
if [ ! -f "${createdkit}" ]; then
				echo "Failed to create kit ${version}/${kit}" >&2			failed="${failed} ${version}/${kit}-build"
failed="${failed} ${version}/${kit}-build"			continue
		fi
continue
			fi
			# Verify sanity of created kit
			issane=1
			## Verify the Win32 kits are 
			case "-${version}-${kit}-" in
				*-win32-notk-*|*-win32-*-notk-*)
					if ! file "${createdkit}" | grep 'MS Windows (console)' >/dev/null; then
						echo "Kit failed sanity check for being a console application" >&2
						issane=0
					fi
					;;
				*-win32-*)
					if ! file "${createdkit}" | grep 'MS Windows (GUI)' >/dev/null; then
						echo "Kit failed sanity check for being a GUI application" >&2
						issane=0
					fi
					;;
			esac
			## Verify the build completed without warnings
			if [ "${buildfailed}" = "1" ]; then
				echo "Kit failed sanity check for Building" >&2
				issane=0
			fi
			# Make note of sanity failure
			if [ "${issane}" != "1" ]; then
				echo "Kit failed sanity ${version}/${kit}" >&2
				failed="${failed} ${version}/${kit}-sanity"
				rm -f "${createdkit}"
				continue
			fi
			# Rename created kit to final destination		mv "${createdkit}" "${outputname}"
mv "${createdkit}" "${outputname}"
		fi
		# Test zip status
		if unzip -l "${outputname}" 2>&1 | grep 'boot\.tcl' >/dev/null; then
			canunzip="1"
		else
			canunzip="0"
		fi
		if [ "${iszip}" != "${canunzip}" ]; then
			echo "Failed to unzip zipkit or was able to unzip non-zipkit ${version}/${kit}" >&2
			failed="${failed} ${version}/${kit}-zip"
			continue
		fi
		# Do not continue past here for un-runnable kits
		if [ "${runnable}" != "1" ]; then
			continue
		fi
		# Perform battery of tests
		for testscp in "${TESTDIR}"/tests/*.tcl; do
			testscp_tag="$(basename "${testscp}" .tcl)"
			testscppre="$(dirname "${testscp}")/${testscp_tag}.sh"
			scplogfile="${outputname}-${testscp_tag}.log"
			(
				if [ -f "${testscppre}" ]; then		scr. "${testscppre}"
				fi
				"${outputname}" "${testscp}" "${outputname}" "${kit}" "${version}"
			) > "${scplogfile}" 2>&1
			if [ "$?" != "0" ]; then
				echo "Script failed: ${testscp_tag} on ${version}/${kit}" >&2iptid=0		for testscp in 'exit 0' 'if {[::tcl::pkgconfig get 64bit] == 0} { exit 0 } else { exit 1}'; doscriptid=$[${scriptid} + 1]			if ! echo "${testscp}" | "${outputname}" >/dev/null 2>/dev/null; thenecho "Script failed: ${testscp} on ${version}/${kit}" >&2				failed="${failed} ${version}/${kit}-test-${scfailed="${failed} ${version}/${kit}-test-${testscp_tag}"
				continue
			fi
		done
	done
done
if [ -n "${failed}" ]; then
	echo "Failed: ${failed}"
firiptid}" | 
Added build/test/tests/00-works.tcl version [96fa9438a9].
| 
| 
| 
 | 
1
2
3
 | 
+
+
+
 | 
#! /usr/bin/env tclsh
exit 0
 |  |  | 
Added build/test/tests/01-pkgconfig.tcl version [80d95d3049].
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
 | 
1
2
3
4
5
6
7
8
9
10
11
12
 | 
+
+
+
+
+
+
+
+
+
+
+
+
 | 
#! /usr/bin/env tclsh
# Tcl 8.4 doesn't support this test
if {$tcl_version == "8.4"} {
	exit 0
}
if {[tcl::pkgconfig get 64bit] == 0} {
	exit 0
}
exit 1
 |  |  |  |  |  |  |  |  |  |  |  | 
Added build/test/tests/02-nameofexe.tcl version [e8193d8a25].
| 
| 
| 
| 
| 
| 
| 
| 
| 
 | 
1
2
3
4
5
6
7
8
9
 | 
+
+
+
+
+
+
+
+
+
 | 
#! /usr/bin/env tclsh
set outputname [lindex $argv 0]
if {[info nameofexecutable] == $outputname} {
	exit 0
}
exit 1
 |  |  |  |  |  |  |  |  | 
Added build/test/tests/03-argv0.tcl version [c51072ab98].
| 
| 
| 
| 
| 
| 
| 
 | 
1
2
3
4
5
6
7
 | 
+
+
+
+
+
+
+
 | 
#! /usr/bin/env tclsh
if {[file tail $argv0] == "03-argv0.tcl"} {
	exit 0
}
exit 1
 |  |  |  |  |  |  | 
Added build/test/tests/04-version.tcl version [d679aaf9ec].
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
 | 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 | 
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
 | 
#! /usr/bin/env tclsh
set chkversion [lindex $argv 2]
# We are unable to make a reasonable determination of the version from a CVS
# tag.  Assume it's okay.
if {[string match "cvs_*" $chkversion]} {
	exit 0
}
if {[info patchlevel] == $chkversion} {
	exit 0
}
exit 1
 |  |  |  |  |  |  |  |  |  |  |  |  |  |  | 
Added build/test/tests/05-locale.sh version [62817958fb].
| 
| 
| 
| 
| 
 | 
1
2
3
4
5
 | 
+
+
+
+
+
 | 
#! /bin/bash
unset $(locale | cut -f 1 -d =)
LANG="UTF-8"
export LANG
 |  |  |  |  | 
Added build/test/tests/05-locale.tcl version [302e0dfbb0].
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
 | 
1
2
3
4
5
6
7
8
9
10
11
12
 | 
+
+
+
+
+
+
+
+
+
+
+
+
 | 
#! /usr/bin/env tclsh
# Tcl 8.4 doesn't support fetching the system encoding from the environment
if {$tcl_version == "8.4"} {
	exit 0
}
if {[encoding system] == "utf-8"} {
	exit 0
}
exit 1
 |  |  |  |  |  |  |  |  |  |  |  |