Yeah, tr is a stupid little utility that it would be nice to get away from.
It's possible that env LC_ALL=C tr will fix your ASCII character set problem. On Thu, Nov 30, 2017 at 1:45 PM, Tim Bell <tim.b...@oracle.com> wrote: > Magnus: > > Looks good. > > On well-behaving unix systems, tr -c '[a-z]' '_' would >> >>> take the complement of a-z and replace it by underscore. But on >>>> solaris, -c [a-z] would evaluate to a (not clearly defined) massive >>>> string of all characters except a-z in the current locale. >>>> >>> > I wish we could get away from using tr due to sometimes surprising > behavior depending on locale, but that is a separate project. > > Tim > > > > On 11/30/17 09:20, Erik Joelsson wrote: > >> Looks good. >> >> / >> >> >> On 2017-11-30 06:09, Magnus Ihse Bursie wrote: >> >>> To support all the use cases of the old test/Makefile way of running >>> tests, we need to save the exit code from running tests. >>> >>> This patch also includes three other bug fixes: >>> * Saving the test ID:s of the latest run in test-last-ids.txt, so we >>> can programmatically discover which new tests were run. >>> * Test roots were not normalized for jtreg tests given only by group >>> (e.g. ":tier1") >>> * Fix for solaris version of tr. >>> >>> The last one was actually quite interesting, and took a while to >>> figure out. On well-behaving unix systems, tr -c '[a-z]' '_' would >>> take the complement of a-z and replace it by underscore. But on >>> solaris, -c [a-z] would evaluate to a (not clearly defined) massive >>> string of all characters except a-z in the current locale. And then, >>> if the second string ('_') is *shorter* than the first, the behavior >>> of tr is *undefinied* (which, in practice, means that it doesn't do >>> anything). Like, "wtf?!? how could this possibly work for anyone?". >>> The workaround, after much hair-pulling, turned out to be a notation >>> to repeat a single character ('[_*1000]'), hoping that the character >>> set never exceeds 1000. *sigh* >>> >>> Bug: https://bugs.openjdk.java.net/browse/JDK-8192816 >>> WebRev: >>> http://cr.openjdk.java.net/~ihse/JDK-8192816-let-run-test-sa >>> ve-exit-code/webrev.01 >>> >>> >>> /Magnus >>> >>> >> >