Bug 181151 - [tests] builtins/locale1.0 fails when MK_NLS == no
Summary: [tests] builtins/locale1.0 fails when MK_NLS == no
Status: Closed FIXED
Alias: None
Product: Base System
Classification: Unclassified
Component: misc (show other bugs)
Version: Unspecified
Hardware: Any Any
: Normal Affects Some People
Assignee: Jilles Tjoelker
URL:
Keywords:
: 191712 (view as bug list)
Depends on:
Blocks:
 
Reported: 2013-08-09 00:20 UTC by Enji Cooper
Modified: 2014-08-20 19:41 UTC (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Enji Cooper freebsd_committer freebsd_triage 2013-08-09 00:20:00 UTC
# 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
Comment 1 Jilles Tjoelker freebsd_committer freebsd_triage 2013-08-09 14:06:02 UTC
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
Comment 2 Enji Cooper freebsd_committer freebsd_triage 2014-01-18 07:05:28 UTC
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=
Comment 3 Jilles Tjoelker freebsd_committer freebsd_triage 2014-01-19 13:27:04 UTC
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
Comment 4 Enji Cooper freebsd_committer freebsd_triage 2014-01-20 18:37:40 UTC
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=
Comment 5 Jilles Tjoelker freebsd_committer freebsd_triage 2014-01-21 22:23:20 UTC
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
Comment 6 Enji Cooper freebsd_committer freebsd_triage 2014-07-07 17:22:50 UTC
*** Bug 191712 has been marked as a duplicate of this bug. ***
Comment 7 Enji Cooper freebsd_committer freebsd_triage 2014-07-07 17:32:34 UTC
Here's what I did to get around the issue:
https://github.com/yaneurabeya/freebsd/commit/1031aef0ce295255f7c8cb42c0df83af35f77fe8
Comment 8 commit-hook freebsd_committer freebsd_triage 2014-07-08 21:50:53 UTC
A commit references this bug:

Author: jilles
Date: Tue Jul  8 21:50:14 UTC 2014
New revision: 268429
URL: http://svnweb.freebsd.org/changeset/base/268429

Log:
  Don't install locale1.0 if MK_NLS == no.

  The test locale1.0 depends on locale support; it is meaningless without a
  working LC_MESSAGES.

  I added an OptionalObsoleteFiles.inc entry.

  PR:		181151
  Submitted by:	Garrett Cooper (original version)
  MFC after:	1 week
  Sponsored by:	EMC / Isilon Storage Division

Changes:
  head/bin/sh/tests/builtins/Makefile
  head/tools/build/mk/OptionalObsoleteFiles.inc
Comment 9 commit-hook freebsd_committer freebsd_triage 2014-08-20 19:39:56 UTC
A commit references this bug:

Author: jilles
Date: Wed Aug 20 19:39:08 UTC 2014
New revision: 270244
URL: http://svnweb.freebsd.org/changeset/base/270244

Log:
  MFC r268429: Don't install locale1.0 if MK_NLS == no.

  The test locale1.0 depends on locale support; it is meaningless without a
  working LC_MESSAGES.

  I added an OptionalObsoleteFiles.inc entry.

  PR:		181151
  Submitted by:	Garrett Cooper (original version)
  Sponsored by:	EMC / Isilon Storage Division

Changes:
_U  stable/10/
  stable/10/bin/sh/tests/builtins/Makefile
  stable/10/tools/build/mk/OptionalObsoleteFiles.inc
Comment 10 Jilles Tjoelker freebsd_committer freebsd_triage 2014-08-20 19:41:15 UTC
Fixed in head and stable/10. Older stable branches do not have kyua/ATF-based tests.