From nobody@FreeBSD.org  Thu Aug  8 23:13:59 2013
Return-Path: <nobody@FreeBSD.org>
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1])
	(using TLSv1 with cipher ADH-AES256-SHA (256/256 bits))
	(No client certificate requested)
	by hub.freebsd.org (Postfix) with ESMTP id 4F6A3B4E
	for <freebsd-gnats-submit@FreeBSD.org>; Thu,  8 Aug 2013 23:13:59 +0000 (UTC)
	(envelope-from nobody@FreeBSD.org)
Received: from oldred.freebsd.org (oldred.freebsd.org [8.8.178.121])
	(using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
	(No client certificate requested)
	by mx1.freebsd.org (Postfix) with ESMTPS id 2D3122A38
	for <freebsd-gnats-submit@FreeBSD.org>; Thu,  8 Aug 2013 23:13:59 +0000 (UTC)
Received: from oldred.freebsd.org ([127.0.1.6])
	by oldred.freebsd.org (8.14.5/8.14.7) with ESMTP id r78NDwub040865
	for <freebsd-gnats-submit@FreeBSD.org>; Thu, 8 Aug 2013 23:13:58 GMT
	(envelope-from nobody@oldred.freebsd.org)
Received: (from nobody@localhost)
	by oldred.freebsd.org (8.14.5/8.14.5/Submit) id r78NDwYT040864;
	Thu, 8 Aug 2013 23:13:58 GMT
	(envelope-from nobody)
Message-Id: <201308082313.r78NDwYT040864@oldred.freebsd.org>
Date: Thu, 8 Aug 2013 23:13:58 GMT
From: Garrett Cooper <yaneurabeya@gmail.com>
To: freebsd-gnats-submit@FreeBSD.org
Subject: builtins/locale1.0 fails
X-Send-Pr-Version: www-3.1
X-GNATS-Notify:

>Number:         181151
>Category:       misc
>Synopsis:       builtins/locale1.0 fails regression-test
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Thu Aug 08 23:20:00 UTC 2013
>Closed-Date:    
>Last-Modified:  Tue Jan 21 22:30:02 UTC 2014
>Originator:     Garrett Cooper
>Release:        10-CURRENT
>Organization:
EMC Isilon
>Environment:
FreeBSD fuji-current.local 10.0-CURRENT FreeBSD 10.0-CURRENT #10 c9d2bd6-dirty: Wed Aug  7 18:55:03 PDT 2013     root@fuji-current.local:/usr/obj/usr/src/sys/FUJI-NOCOMPAT  i386
>Description:
# sh -c 'prove -rv /usr/src.svn/tools/regression/bin/sh/'
/usr/src.svn/tools/regression/bin/sh/regress.t .. 
1..350
ok 1 - ./builtins/alias.0
ok 2 - ./builtins/alias.1
ok 3 - ./builtins/alias3.0
ok 4 - ./builtins/break1.0
ok 5 - ./builtins/break2.0
ok 6 - ./builtins/break3.0
ok 7 - ./builtins/break4.4
ok 8 - ./builtins/break5.4
ok 9 - ./builtins/builtin1.0
ok 10 - ./builtins/case1.0
ok 11 - ./builtins/case10.0
ok 12 - ./builtins/case11.0
ok 13 - ./builtins/case12.0
ok 14 - ./builtins/case13.0
ok 15 - ./builtins/case14.0
ok 16 - ./builtins/case15.0
ok 17 - ./builtins/case16.0
ok 18 - ./builtins/case17.0
ok 19 - ./builtins/case18.0
ok 20 - ./builtins/case19.0
ok 21 - ./builtins/case2.0
ok 22 - ./builtins/case3.0
ok 23 - ./builtins/case4.0
ok 24 - ./builtins/case5.0
ok 25 - ./builtins/case6.0
ok 26 - ./builtins/case7.0
ok 27 - ./builtins/case8.0
ok 28 - ./builtins/case9.0
ok 29 - ./builtins/cd1.0
ok 30 - ./builtins/cd2.0
ok 31 - ./builtins/cd3.0
ok 32 - ./builtins/cd4.0
ok 33 - ./builtins/cd5.0
ok 34 - ./builtins/cd6.0
ok 35 - ./builtins/cd7.0
ok 36 - ./builtins/cd8.0
ok 37 - ./builtins/command1.0
ok 38 - ./builtins/command10.0
ok 39 - ./builtins/command11.0
ok 40 - ./builtins/command2.0
ok 41 - ./builtins/command3.0
ok 42 - ./builtins/command4.0
ok 43 - ./builtins/command5.0
ok 44 - ./builtins/command6.0
ok 45 - ./builtins/command7.0
ok 46 - ./builtins/command8.0
ok 47 - ./builtins/command9.0
ok 48 - ./builtins/dot1.0
ok 49 - ./builtins/dot2.0
ok 50 - ./builtins/dot3.0
ok 51 - ./builtins/dot4.0
ok 52 - ./builtins/eval1.0
ok 53 - ./builtins/eval2.0
ok 54 - ./builtins/eval3.0
ok 55 - ./builtins/eval4.0
ok 56 - ./builtins/eval5.0
ok 57 - ./builtins/eval6.0
ok 58 - ./builtins/exec1.0
ok 59 - ./builtins/exec2.0
ok 60 - ./builtins/exit1.0
ok 61 - ./builtins/exit2.8
ok 62 - ./builtins/exit3.0
ok 63 - ./builtins/export1.0
ok 64 - ./builtins/fc1.0
ok 65 - ./builtins/fc2.0
ok 66 - ./builtins/for1.0
ok 67 - ./builtins/for2.0
ok 68 - ./builtins/for3.0
ok 69 - ./builtins/getopts1.0
ok 70 - ./builtins/getopts2.0
ok 71 - ./builtins/hash1.0
ok 72 - ./builtins/hash2.0
ok 73 - ./builtins/hash3.0
ok 74 - ./builtins/hash4.0
ok 75 - ./builtins/lineno.0
ok 76 - ./builtins/local1.0
ok 77 - ./builtins/local2.0
ok 78 - ./builtins/local3.0
not ok 79 - ./builtins/locale1.0 # wrong exit status
ok 80 - ./builtins/printf1.0
ok 81 - ./builtins/printf2.0
ok 82 - ./builtins/printf3.0
ok 83 - ./builtins/printf4.0
ok 84 - ./builtins/read1.0
ok 85 - ./builtins/read2.0
ok 86 - ./builtins/read3.0
ok 87 - ./builtins/read4.0
ok 88 - ./builtins/read5.0
ok 89 - ./builtins/read6.0
ok 90 - ./builtins/read7.0
ok 91 - ./builtins/return1.0
ok 92 - ./builtins/return2.1
ok 93 - ./builtins/return3.1
ok 94 - ./builtins/return4.0
ok 95 - ./builtins/return5.0
ok 96 - ./builtins/return6.4
ok 97 - ./builtins/return7.4
ok 98 - ./builtins/set1.0
ok 99 - ./builtins/set2.0
ok 100 - ./builtins/trap1.0
ok 101 - ./builtins/trap10.0
ok 102 - ./builtins/trap11.0
ok 103 - ./builtins/trap12.0
ok 104 - ./builtins/trap2.0
ok 105 - ./builtins/trap3.0
ok 106 - ./builtins/trap4.0
ok 107 - ./builtins/trap5.0
ok 108 - ./builtins/trap6.0
ok 109 - ./builtins/trap7.0
ok 110 - ./builtins/trap8.0
ok 111 - ./builtins/trap9.0
ok 112 - ./builtins/type1.0
ok 113 - ./builtins/type2.0
ok 114 - ./builtins/unalias.0
ok 115 - ./builtins/var-assign.0
ok 116 - ./builtins/var-assign2.0
ok 117 - ./builtins/wait1.0
ok 118 - ./builtins/wait10.0
ok 119 - ./builtins/wait2.0
ok 120 - ./builtins/wait3.0
ok 121 - ./builtins/wait4.0
ok 122 - ./builtins/wait5.0
ok 123 - ./builtins/wait6.0
ok 124 - ./builtins/wait7.0
ok 125 - ./builtins/wait8.0
ok 126 - ./builtins/wait9.127
ok 127 - ./errors/assignment-error1.0
ok 128 - ./errors/assignment-error2.0
ok 129 - ./errors/backquote-error1.0
ok 130 - ./errors/backquote-error2.0
ok 131 - ./errors/bad-binary1.126
ok 132 - ./errors/bad-keyword1.0
ok 133 - ./errors/bad-parm-exp1.0
ok 134 - ./errors/bad-parm-exp2.2
ok 135 - ./errors/bad-parm-exp3.2
ok 136 - ./errors/bad-parm-exp4.2
ok 137 - ./errors/bad-parm-exp5.2
ok 138 - ./errors/bad-parm-exp6.2
ok 139 - ./errors/option-error.0
ok 140 - ./errors/redirection-error.0
ok 141 - ./errors/redirection-error2.2
ok 142 - ./errors/redirection-error3.0
ok 143 - ./errors/redirection-error4.0
ok 144 - ./errors/redirection-error5.0
ok 145 - ./errors/redirection-error6.0
ok 146 - ./errors/redirection-error7.0
ok 147 - ./errors/write-error1.0
ok 148 - ./execution/bg1.0
ok 149 - ./execution/bg2.0
ok 150 - ./execution/bg3.0
ok 151 - ./execution/bg4.0
ok 152 - ./execution/fork1.0
ok 153 - ./execution/fork2.0
ok 154 - ./execution/fork3.0
ok 155 - ./execution/func1.0
ok 156 - ./execution/func2.0
ok 157 - ./execution/func3.0
ok 158 - ./execution/hash1.0
ok 159 - ./execution/int-cmd1.0
ok 160 - ./execution/killed1.0
ok 161 - ./execution/killed2.0
ok 162 - ./execution/not1.0
ok 163 - ./execution/not2.0
ok 164 - ./execution/path1.0
ok 165 - ./execution/redir1.0
ok 166 - ./execution/redir2.0
ok 167 - ./execution/redir3.0
ok 168 - ./execution/redir4.0
ok 169 - ./execution/redir5.0
ok 170 - ./execution/redir6.0
ok 171 - ./execution/redir7.0
ok 172 - ./execution/set-n1.0
ok 173 - ./execution/set-n2.0
ok 174 - ./execution/set-n3.0
ok 175 - ./execution/set-n4.0
ok 176 - ./execution/set-x1.0
ok 177 - ./execution/set-x2.0
ok 178 - ./execution/set-x3.0
ok 179 - ./execution/shellproc1.0
ok 180 - ./execution/subshell1.0
ok 181 - ./execution/subshell2.0
ok 182 - ./execution/subshell3.0
ok 183 - ./execution/subshell4.0
ok 184 - ./execution/unknown1.0
ok 185 - ./execution/var-assign1.0
ok 186 - ./expansion/arith1.0
ok 187 - ./expansion/arith10.0
ok 188 - ./expansion/arith11.0
ok 189 - ./expansion/arith12.0
ok 190 - ./expansion/arith2.0
ok 191 - ./expansion/arith3.0
ok 192 - ./expansion/arith4.0
ok 193 - ./expansion/arith5.0
ok 194 - ./expansion/arith6.0
ok 195 - ./expansion/arith7.0
ok 196 - ./expansion/arith8.0
ok 197 - ./expansion/arith9.0
ok 198 - ./expansion/assign1.0
ok 199 - ./expansion/cmdsubst1.0
ok 200 - ./expansion/cmdsubst10.0
ok 201 - ./expansion/cmdsubst11.0
ok 202 - ./expansion/cmdsubst12.0
ok 203 - ./expansion/cmdsubst13.0
ok 204 - ./expansion/cmdsubst14.0
ok 205 - ./expansion/cmdsubst15.0
ok 206 - ./expansion/cmdsubst16.0
ok 207 - ./expansion/cmdsubst17.0
ok 208 - ./expansion/cmdsubst2.0
ok 209 - ./expansion/cmdsubst3.0
ok 210 - ./expansion/cmdsubst4.0
ok 211 - ./expansion/cmdsubst5.0
ok 212 - ./expansion/cmdsubst6.0
ok 213 - ./expansion/cmdsubst7.0
ok 214 - ./expansion/cmdsubst8.0
ok 215 - ./expansion/cmdsubst9.0
ok 216 - ./expansion/export1.0
ok 217 - ./expansion/export2.0
ok 218 - ./expansion/export3.0
ok 219 - ./expansion/heredoc1.0
ok 220 - ./expansion/heredoc2.0
ok 221 - ./expansion/ifs1.0
ok 222 - ./expansion/ifs2.0
ok 223 - ./expansion/ifs3.0
ok 224 - ./expansion/ifs4.0
ok 225 - ./expansion/length1.0
ok 226 - ./expansion/length2.0
ok 227 - ./expansion/length3.0
ok 228 - ./expansion/length4.0
ok 229 - ./expansion/length5.0
ok 230 - ./expansion/length6.0
ok 231 - ./expansion/length7.0
ok 232 - ./expansion/length8.0
ok 233 - ./expansion/local1.0
ok 234 - ./expansion/local2.0
ok 235 - ./expansion/pathname1.0
ok 236 - ./expansion/pathname2.0
ok 237 - ./expansion/pathname3.0
ok 238 - ./expansion/pathname4.0
ok 239 - ./expansion/plus-minus1.0
ok 240 - ./expansion/plus-minus2.0
ok 241 - ./expansion/plus-minus3.0
ok 242 - ./expansion/plus-minus4.0
ok 243 - ./expansion/plus-minus5.0
ok 244 - ./expansion/plus-minus6.0
ok 245 - ./expansion/plus-minus7.0
ok 246 - ./expansion/plus-minus8.0
ok 247 - ./expansion/question1.0
ok 248 - ./expansion/readonly1.0
ok 249 - ./expansion/set-u1.0
ok 250 - ./expansion/set-u2.0
ok 251 - ./expansion/set-u3.0
ok 252 - ./expansion/tilde1.0
ok 253 - ./expansion/tilde2.0
ok 254 - ./expansion/trim1.0
ok 255 - ./expansion/trim2.0
ok 256 - ./expansion/trim3.0
ok 257 - ./expansion/trim4.0
ok 258 - ./expansion/trim5.0
ok 259 - ./expansion/trim6.0
ok 260 - ./expansion/trim7.0
ok 261 - ./expansion/trim8.0
ok 262 - ./parameters/env1.0
ok 263 - ./parameters/exitstatus1.0
ok 264 - ./parameters/mail1.0
ok 265 - ./parameters/mail2.0
ok 266 - ./parameters/optind1.0
ok 267 - ./parameters/positional1.0
ok 268 - ./parameters/positional2.0
ok 269 - ./parameters/pwd1.0
ok 270 - ./parameters/pwd2.0
ok 271 - ./parser/alias1.0
ok 272 - ./parser/alias10.0
ok 273 - ./parser/alias2.0
ok 274 - ./parser/alias3.0
ok 275 - ./parser/alias4.0
ok 276 - ./parser/alias5.0
ok 277 - ./parser/alias6.0
ok 278 - ./parser/alias7.0
ok 279 - ./parser/alias8.0
ok 280 - ./parser/alias9.0
ok 281 - ./parser/and-pipe-not.0
ok 282 - ./parser/case1.0
ok 283 - ./parser/case2.0
ok 284 - ./parser/dollar-quote1.0
ok 285 - ./parser/dollar-quote10.0
ok 286 - ./parser/dollar-quote11.0
ok 287 - ./parser/dollar-quote2.0
ok 288 - ./parser/dollar-quote3.0
ok 289 - ./parser/dollar-quote4.0
ok 290 - ./parser/dollar-quote5.0
ok 291 - ./parser/dollar-quote6.0
ok 292 - ./parser/dollar-quote7.0
ok 293 - ./parser/dollar-quote8.0
ok 294 - ./parser/dollar-quote9.0
ok 295 - ./parser/empty-braces1.0
ok 296 - ./parser/for1.0
ok 297 - ./parser/for2.0
ok 298 - ./parser/func1.0
ok 299 - ./parser/func2.0
ok 300 - ./parser/func3.0
ok 301 - ./parser/heredoc1.0
ok 302 - ./parser/heredoc10.0
ok 303 - ./parser/heredoc11.0
ok 304 - ./parser/heredoc2.0
ok 305 - ./parser/heredoc3.0
ok 306 - ./parser/heredoc4.0
ok 307 - ./parser/heredoc5.0
ok 308 - ./parser/heredoc6.0
ok 309 - ./parser/heredoc7.0
ok 310 - ./parser/heredoc8.0
ok 311 - ./parser/heredoc9.0
ok 312 - ./parser/no-space1.0
ok 313 - ./parser/no-space2.0
ok 314 - ./parser/only-redir1.0
ok 315 - ./parser/pipe-not1.0
ok 316 - ./set-e/and1.0
ok 317 - ./set-e/and2.1
ok 318 - ./set-e/and3.0
ok 319 - ./set-e/and4.0
ok 320 - ./set-e/background1.0
ok 321 - ./set-e/cmd1.0
ok 322 - ./set-e/cmd2.1
ok 323 - ./set-e/elif1.0
ok 324 - ./set-e/elif2.0
ok 325 - ./set-e/eval1.0
ok 326 - ./set-e/eval2.1
ok 327 - ./set-e/for1.0
ok 328 - ./set-e/func1.0
ok 329 - ./set-e/func2.1
ok 330 - ./set-e/if1.0
ok 331 - ./set-e/if2.0
ok 332 - ./set-e/if3.0
ok 333 - ./set-e/not1.0
ok 334 - ./set-e/not2.0
ok 335 - ./set-e/or1.0
ok 336 - ./set-e/or2.0
ok 337 - ./set-e/or3.1
ok 338 - ./set-e/pipe1.1
ok 339 - ./set-e/pipe2.0
ok 340 - ./set-e/return1.0
ok 341 - ./set-e/semi1.1
ok 342 - ./set-e/semi2.1
ok 343 - ./set-e/subshell1.0
ok 344 - ./set-e/subshell2.1
ok 345 - ./set-e/until1.0
ok 346 - ./set-e/until2.0
ok 347 - ./set-e/until3.0
ok 348 - ./set-e/while1.0
ok 349 - ./set-e/while2.0
ok 350 - ./set-e/while3.0
Failed 1/350 subtests 

Test Summary Report
-------------------
/usr/src.svn/tools/regression/bin/sh/regress.t (Wstat: 0 Tests: 350 Failed: 1)
  Failed test:  79
>How-To-Repeat:
prove -rv tools/regression/bin/sh/regress.t
>Fix:


>Release-Note:
>Audit-Trail:

From: Jilles Tjoelker <jilles@stack.nl>
To: bug-followup@FreeBSD.org, yaneurabeya@gmail.com
Cc:  
Subject: Re: misc/181151: builtins/locale1.0 fails
Date: Fri, 9 Aug 2013 15:06:02 +0200

 In PR misc/181151, you wrote:
 > [sh test builtins/locale1.0 fails]
 
 I think you have disabled some parts of locale support, since it works
 fine here. The test uses nl_NL.ISO8859-1 as its non-English locale.
 
 -- 
 Jilles Tjoelker

From: Garrett Cooper <yaneurabeya@gmail.com>
To: Jilles Tjoelker <jilles@stack.nl>
Cc: bug-followup@FreeBSD.org
Subject: Re: misc/181151: builtins/locale1.0 fails
Date: Fri, 17 Jan 2014 23:05:28 -0800

 On Aug 9, 2013, at 6:06 AM, Jilles Tjoelker <jilles@stack.nl> wrote:
 
 > In PR misc/181151, you wrote:
 >> [sh test builtins/locale1.0 fails]
 >=20
 > I think you have disabled some parts of locale support, since it works
 > fine here. The test uses nl_NL.ISO8859-1 as its non-English locale.
 
 	What exactly do I need in order to make this test pass? It=92s =
 the one test that=92s not passing on my CURRENT VM now..
 Thanks,
 -Garrett=

From: Jilles Tjoelker <jilles@stack.nl>
To: Garrett Cooper <yaneurabeya@gmail.com>
Cc: bug-followup@FreeBSD.org
Subject: Re: misc/181151: builtins/locale1.0 fails
Date: Sun, 19 Jan 2014 14:27:04 +0100

 On Fri, Jan 17, 2014 at 11:05:28PM -0800, Garrett Cooper wrote:
 > On Aug 9, 2013, at 6:06 AM, Jilles Tjoelker <jilles@stack.nl> wrote:
 
 > > In PR misc/181151, you wrote:
 > >> [sh test builtins/locale1.0 fails]
 
 > > I think you have disabled some parts of locale support, since it works
 > > fine here. The test uses nl_NL.ISO8859-1 as its non-English locale.
 
 > What exactly do I need in order to make this test pass? It’s the one
 > test that’s not passing on my CURRENT VM now..
 
 You can debug by running the test manually. From bin/sh/tests/, run
   SH=sh sh builtins/locale1.0
 or
   SH=sh sh -x builtins/locale1.0
 and look at what it does not like.
 
 -- 
 Jilles Tjoelker

From: Garrett Cooper <yaneurabeya@gmail.com>
To: Jilles Tjoelker <jilles@stack.nl>
Cc: bug-followup@FreeBSD.org,
 Julio Merino <julio@meroh.net>
Subject: Re: misc/181151: builtins/locale1.0 fails
Date: Mon, 20 Jan 2014 10:37:40 -0800

 On Jan 19, 2014, at 5:27 AM, Jilles Tjoelker <jilles@stack.nl> wrote:
 
 > On Fri, Jan 17, 2014 at 11:05:28PM -0800, Garrett Cooper wrote:
 >> On Aug 9, 2013, at 6:06 AM, Jilles Tjoelker <jilles@stack.nl> wrote:
 >=20
 >>> In PR misc/181151, you wrote:
 >>>> [sh test builtins/locale1.0 fails]
 >=20
 >>> I think you have disabled some parts of locale support, since it =
 works
 >>> fine here. The test uses nl_NL.ISO8859-1 as its non-English locale.
 >=20
 >> What exactly do I need in order to make this test pass? It=92s the =
 one
 >> test that=92s not passing on my CURRENT VM now..
 >=20
 > You can debug by running the test manually. =46rom bin/sh/tests/, run
 >  SH=3Dsh sh builtins/locale1.0
 > or
 >  SH=3Dsh sh -x builtins/locale1.0
 > and look at what it does not like.
 
 Ok, some issues.
 1. I set SH to /usr/local/bin/bash in .shrc-local, so that=92s not going =
 to work with the tests out of the box. The tests need to unset/use a =
 different variable name other than ${SH} IMHO as it=92s a standard shell =
 variable.
 2. Checking for /var/empty/foo might not be such a great idea. Why not =
 create a temporary file, then delete it?
 3. Other than that, the locale tests don=92t seem to be working as =
 expected (it=92s acting like LANG=3DC =97 output=92s available below).
 Thanks!
 -Garrett
 
 # /bin/sh -x builtins/locale1.0=20
 + failures=3D0
 + unset LANG LC_ALL LC_COLLATE LC_CTYPE LC_MONETARY LC_NUMERIC LC_TIME =
 LC_MESSAGES
 + unset LANGUAGE
 + msgeng=3D'No such file or directory'
 + msgdut=3D'Bestand of map niet gevonden'
 + command . /var/empty/foo
 + ok=3D1
 + check '$ok -eq 1' 24
 + eval '[ $ok -eq 1 ]'
 + [ 1 -eq 1 ]
 + LC_ALL=3DC command . /var/empty/foo
 + ok=3D1
 + check '$ok -eq 1' 31
 + eval '[ $ok -eq 1 ]'
 + [ 1 -eq 1 ]
 + LC_ALL=3DC LANG=3Dnl_NL.ISO8859-1 command . /var/empty/foo
 + ok=3D1
 + check '$ok -eq 1' 37
 + eval '[ $ok -eq 1 ]'
 + [ 1 -eq 1 ]
 + LC_ALL=3DC LC_MESSAGES=3Dnl_NL.ISO8859-1 command . /var/empty/foo
 + ok=3D1
 + check '$ok -eq 1' 43
 + eval '[ $ok -eq 1 ]'
 + [ 1 -eq 1 ]
 + LC_CTYPE=3Dnl_NL.ISO8859-1 command . /var/empty/foo
 + ok=3D1
 + check '$ok -eq 1' 49
 + eval '[ $ok -eq 1 ]'
 + [ 1 -eq 1 ]
 + export LANG=3Dnl_NL.ISO8859-1
 + command . /var/empty/foo
 + ok=3D0
 + check '$ok -eq 1' 56
 + eval '[ $ok -eq 1 ]'
 + [ 0 -eq 1 ]
 + echo 'Failed: $ok -eq 1 at 56'
 Failed: $ok -eq 1 at 56
 + : 1
 + export LC_MESSAGES=3Dnl_NL.ISO8859-1
 + command . /var/empty/foo
 + ok=3D0
 + check '$ok -eq 1' 62
 + eval '[ $ok -eq 1 ]'
 + [ 0 -eq 1 ]
 + echo 'Failed: $ok -eq 1 at 62'
 Failed: $ok -eq 1 at 62
 + : 2
 + export LC_ALL=3Dnl_NL.ISO8859-1
 + command . /var/empty/foo
 + ok=3D0
 + check '$ok -eq 1' 68
 + eval '[ $ok -eq 1 ]'
 + [ 0 -eq 1 ]
 + echo 'Failed: $ok -eq 1 at 68'
 Failed: $ok -eq 1 at 68
 + : 3
 + LANG=3Dnl_NL.ISO8859-1 command . /var/empty/foo
 + ok=3D0
 + check '$ok -eq 1' 74
 + eval '[ $ok -eq 1 ]'
 + [ 0 -eq 1 ]
 + echo 'Failed: $ok -eq 1 at 74'
 Failed: $ok -eq 1 at 74
 + : 4
 + LC_MESSAGES=3Dnl_NL.ISO8859-1 command . /var/empty/foo
 + ok=3D0
 + check '$ok -eq 1' 80
 + eval '[ $ok -eq 1 ]'
 + [ 0 -eq 1 ]
 + echo 'Failed: $ok -eq 1 at 80'
 Failed: $ok -eq 1 at 80
 + : 5
 + LC_ALL=3Dnl_NL.ISO8859-1 command . /var/empty/foo
 + ok=3D0
 + check '$ok -eq 1' 86
 + eval '[ $ok -eq 1 ]'
 + [ 0 -eq 1 ]
 + echo 'Failed: $ok -eq 1 at 86'
 Failed: $ok -eq 1 at 86
 + : 6
 + command . /var/empty/foo
 + ok=3D1
 + check '$ok -eq 1' 93
 + eval '[ $ok -eq 1 ]'
 + [ 1 -eq 1 ]
 + LANG=3Dnl_NL.ISO8859-1 command . /var/empty/foo
 + command . /var/empty/foo
 + ok=3D0
 + check '$ok -eq 1' 99
 + eval '[ $ok -eq 1 ]'
 + [ 0 -eq 1 ]
 + echo 'Failed: $ok -eq 1 at 99'
 Failed: $ok -eq 1 at 99
 + : 7
 + LC_MESSAGES=3Dnl_NL.ISO8859-1 command . /var/empty/foo
 + command . /var/empty/foo
 + ok=3D0
 + check '$ok -eq 1' 105
 + eval '[ $ok -eq 1 ]'
 + [ 0 -eq 1 ]
 + echo 'Failed: $ok -eq 1 at 105'
 Failed: $ok -eq 1 at 105
 + : 8
 + LC_ALL=3Dnl_NL.ISO8859-1 command . /var/empty/foo
 + command . /var/empty/foo
 + ok=3D0
 + check '$ok -eq 1' 111
 + eval '[ $ok -eq 1 ]'
 + [ 0 -eq 1 ]
 + echo 'Failed: $ok -eq 1 at 111'
 Failed: $ok -eq 1 at 111
 + : 9
 + LC_ALL=3Dnl_NL.ISO8859-1 . /var/empty/foo
 + ok=3D0
 + check '$ok -eq 1' 118
 + eval '[ $ok -eq 1 ]'
 + [ 0 -eq 1 ]
 + echo 'Failed: $ok -eq 1 at 118'
 Failed: $ok -eq 1 at 118
 + : 10
 + LC_ALL=3Dnl_NL.ISO8859-1 . /dev/null
 + . /var/empty/foo
 + ok=3D1
 + check '$ok -eq 1' 126
 + eval '[ $ok -eq 1 ]'
 + [ 1 -eq 1 ]
 + export LC_ALL
 + LC_ALL=3Dnl_NL.ISO8859-1 . /dev/null
 + . /var/empty/foo
 + ok=3D0
 + check '$ok -eq 1' 132
 + eval '[ $ok -eq 1 ]'
 + [ 0 -eq 1 ]
 + echo 'Failed: $ok -eq 1 at 132'
 Failed: $ok -eq 1 at 132
 + : 11
 + exit 1
 # env LC_CTYPE=3Dnl_NL.ISO8859-1 /bin/sh -c 'command . /var/empty/foo'
 .: cannot open /var/empty/foo: No such file or directory=

From: Jilles Tjoelker <jilles@stack.nl>
To: Garrett Cooper <yaneurabeya@gmail.com>
Cc: bug-followup@FreeBSD.org, Julio Merino <julio@meroh.net>
Subject: Re: misc/181151: builtins/locale1.0 fails
Date: Tue, 21 Jan 2014 23:23:20 +0100

 On Mon, Jan 20, 2014 at 10:37:40AM -0800, Garrett Cooper wrote:
 > On Jan 19, 2014, at 5:27 AM, Jilles Tjoelker <jilles@stack.nl> wrote:
 
 > > On Fri, Jan 17, 2014 at 11:05:28PM -0800, Garrett Cooper wrote:
 > >> On Aug 9, 2013, at 6:06 AM, Jilles Tjoelker <jilles@stack.nl> wrote:
 
 > >>> In PR misc/181151, you wrote:
 > >>>> [sh test builtins/locale1.0 fails]
 
 > >>> I think you have disabled some parts of locale support, since it works
 > >>> fine here. The test uses nl_NL.ISO8859-1 as its non-English locale.
 
 > >> What exactly do I need in order to make this test pass? It’s the one
 > >> test that’s not passing on my CURRENT VM now..
 
 > > You can debug by running the test manually. From bin/sh/tests/, run
 > >  SH=sh sh builtins/locale1.0
 > > or
 > >  SH=sh sh -x builtins/locale1.0
 > > and look at what it does not like.
 
 > Ok, some issues.
 
 > 1. I set SH to /usr/local/bin/bash in .shrc-local, so that’s not going
 > to work with the tests out of the box. The tests need to unset/use a
 > different variable name other than ${SH} IMHO as it’s a standard shell
 > variable.
 
 I don't think it is standard. However, ${SH} should be unconditionally
 overwritten if the testing framework is used. This used to be the case
 in the prove based framework via an extra level of indirection.
 
 On the other hand, passing a value for SH is useful for testing
 (possibly broken) sh changes without installing them. For example,
   SH=${.OBJDIR}/sh sh tests/legacy_test.sh
 This could be useful as a 'regress' target if there is no other way to
 run tests without installing everything. (Note that I would like this to
 work on a stable/9 system.)
 
 > 2. Checking for /var/empty/foo might not be such a great idea. Why not
 > create a temporary file, then delete it?
 
 Because creating a temporary file makes the test more complicated and
 slower. I just need a nonexistent file, and I think I can rely on the
 nonexistence or emptiness of /var/empty. (OpenBSD has a /var/empty/dev,
 but...)
 
 > 3. Other than that, the locale tests don’t seem to be working as
 > expected (it’s acting like LANG=C — output’s available below).
 
 I think you are compiling world WITHOUT_NLS, since there seems to be no
 way to get a message in Dutch language from your sh.
 
 -- 
 Jilles Tjoelker
>Unformatted:
