busybox/testsuite
Dominique Martinet 4fe954c148 sed: do not ignore 'g' modifier when match starts with ^
It is perfectly valid to start a regex with ^ and have other patterns
with \| that can match more than once, e.g. the following example
should print ca, as illustrated with gnu sed:
$ echo 'abca' | sed -e 's/^a\|b//g'
ca

busybox before patch:
$ echo 'abca' | busybox sed -e 's/^a\|b//g'
bca

busybox after patch:
$ echo 'abca' | ./busybox sed -e 's/^a\|b//g'
ca

regcomp handles ^ perfectly well as illustrated with the second 'a' that
did not match in the example, we ca leave the non-repeating to it if
appropriate.
The check had been added before using regcomp and was required at the
time (f36635cec6da) but no longer makes sense now.

(tested with glibc and musl libc)

function                                             old     new   delta
add_cmd                                             1189    1176     -13

Signed-off-by: Dominique Martinet <asmadeus@codewreck.org>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-12-25 04:20:28 +01:00
..
2016-12-12 09:26:16 +01:00
2016-12-12 09:26:16 +01:00
2021-08-15 23:01:33 +02:00
2016-06-20 00:36:21 +02:00
2013-11-10 22:06:06 +01:00
2021-06-25 00:23:29 +02:00
2017-03-23 17:35:52 +01:00
2014-01-23 14:41:53 +01:00
2016-06-19 21:54:04 +02:00
2021-09-05 03:42:51 +02:00
2018-12-12 21:41:40 +01:00
2018-12-12 21:41:40 +01:00
2018-12-12 21:41:40 +01:00
2018-12-12 21:41:40 +01:00
2018-12-12 21:41:40 +01:00
2018-12-12 21:41:40 +01:00
2018-12-12 21:41:40 +01:00
2018-12-12 21:41:40 +01:00
2018-12-12 21:41:40 +01:00
2018-12-12 21:41:40 +01:00
2018-12-12 21:41:40 +01:00
2018-12-12 21:41:40 +01:00
2018-12-12 21:41:40 +01:00
2018-12-12 21:41:40 +01:00
2018-12-12 21:41:40 +01:00
2018-12-12 21:41:40 +01:00
2018-12-12 21:41:40 +01:00
2018-12-12 21:41:40 +01:00
2018-12-12 21:41:40 +01:00
2018-12-12 21:41:40 +01:00
2020-06-23 21:28:19 +02:00
2021-08-15 20:15:42 +02:00
2018-12-12 21:41:40 +01:00
2018-12-12 21:41:40 +01:00
2018-12-12 21:41:40 +01:00
2018-12-12 21:41:40 +01:00
2018-12-12 21:41:40 +01:00
2018-12-12 21:41:40 +01:00
2018-12-12 21:41:40 +01:00
2018-12-12 21:41:40 +01:00
2018-12-12 21:41:40 +01:00
2018-12-12 21:41:40 +01:00
2018-12-12 21:41:40 +01:00
2018-12-12 21:41:40 +01:00
2018-12-12 21:41:40 +01:00
2018-12-12 21:41:40 +01:00
2020-12-22 20:24:30 +01:00
2018-12-28 13:32:04 +01:00
2011-08-10 00:51:29 +02:00
2015-10-11 23:48:28 +02:00
2016-07-11 19:51:08 +02:00
2020-06-24 00:27:37 +02:00
2013-01-21 08:28:37 +01:00
2020-12-29 16:53:11 +01:00
2017-07-19 13:12:02 +02:00
2020-06-23 21:28:19 +02:00
2011-09-17 00:12:24 +02:00
2021-08-16 00:48:50 +02:00
2013-11-10 22:06:06 +01:00
2018-12-28 13:32:04 +01:00
2020-12-29 16:53:11 +01:00
2021-10-08 23:03:54 +02:00

To run the test suite, change to this directory and run "./runtest".  It will
run all of the test cases, and list those with unexpected outcomes.  Adding the
-v option will cause it to show expected outcomes as well.  To only run the test
cases for particular applets:

./runtest <applet1> <applet2>...

Set SKIP_KNOWN_BUGS environment variable to any non-empty value
to exclude tests which are known to fail.

Set SKIP_INTERNET_TESTS to exclude tests which require working
internet connection.


Common causes of false positives:

For busybox built against uclibc, /etc/TZ does not exist or does not match
host system timezone setting. For glibc based host systems, timezone settings
are in /etc/localtime.

LANG and LC_xxx environment variables set to non-C locale.


Developer's notes:

The test cases for an applet reside in the subdirectory of the applet name.
The name of the test case should be the assertion that is tested.
The test case should be a shell fragment that returns successfully
if the test case passes, and unsuccessfully otherwise.

If the test case relies on a certain feature, it should include the string
"FEATURE: " followed by the name of the feature in a comment.  If it is always
expected to fail, it should include the string "XFAIL" in a comment.


For the entire testsuite, the copyright is as follows:

Copyright (C) 2001, 2002  Matt Kraai

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.