| # Testsuite makefile for GNU sed |
| |
| SHELL = /bin/sh |
| |
| # These are only fallback values. They are usually overridden by runtest. |
| srcdir = . |
| SED = ../sed/sed |
| |
| TIME= |
| #TIME=time |
| |
| SEDENV_2 = LC_ALL=C |
| SEDENV = $(SEDENV_2) $(TIME) |
| TR = $(SEDENV_2) tr |
| |
| CMP=cmp |
| RM=rm -f |
| |
| SKIP = :>$@.skip; exit 77 |
| |
| enable sep inclib 8bit 8to7 newjis xabcx dollar noeol bkslashes \ |
| 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 insert brackets:: |
| $(SEDENV) $(SED) -f $(srcdir)/$@.sed \ |
| < $(srcdir)/$@.inp | $(TR) -d \\r > $@.out |
| $(CMP) $(srcdir)/$@.good $@.out |
| @$(RM) $@.out |
| |
| 0range:: |
| $(SEDENV) $(SED) -s -f $(srcdir)/$@.sed \ |
| < $(srcdir)/$@.inp | $(TR) -d \\r > $@.out |
| $(CMP) $(srcdir)/$@.good $@.out |
| @$(RM) $@.out |
| |
| badenc:: |
| LANG=ru_RU.UTF-8 $(TIME) $(SED) -nf $(srcdir)/$@.sed \ |
| < $(srcdir)/$@.inp | $(TR) -d \\r > $@.out |
| $(CMP) $(srcdir)/$@.good $@.out |
| LANG=it_IT.UTF-8 $(TIME) $(SED) -nf $(srcdir)/$@.sed \ |
| < $(srcdir)/$@.inp | $(TR) -d \\r > $@.out |
| $(CMP) $(srcdir)/$@.good $@.out |
| LANG=en_US.UTF-8 $(TIME) $(SED) -nf $(srcdir)/$@.sed \ |
| < $(srcdir)/$@.inp | $(TR) -d \\r > $@.out |
| $(CMP) $(srcdir)/$@.good $@.out |
| LANG=en_GB.UTF-8 $(TIME) $(SED) -nf $(srcdir)/$@.sed \ |
| < $(srcdir)/$@.inp | $(TR) -d \\r > $@.out |
| $(CMP) $(srcdir)/$@.good $@.out |
| @$(RM) $@.out |
| |
| # Try with ru_RU.UTF-8. If it is presumably not installed, see if the current |
| # locale is UTF-8 and run it in the current locale. |
| utf8-1 utf8-2 utf8-3 utf8-4:: |
| echo "LANG=ru_RU.UTF-8" \ |
| "$(TIME) $(SED) -f $(srcdir)/$@.sed" \ |
| "< $(srcdir)/$@.inp | $(TR) -d \\r > $@.out"; \ |
| LANG=ru_RU.UTF-8 \ |
| $(TIME) $(SED) -f $(srcdir)/$@.sed \ |
| < $(srcdir)/$@.inp | $(TR) -d \\r > $@.out; \ |
| $(CMP) $(srcdir)/$@.good $@.out && exit 0; \ |
| $(CMP) $(srcdir)/$@.inp $@.out || exit 1; \ |
| locale > $@.info 2>/dev/null || { rm $@.info; $(SKIP); }; \ |
| . $@.info; rm $@.info; \ |
| case "$$LC_CTYPE" in \ |
| *UTF-8 | *UTF8 | *utf8 | *utf-8) \ |
| echo "$(TIME) $(SED) -f $(srcdir)/$@.sed" \ |
| " < $(srcdir)/$@.inp | $(TR) -d \\r > $@.out"; \ |
| $(TIME) $(SED) -f $(srcdir)/$@.sed \ |
| < $(srcdir)/$@.inp | $(TR) -d \\r > $@.out; \ |
| $(CMP) $(srcdir)/$@.good $@.out && exit 0; \ |
| $(CMP) $(srcdir)/$@.inp $@.out || exit 1 ;; \ |
| *) ;; \ |
| esac; \ |
| $(SKIP) |
| |
| # 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 > $@.1out |
| $(SEDENV) cat $(srcdir)/numsub.inp \ |
| | ($(SEDENV) $(SED) d; $(SEDENV) $(SED) G) | $(TR) -d \\r > $@.2out |
| $(CMP) $@.1out $@.2out |
| @$(RM) $@.1out $@.2out |
| |
| inplace-hold:: |
| echo x > $@.1out |
| echo y > $@.2out |
| echo > $@.out |
| $(SEDENV) $(SED) -i x $@.1out $@.2out |
| $(CMP) $@.1out $@.out |
| $(CMP) $@.2out $@.out |
| @$(RM) $@.1out $@.2out $@.out |
| |
| cv-vars classes middle dc distrib factor numsub2 numsub3 numsub4 numsub5 \ |
| insens:: |
| $(SEDENV) $(SED) -n -f $(srcdir)/$@.sed \ |
| < $(srcdir)/$@.inp | $(TR) -d \\r > $@.out |
| $(CMP) $(srcdir)/$@.good $@.out |
| @$(RM) $@.out |
| |
| noeolw:: |
| $(SEDENV) $(SED) -n -f $(srcdir)/$@.sed \ |
| $(srcdir)/noeol.inp $(srcdir)/noeol.inp | $(TR) -d \\r > $@.out |
| $(CMP) $(srcdir)/$@.good $@.out |
| $(TR) -d \\r < $@.1out | $(CMP) $(srcdir)/$@.1good - |
| $(TR) -d \\r < $@.2out | $(CMP) $(srcdir)/$@.2good - |
| @$(RM) $@.1out $@.2out $@.out |
| |
| subwrite:: |
| $(SEDENV) $(SED) -f $(srcdir)/$@.sed \ |
| < $(srcdir)/$@.inp | $(TR) -d \\r > $@.1out |
| $(CMP) $(srcdir)/subwrt1.good $@.1out |
| $(TR) -d \\r < $@.wout | $(CMP) $(srcdir)/subwrt2.good - |
| @$(RM) $@.1out $@.wout |
| |
| bsd:: |
| $(SEDENV_2) sh $(srcdir)/$@.sh '$(TIME) $(SED)' $@.out |
| $(TR) -d \\r < $@.out | $(CMP) $(srcdir)/$@.good - |
| @$(RM) $@.out |
| |
| writeout:: |
| $(SEDENV) $(SED) -f $(srcdir)/$@.sed \ |
| < $(srcdir)/$@.inp | $(TR) -d \\r > $@.1out |
| $(CMP) $(srcdir)/wrtout1.good $@.1out |
| $(TR) -d \\r < $@.wout | $(CMP) $(srcdir)/wrtout2.good - |
| @$(RM) $@.1out $@.wout |
| |
| readin:: |
| echo MOO | $(SEDENV) $(SED) b > $@.in2 |
| $(SEDENV) $(SED) -f $(srcdir)/$@.sed \ |
| < $(srcdir)/$@.inp | $(TR) -d \\r > $@.out |
| $(CMP) $(srcdir)/$@.good $@.out |
| @$(RM) $@.out $@.in2 |
| |
| eval.in2: $(srcdir)/eval.inp |
| cat $(srcdir)/eval.inp > $@ |
| |
| eval:: eval.in2 |
| $(SEDENV) $(SED) -f $(srcdir)/$@.sed \ |
| < $(srcdir)/$@.inp | $(TR) -d \\r > $@.out |
| $(CMP) $(srcdir)/$@.good $@.out |
| @$(RM) $@.out |
| |
| binary binary2 binary3:: |
| $(SEDENV) $(SED) -n -f $(srcdir)/$@.sed \ |
| < $(srcdir)/binary.inp | $(TR) -d \\r > $@.out |
| $(CMP) $(srcdir)/binary.good $@.out |
| @$(RM) $@.out |
| |
| # |
| # cmdlines targets |
| # |
| |
| help:: |
| $(SEDENV) $(SED) --help | grep E-mail > /dev/null 2>&1 |
| $(SEDENV) $(SED) --help | $(SEDENV) $(SED) '1s/ [^ ]* / sed /; /^E-mail/,$$d' > $@.1out |
| $(SEDENV) $(SED) 2>&1 | $(SEDENV) $(SED) '1s/ [^ ]* / sed /' > $@.2out || : |
| $(CMP) $@.1out $@.2out |
| @$(RM) $@.1out $@.2out |
| |
| version:: |
| $(SEDENV) $(SED) --version 2>&1 | $(TR) -d \\r > $@.out |
| $(CMP) $@.good $@.out |
| @$(RM) $@.out |
| |
| file:: |
| $(SEDENV) $(SED) --file=$(srcdir)/newjis.sed \ |
| < $(srcdir)/newjis.inp | $(TR) -d \\r > $@.out |
| $(CMP) $(srcdir)/newjis.good $@.out |
| @$(RM) $@.out |
| |
| quiet:: |
| $(SEDENV) $(SED) --quiet -f $(srcdir)/cv-vars.sed \ |
| < $(srcdir)/cv-vars.inp | $(TR) -d \\r > $@.out |
| $(CMP) $(srcdir)/cv-vars.good $@.out |
| @$(RM) $@.out |
| |
| # The following target is not used in super sed builds (only GNU sed) |
| |
| bug-regex7$(EXEEXT) bug-regex8$(EXEEXT) bug-regex9$(EXEEXT) \ |
| bug-regex10$(EXEEXT) bug-regex11$(EXEEXT) bug-regex12$(EXEEXT) \ |
| bug-regex13$(EXEEXT) bug-regex14$(EXEEXT) bug-regex15$(EXEEXT) bug-regex16$(EXEEXT) \ |
| bug-regex21$(EXEEXT) runtests$(EXEEXT) runptests$(EXEEXT):: |
| echo "$(SEDENV) ./$@ > `echo $@ | $(SED) s/$(EXEEXT)$$/.log/`" |
| @$(SEDENV) ./$@ > `echo $@ | $(SED) s/$(EXEEXT)$$/.log/` |
| |
| tst-pcre$(EXEEXT):: |
| $(SEDENV) ./tst-pcre $(srcdir)/PCRE.tests > tst-pcre.log |
| |
| tst-boost$(EXEEXT):: |
| $(SEDENV) ./tst-boost $(srcdir)/BOOST.tests > tst-boost.log |
| |
| tst-rxspencer$(EXEEXT):: |
| $(SEDENV) ./tst-rxspencer $(srcdir)/SPENCER.tests > tst-spencer.log |
| |
| tst-regex2$(EXEEXT):: |
| $(SEDENV) ./tst-regex2 $(srcdir)/tst-regex2.c > tst-regex2.log |
| |
| # The following target is not used in GNU sed builds (only super-sed) |
| |
| pcretest$(EXEEXT):: |
| $(SEDENV) ./pcretest $(srcdir)/pcre1.inp pcre1.out |
| $(CMP) $(srcdir)/pcre1.good pcre1.out |
| #$(SEDENV) ./pcretest -p $(srcdir)/pcre1.inp pcre1p.out |
| #$(CMP) $(srcdir)/pcre1p.good pcre1p.out |
| $(SEDENV) ./pcretest -P $(srcdir)/pcre2.inp pcre2.out |
| $(CMP) $(srcdir)/pcre2.good pcre2.out |
| $(SEDENV) ./pcretest -P -p $(srcdir)/pcre2.inp pcre2p.out |
| $(CMP) $(srcdir)/pcre2p.good pcre2p.out |
| $(SEDENV) ./pcretest $(srcdir)/pcre3.inp pcre3.out |
| $(CMP) $(srcdir)/pcre3.good pcre3.out |
| $(SEDENV) ./pcretest -p $(srcdir)/pcre3.inp pcre3p.out |
| $(CMP) $(srcdir)/pcre3p.good pcre3p.out |
| @$(RM) pcre*.out |
| |
| .PHONY: \ |
| bug-regex7$(EXEEXT) bug-regex8$(EXEEXT) bug-regex9$(EXEEXT) \ |
| bug-regex10$(EXEEXT) bug-regex11$(EXEEXT) bug-regex12$(EXEEXT) \ |
| bug-regex13$(EXEEXT) bug-regex14$(EXEEXT) bug-regex15$(EXEEXT) bug-regex16$(EXEEXT) \ |
| bug-regex21$(EXEEXT) runtests$(EXEEXT) runptests$(EXEEXT) tst-regex2$(EXEEXT) \ |
| tst-pcre$(EXEEXT) tst-boost$(EXEEXT) tst-rxspencer$(EXEEXT) pcretest$(EXEEXT) |