From df4084715e1ef5999907aaa6a4a1abee0c075293 Mon Sep 17 00:00:00 2001 From: Jim Meyering Date: Mon, 12 Dec 2016 15:37:06 -0800 Subject: [PATCH] tests: port tests to avoid tr NUL-eliding behavior on Solaris * testsuite/Makefile.tests (elide_cr): Define this to use sed. Replace every prior use of "$(TR) -d \\r" with it. Our just-built sed can do that job (elide CR bytes) even when the input contains NUL bytes. Solaris 11.3's /bin/tr would remove any NUL byte from the result. Reported by Nelson H.F. Beebe in https://lists.gnu.org/archive/html/sed-devel/2016-12/msg00006.html --- testsuite/Makefile.tests | 57 ++++++++++++++++++++++++------------------------ 1 file changed, 29 insertions(+), 28 deletions(-) diff --git a/testsuite/Makefile.tests b/testsuite/Makefile.tests index 2c2704a..00a4ec8 100644 --- a/testsuite/Makefile.tests +++ b/testsuite/Makefile.tests @@ -15,6 +15,7 @@ TR = $(SEDENV_2) tr CMP=cmp RM=rm -f +elide_cr = $(SEDENV_2) $(SED) 's/\r//g' SKIP = :>address@hidden; exit 77 @@ -23,34 +24,34 @@ numsub head madding mac-mf empty xbxcx xbxcx3 recall recall2 xemacs \ appquit fasts uniq manis linecnt khadafy allsub flipcase space modulo \ y-bracket y-newline y-zero insert brackets amp-escape newline-anchor:: $(SEDENV) $(SED) -f $(srcdir)/address@hidden \ - < $(srcdir)/address@hidden | $(TR) -d \\r > address@hidden + < $(srcdir)/address@hidden | $(elide_cr) > address@hidden $(CMP) $(srcdir)/address@hidden address@hidden @$(RM) address@hidden 0range:: $(SEDENV) $(SED) -s -f $(srcdir)/address@hidden \ - < $(srcdir)/address@hidden | $(TR) -d \\r > address@hidden + < $(srcdir)/address@hidden | $(elide_cr) > address@hidden $(CMP) $(srcdir)/address@hidden address@hidden @$(RM) address@hidden zero-anchor:: $(SEDENV) $(SED) -z -f $(srcdir)/address@hidden \ - < $(srcdir)/address@hidden | $(TR) -d \\r > address@hidden + < $(srcdir)/address@hidden | $(elide_cr) > address@hidden $(CMP) $(srcdir)/address@hidden address@hidden @$(RM) address@hidden badenc:: LC_ALL=ru_RU.UTF-8 $(TIME) $(SED) -nf $(srcdir)/address@hidden \ - < $(srcdir)/address@hidden | $(TR) -d \\r > address@hidden + < $(srcdir)/address@hidden | $(elide_cr) > address@hidden $(CMP) $(srcdir)/address@hidden address@hidden LC_ALL=it_IT.UTF-8 $(TIME) $(SED) -nf $(srcdir)/address@hidden \ - < $(srcdir)/address@hidden | $(TR) -d \\r > address@hidden + < $(srcdir)/address@hidden | $(elide_cr) > address@hidden $(CMP) $(srcdir)/address@hidden address@hidden LC_ALL=en_US.UTF-8 $(TIME) $(SED) -nf $(srcdir)/address@hidden \ - < $(srcdir)/address@hidden | $(TR) -d \\r > address@hidden + < $(srcdir)/address@hidden | $(elide_cr) > address@hidden $(CMP) $(srcdir)/address@hidden address@hidden LC_ALL=en_GB.UTF-8 $(TIME) $(SED) -nf $(srcdir)/address@hidden \ - < $(srcdir)/address@hidden | $(TR) -d \\r > address@hidden + < $(srcdir)/address@hidden | $(elide_cr) > address@hidden $(CMP) $(srcdir)/address@hidden address@hidden @$(RM) address@hidden @@ -59,10 +60,10 @@ badenc:: utf8-1 utf8-2 utf8-3 utf8-4:: echo "LC_ALL=ru_RU.UTF-8" \ "$(TIME) $(SED) -f $(srcdir)/address@hidden" \ - "< $(srcdir)/address@hidden | $(TR) -d \\r > address@hidden"; \ + "< $(srcdir)/address@hidden | $(elide_cr) > address@hidden"; \ LC_ALL=ru_RU.UTF-8 \ $(TIME) $(SED) -f $(srcdir)/address@hidden \ - < $(srcdir)/address@hidden | $(TR) -d \\r > address@hidden; \ + < $(srcdir)/address@hidden | $(elide_cr) > address@hidden; \ $(CMP) $(srcdir)/address@hidden address@hidden && exit 0; \ $(CMP) $(srcdir)/address@hidden address@hidden || exit 1; \ locale > address@hidden 2>/dev/null || { rm address@hidden; $(SKIP); }; \ @@ -70,9 +71,9 @@ utf8-1 utf8-2 utf8-3 utf8-4:: case "$$LC_CTYPE" in \ *UTF-8 | *UTF8 | *utf8 | *utf-8) \ echo "$(TIME) $(SED) -f $(srcdir)/address@hidden" \ - " < $(srcdir)/address@hidden | $(TR) -d \\r > address@hidden"; \ + " < $(srcdir)/address@hidden | $(elide_cr) > address@hidden"; \ $(TIME) $(SED) -f $(srcdir)/address@hidden \ - < $(srcdir)/address@hidden | $(TR) -d \\r > address@hidden; \ + < $(srcdir)/address@hidden | $(elide_cr) > address@hidden; \ $(CMP) $(srcdir)/address@hidden address@hidden && exit 0; \ $(CMP) $(srcdir)/address@hidden address@hidden || exit 1 ;; \ *) ;; \ @@ -82,9 +83,9 @@ utf8-1 utf8-2 utf8-3 utf8-4:: # This checks for a bug in 3.02 and 3.02.80 stdin:: ($(SEDENV) $(SED) d; $(SEDENV) $(SED) G) < $(srcdir)/numsub.inp \ - | $(TR) -d \\r > address@hidden + | $(elide_cr) > address@hidden $(SEDENV) cat $(srcdir)/numsub.inp \ - | ($(SEDENV) $(SED) d; $(SEDENV) $(SED) G) | $(TR) -d \\r > address@hidden + | ($(SEDENV) $(SED) d; $(SEDENV) $(SED) G) | $(elide_cr) > address@hidden $(CMP) address@hidden address@hidden @$(RM) address@hidden address@hidden @@ -100,41 +101,41 @@ inplace-hold:: cv-vars classes middle dc distrib factor numsub2 numsub3 numsub4 numsub5 \ insens:: $(SEDENV) $(SED) -n -f $(srcdir)/address@hidden \ - < $(srcdir)/address@hidden | $(TR) -d \\r > address@hidden + < $(srcdir)/address@hidden | $(elide_cr) > address@hidden $(CMP) $(srcdir)/address@hidden address@hidden @$(RM) address@hidden noeolw:: $(SEDENV) $(SED) -n -f $(srcdir)/address@hidden \ - $(srcdir)/noeol.inp $(srcdir)/noeol.inp | $(TR) -d \\r > address@hidden + $(srcdir)/noeol.inp $(srcdir)/noeol.inp | $(elide_cr) > address@hidden $(CMP) $(srcdir)/address@hidden address@hidden - $(TR) -d \\r < address@hidden | $(CMP) $(srcdir)/address@hidden - - $(TR) -d \\r < address@hidden | $(CMP) $(srcdir)/address@hidden - + $(elide_cr) < address@hidden | $(CMP) $(srcdir)/address@hidden - + $(elide_cr) < address@hidden | $(CMP) $(srcdir)/address@hidden - @$(RM) address@hidden address@hidden address@hidden subwrite:: $(SEDENV) $(SED) -f $(srcdir)/address@hidden \ - < $(srcdir)/address@hidden | $(TR) -d \\r > address@hidden + < $(srcdir)/address@hidden | $(elide_cr) > address@hidden $(CMP) $(srcdir)/subwrt1.good address@hidden - $(TR) -d \\r < address@hidden | $(CMP) $(srcdir)/subwrt2.good - + $(elide_cr) < address@hidden | $(CMP) $(srcdir)/subwrt2.good - @$(RM) address@hidden address@hidden bsd:: $(SEDENV_2) sh $(srcdir)/address@hidden '$(TIME) $(SED)' address@hidden - $(TR) -d \\r < address@hidden | $(CMP) $(srcdir)/address@hidden - + $(elide_cr) < address@hidden | $(CMP) $(srcdir)/address@hidden - @$(RM) address@hidden writeout:: $(SEDENV) $(SED) -f $(srcdir)/address@hidden \ - < $(srcdir)/address@hidden | $(TR) -d \\r > address@hidden + < $(srcdir)/address@hidden | $(elide_cr) > address@hidden $(CMP) $(srcdir)/wrtout1.good address@hidden - $(TR) -d \\r < address@hidden | $(CMP) $(srcdir)/wrtout2.good - + $(elide_cr) < address@hidden | $(CMP) $(srcdir)/wrtout2.good - @$(RM) address@hidden address@hidden readin:: echo MOO | $(SEDENV) $(SED) b > address@hidden $(SEDENV) $(SED) -f $(srcdir)/address@hidden \ - < $(srcdir)/address@hidden | $(TR) -d \\r > address@hidden + < $(srcdir)/address@hidden | $(elide_cr) > address@hidden $(CMP) $(srcdir)/address@hidden address@hidden @$(RM) address@hidden address@hidden @@ -143,13 +144,13 @@ eval.in2: $(srcdir)/eval.inp eval:: eval.in2 $(SEDENV) $(SED) -f $(srcdir)/address@hidden \ - < $(srcdir)/address@hidden | $(TR) -d \\r > address@hidden + < $(srcdir)/address@hidden | $(elide_cr) > address@hidden $(CMP) $(srcdir)/address@hidden address@hidden @$(RM) address@hidden binary binary2 binary3:: $(SEDENV) $(SED) -n -f $(srcdir)/address@hidden \ - < $(srcdir)/binary.inp | $(TR) -d \\r > address@hidden + < $(srcdir)/binary.inp | $(elide_cr) > address@hidden $(CMP) $(srcdir)/binary.good address@hidden @$(RM) address@hidden @@ -165,19 +166,19 @@ help:: @$(RM) address@hidden address@hidden version:: - $(SEDENV) $(SED) --version 2>&1 | $(TR) -d \\r > address@hidden + $(SEDENV) $(SED) --version 2>&1 | $(elide_cr) > address@hidden $(CMP) address@hidden address@hidden @$(RM) address@hidden file:: $(SEDENV) $(SED) --file=$(srcdir)/newjis.sed \ - < $(srcdir)/newjis.inp | $(TR) -d \\r > address@hidden + < $(srcdir)/newjis.inp | $(elide_cr) > address@hidden $(CMP) $(srcdir)/newjis.good address@hidden @$(RM) address@hidden quiet:: $(SEDENV) $(SED) --quiet -f $(srcdir)/cv-vars.sed \ - < $(srcdir)/cv-vars.inp | $(TR) -d \\r > address@hidden + < $(srcdir)/cv-vars.inp | $(elide_cr) > address@hidden $(CMP) $(srcdir)/cv-vars.good address@hidden @$(RM) address@hidden -- 2.8.0-rc2