>>> busybox: Building main/busybox 1.37.0-r8 (using abuild 3.14.1-r3) started Wed, 20 Nov 2024 10:57:13 +0000
>>> busybox: Validating /home/buildozer/aports/main/busybox/APKBUILD...
>>> busybox: Analyzing dependencies...
>>> busybox: Installing for build: build-base perl linux-headers openssl-dev>3 utmps-dev utmps-static zip
(1/16) Installing libbz2 (1.0.8-r6)
(2/16) Installing perl (5.40.0-r3)
(3/16) Installing linux-headers (6.6-r1)
(4/16) Installing openssl-dev (3.3.2-r4)
(5/16) Installing skalibs-libs (2.14.3.0-r0)
(6/16) Installing skalibs-dev (2.14.3.0-r0)
(7/16) Installing utmps-libs (0.1.2.3-r2)
(8/16) Installing utmps-dev (0.1.2.3-r2)
(9/16) Installing skalibs-static (2.14.3.0-r0)
(10/16) Installing utmps-static (0.1.2.3-r2)
(11/16) Installing unzip (6.0-r15)
(12/16) Installing zip (3.0-r13)
(13/16) Installing .makedepends-busybox (20241120.105713)
(14/16) Installing perl-error (0.17029-r2)
(15/16) Installing perl-git (2.47.0-r0)
(16/16) Installing git-perl (2.47.0-r0)
Executing busybox-1.37.0-r7.trigger
OK: 309 MiB in 117 packages
>>> busybox: Cleaning up srcdir
>>> busybox: Cleaning up pkgdir
>>> busybox: Cleaning up tmpdir
>>> busybox: Fetching https://distfiles.alpinelinux.org/distfiles/v3.21/busybox-1.37.0.tar.bz2
Connecting to distfiles.alpinelinux.org (172.105.82.32:443)
saving to '/var/cache/distfiles/v3.21/busybox-1.37.0.tar.bz2.part'
busybox-1.37.0.tar.b 100% |********************************| 2505k  0:00:00 ETA
'/var/cache/distfiles/v3.21/busybox-1.37.0.tar.bz2.part' saved
>>> busybox: Fetching https://distfiles.alpinelinux.org/distfiles/v3.21/busybox-1.37.0.tar.bz2
>>> busybox: Checking sha512sums...
busybox-1.37.0.tar.bz2: OK
0001-wget-add-header-Accept.patch: OK
0002-adduser-default-to-sbin-nologin-as-shell-for-system-.patch: OK
0003-ash-add-built-in-BB_ASH_VERSION-variable.patch: OK
0004-Avoid-redefined-warnings-when-buiding-with-utmps.patch: OK
0005-libbb-sockaddr2str-ensure-only-printable-characters-.patch: OK
0006-modinfo-add-k-option-for-kernel-version.patch: OK
0007-nologin-Install-applet-to-sbin-instead-of-usr-sbin.patch: OK
0008-pgrep-add-support-for-matching-against-UID-and-RUID.patch: OK
0009-properly-fix-wget-https-support.patch: OK
0010-fsck-resolve-LABEL-.-UUID-.-spec-to-device.patch: OK
0011-nslookup-sanitize-all-printed-strings-with-printable.patch: OK
0012-ash-exec-busybox.static.patch: OK
0013-app-location-for-cpio-vi-and-lspci.patch: OK
0014-udhcpc-set-default-discover-retries-to-5.patch: OK
0015-ping-make-ping-work-without-root-privileges.patch: OK
0016-fbsplash-support-console-switching.patch: OK
0017-fbsplash-support-image-and-bar-alignment-and-positio.patch: OK
0018-depmod-support-generating-kmod-binary-index-files.patch: OK
0019-Add-flag-for-not-following-symlinks-when-recursing.patch: OK
0020-udhcpc-Don-t-background-if-n-is-given.patch: OK
0021-tests-fix-tarball-creation.patch: OK
0022-tests-musl-doesn-t-seem-to-recognize-UTC0-as-a-timez.patch: OK
0023-Hackfix-to-disable-HW-acceleration-for-MD5-SHA1-on-x.patch: OK
0024-umount-Implement-O-option-to-unmount-by-mount-option.patch: OK
0025-find-fix-xdev-depth-and-delete.patch: OK
0026-awk.c-fix-CVE-2023-42366-bug-15874.patch: OK
0027-awk-Mark-test-for-handling-of-start-of-word-pattern-.patch: OK
0028-od-Skip-od-B-on-big-endian.patch: OK
0029-ash-reject-unknown-long-options.patch: OK
0030-hexdump-Skip-a-single-test-on-big-endian-systems.patch: OK
0031-syslogd-fix-wrong-OPT_locallog-flag-detection.patch: OK
0032-lineedit-fix-some-tab-completions-written-to-stdout.patch: OK
0001-hexdump-fix-regression-with-n4-e-u.patch: OK
acpid.logrotate: OK
busyboxconfig: OK
busyboxconfig-extras: OK
bbsuid.c: OK
dad.if-up: OK
ssl_client.c: OK
default.script: OK
udhcpc.conf: OK
securetty: OK
acpid-poweroff.sh: OK
acpid.initd: OK
crond.confd: OK
crond.initd: OK
klogd.confd: OK
klogd.initd: OK
ntpd.confd: OK
ntpd.initd: OK
rdate.confd: OK
rdate.initd: OK
syslog.confd: OK
syslog.initd: OK
loadkmap.confd: OK
loadkmap.initd: OK
watchdog.confd: OK
watchdog.initd: OK
mdev.initd: OK
dnsd.initd: OK
httpd.initd: OK
inetd.initd: OK
udhcpd.initd: OK
>>> busybox: Unpacking /var/cache/distfiles/v3.21/busybox-1.37.0.tar.bz2...
>>> busybox: 0001-wget-add-header-Accept.patch
patching file networking/wget.c
>>> busybox: 0002-adduser-default-to-sbin-nologin-as-shell-for-system-.patch
patching file loginutils/adduser.c
>>> busybox: 0003-ash-add-built-in-BB_ASH_VERSION-variable.patch
patching file shell/ash.c
>>> busybox: 0004-Avoid-redefined-warnings-when-buiding-with-utmps.patch
patching file include/libbb.h
patching file libbb/messages.c
patching file libbb/utmp.c
patching file util-linux/last_fancy.c
>>> busybox: 0005-libbb-sockaddr2str-ensure-only-printable-characters-.patch
patching file libbb/xconnect.c
>>> busybox: 0006-modinfo-add-k-option-for-kernel-version.patch
patching file modutils/modinfo.c
>>> busybox: 0007-nologin-Install-applet-to-sbin-instead-of-usr-sbin.patch
patching file util-linux/nologin.c
>>> busybox: 0008-pgrep-add-support-for-matching-against-UID-and-RUID.patch
patching file procps/pgrep.c
>>> busybox: 0009-properly-fix-wget-https-support.patch
patching file networking/wget.c
>>> busybox: 0010-fsck-resolve-LABEL-.-UUID-.-spec-to-device.patch
patching file e2fsprogs/fsck.c
>>> busybox: 0011-nslookup-sanitize-all-printed-strings-with-printable.patch
patching file networking/nslookup.c
>>> busybox: 0012-ash-exec-busybox.static.patch
patching file shell/ash.c
>>> busybox: 0013-app-location-for-cpio-vi-and-lspci.patch
patching file archival/cpio.c
patching file editors/vi.c
patching file util-linux/lspci.c
>>> busybox: 0014-udhcpc-set-default-discover-retries-to-5.patch
patching file networking/udhcp/d6_dhcpc.c
patching file networking/udhcp/dhcpc.c
>>> busybox: 0015-ping-make-ping-work-without-root-privileges.patch
patching file networking/ping.c
>>> busybox: 0016-fbsplash-support-console-switching.patch
patching file miscutils/fbsplash.c
>>> busybox: 0017-fbsplash-support-image-and-bar-alignment-and-positio.patch
patching file miscutils/fbsplash.c
>>> busybox: 0018-depmod-support-generating-kmod-binary-index-files.patch
patching file modutils/Config.src
patching file modutils/depmod.c
patching file modutils/modprobe.c
patching file modutils/modutils.c
patching file modutils/modutils.h
>>> busybox: 0019-Add-flag-for-not-following-symlinks-when-recursing.patch
patching file editors/diff.c
>>> busybox: 0020-udhcpc-Don-t-background-if-n-is-given.patch
patching file networking/udhcp/d6_dhcpc.c
patching file networking/udhcp/dhcpc.c
>>> busybox: 0021-tests-fix-tarball-creation.patch
patching file testsuite/tar.tests
>>> busybox: 0022-tests-musl-doesn-t-seem-to-recognize-UTC0-as-a-timez.patch
patching file testsuite/date/date-timezone
>>> busybox: 0023-Hackfix-to-disable-HW-acceleration-for-MD5-SHA1-on-x.patch
patching file libbb/hash_md5_sha.c
>>> busybox: 0024-umount-Implement-O-option-to-unmount-by-mount-option.patch
patching file include/libbb.h
patching file libbb/Kbuild.src
patching file libbb/match_fsopts.c
patching file util-linux/umount.c
>>> busybox: 0025-find-fix-xdev-depth-and-delete.patch
patching file findutils/find.c
patching file include/libbb.h
patching file libbb/recursive_action.c
>>> busybox: 0026-awk.c-fix-CVE-2023-42366-bug-15874.patch
patching file editors/awk.c
>>> busybox: 0027-awk-Mark-test-for-handling-of-start-of-word-pattern-.patch
patching file testsuite/awk.tests
>>> busybox: 0028-od-Skip-od-B-on-big-endian.patch
patching file testsuite/od.tests
>>> busybox: 0029-ash-reject-unknown-long-options.patch
patching file shell/ash.c
Hunk #1 succeeded at 11516 (offset 14 lines).
>>> busybox: 0030-hexdump-Skip-a-single-test-on-big-endian-systems.patch
patching file testsuite/hexdump.tests
>>> busybox: 0031-syslogd-fix-wrong-OPT_locallog-flag-detection.patch
patching file sysklogd/syslogd.c
>>> busybox: 0032-lineedit-fix-some-tab-completions-written-to-stdout.patch
patching file libbb/lineedit.c
>>> busybox: 0001-hexdump-fix-regression-with-n4-e-u.patch
patching file libbb/dump.c
patching file testsuite/hexdump.tests
Hunk #1 succeeded at 87 (offset 5 lines).
>>> busybox: Building bbsuid
>>> busybox: Building ssl_client
>>> busybox: Building dynamic busybox
COPIED CONFIG to /home/buildozer/aports/main/busybox/src/build-dynamic/.config
  GEN     /home/buildozer/aports/main/busybox/src/build-dynamic/Makefile
  GEN     include/applets.h
  GEN     include/usage.h
  GEN     runit/Kbuild
  GEN     runit/Config.in
  GEN     findutils/Kbuild
  GEN     findutils/Config.in
  GEN     libpwdgrp/Kbuild
  GEN     modutils/Kbuild
  GEN     modutils/Config.in
  GEN     e2fsprogs/Kbuild
  GEN     e2fsprogs/Config.in
  GEN     miscutils/Kbuild
  GEN     miscutils/Config.in
  GEN     applets/Kbuild
  GEN     loginutils/Kbuild
  GEN     loginutils/Config.in
  GEN     init/Kbuild
  GEN     init/Config.in
  GEN     networking/Kbuild
  GEN     networking/Config.in
  GEN     networking/libiproute/Kbuild
  GEN     networking/udhcp/Kbuild
  GEN     networking/udhcp/Config.in
  GEN     archival/Kbuild
  GEN     archival/Config.in
  GEN     archival/libarchive/Kbuild
  GEN     editors/Kbuild
  GEN     editors/Config.in
  GEN     coreutils/Kbuild
  GEN     coreutils/Config.in
  GEN     coreutils/libcoreutils/Kbuild
  GEN     debianutils/Kbuild
  GEN     debianutils/Config.in
  GEN     util-linux/Kbuild
  GEN     util-linux/Config.in
  GEN     util-linux/volume_id/Kbuild
  GEN     util-linux/volume_id/Config.in
  GEN     procps/Kbuild
  GEN     procps/Config.in
  GEN     klibc-utils/Kbuild
  GEN     klibc-utils/Config.in
  GEN     selinux/Kbuild
  GEN     selinux/Config.in
  GEN     sysklogd/Kbuild
  GEN     sysklogd/Config.in
  GEN     libbb/Kbuild
  GEN     libbb/Config.in
  GEN     console-tools/Kbuild
  GEN     console-tools/Config.in
  GEN     mailutils/Kbuild
  GEN     mailutils/Config.in
  GEN     shell/Kbuild
  GEN     shell/Config.in
  GEN     printutils/Kbuild
  GEN     printutils/Config.in
  GEN     scripts/Kbuild
In file included from /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/kconfig/mconf.c:35:
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/kconfig/mconf.c: In function 'main':
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/kconfig/lkc.h:16:47: warning: statement with no effect [-Wunused-value]
   16 | # define bindtextdomain(Domainname, Dirname) ((const char *) (Dirname))
      |                                              ~^~~~~~~~~~~~~~~~~~~~~~~~~
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/kconfig/mconf.c:1066:9: note: in expansion of macro 'bindtextdomain'
 1066 |         bindtextdomain(PACKAGE, LOCALEDIR);
      |         ^~~~~~~~~~~~~~
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/kconfig/lkc.h:15:34: warning: statement with no effect [-Wunused-value]
   15 | # define textdomain(Domainname) ((const char *) (Domainname))
      |                                 ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/kconfig/mconf.c:1067:9: note: in expansion of macro 'textdomain'
 1067 |         textdomain(PACKAGE);
      |         ^~~~~~~~~~
scripts/kconfig/conf -s Config.in
#
# using defaults found in .config
#
make -C /home/buildozer/aports/main/busybox/src/busybox-1.37.0 O=/home/buildozer/aports/main/busybox/src/build-dynamic
  GEN     /home/buildozer/aports/main/busybox/src/build-dynamic/Makefile
  Using /home/buildozer/aports/main/busybox/src/busybox-1.37.0 as source for busybox
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/miscutils/fbsplash.c: In function 'fbsplash_main':
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/miscutils/fbsplash.c:676:25: warning: 'active_vt' may be used uninitialized [-Wmaybe-uninitialized]
  676 |                         console_make_active(fd_tty0, active_vt);
      |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/miscutils/fbsplash.c:557:22: note: 'active_vt' was declared here
  557 |         int fd_tty0, active_vt;
      |                      ^~~~~~~~~
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/modutils/modutils.c: In function 'filename2modname':
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/modutils/modutils.c:149:1: warning: function may return address of local variable [-Wreturn-local-addr]
  149 | }
      | ^
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/modutils/modutils.c:128:14: note: declared here
  128 |         char local_modname[MODULE_NAME_LEN];
      |              ^~~~~~~~~~~~~
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/networking/udhcp/dhcpc.c: In function 'udhcpc_main':
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/networking/udhcp/dhcpc.c:1649:48: warning: variable 'temp_addr' set but not used [-Wunused-but-set-variable]
 1649 |                                 struct in_addr temp_addr;
      |                                                ^~~~~~~~~
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/sysklogd/syslogd_and_logger.c:53:45: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
   53 | static const CODE *const bb_prioritynames = prioritynames;
      |                                             ^~~~~~~~~~~~~
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/sysklogd/syslogd_and_logger.c:53:45: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/sysklogd/syslogd_and_logger.c:53:45: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/sysklogd/syslogd_and_logger.c:53:45: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/sysklogd/syslogd_and_logger.c:53:45: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/sysklogd/syslogd_and_logger.c:53:45: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/sysklogd/syslogd_and_logger.c:53:45: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/sysklogd/syslogd_and_logger.c:53:45: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/sysklogd/syslogd_and_logger.c:53:45: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/sysklogd/syslogd_and_logger.c:53:45: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/sysklogd/syslogd_and_logger.c:53:45: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/sysklogd/syslogd_and_logger.c:53:45: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/sysklogd/syslogd_and_logger.c:54:45: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
   54 | static const CODE *const bb_facilitynames = facilitynames;
      |                                             ^~~~~~~~~~~~~
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/sysklogd/syslogd_and_logger.c:54:45: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/sysklogd/syslogd_and_logger.c:54:45: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/sysklogd/syslogd_and_logger.c:54:45: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/sysklogd/syslogd_and_logger.c:54:45: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/sysklogd/syslogd_and_logger.c:54:45: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/sysklogd/syslogd_and_logger.c:54:45: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/sysklogd/syslogd_and_logger.c:54:45: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/sysklogd/syslogd_and_logger.c:54:45: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/sysklogd/syslogd_and_logger.c:54:45: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/sysklogd/syslogd_and_logger.c:54:45: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/sysklogd/syslogd_and_logger.c:54:45: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/sysklogd/syslogd_and_logger.c:54:45: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/sysklogd/syslogd_and_logger.c:54:45: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/sysklogd/syslogd_and_logger.c:54:45: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/sysklogd/syslogd_and_logger.c:54:45: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/sysklogd/syslogd_and_logger.c:54:45: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/sysklogd/syslogd_and_logger.c:54:45: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/sysklogd/syslogd_and_logger.c:54:45: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/sysklogd/syslogd_and_logger.c:54:45: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/sysklogd/syslogd_and_logger.c:54:45: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/sysklogd/syslogd_and_logger.c:54:45: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
In function 'unpack4',
    inlined from 'ping4' at /home/buildozer/aports/main/busybox/src/busybox-1.37.0/networking/ping.c:856:7,
    inlined from 'ping' at /home/buildozer/aports/main/busybox/src/busybox-1.37.0/networking/ping.c:1006:3,
    inlined from 'common_ping_main.isra' at /home/buildozer/aports/main/busybox/src/busybox-1.37.0/networking/ping.c:1073:2:
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/networking/ping.c:737:59: warning: 'iphdr' may be used uninitialized [-Wmaybe-uninitialized]
  737 |                         recv_seq, using_dgram ? 42 : iphdr->ttl);
      |                                                      ~~~~~^~~~~
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/networking/ping.c: In function 'common_ping_main.isra':
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/networking/ping.c:711:23: note: 'iphdr' was declared here
  711 |         struct iphdr *iphdr;
      |                       ^~~~~
Trying libraries: crypt m resolv rt
 Library crypt is not needed, excluding it
 Library m is not needed, excluding it
 Library resolv is not needed, excluding it
 Library rt is not needed, excluding it
Final link with: <none>
>>> busybox: Building dynamic busybox-extras
  GEN     /home/buildozer/aports/main/busybox/src/build-dynamic-extras/Makefile
  GEN     include/applets.h
  GEN     include/usage.h
  GEN     runit/Kbuild
  GEN     runit/Config.in
  GEN     findutils/Kbuild
  GEN     findutils/Config.in
  GEN     libpwdgrp/Kbuild
  GEN     modutils/Kbuild
  GEN     modutils/Config.in
  GEN     e2fsprogs/Kbuild
  GEN     e2fsprogs/Config.in
  GEN     miscutils/Kbuild
  GEN     miscutils/Config.in
  GEN     applets/Kbuild
  GEN     loginutils/Kbuild
  GEN     loginutils/Config.in
  GEN     init/Kbuild
  GEN     init/Config.in
  GEN     networking/Kbuild
  GEN     networking/Config.in
  GEN     networking/libiproute/Kbuild
  GEN     networking/udhcp/Kbuild
  GEN     networking/udhcp/Config.in
  GEN     archival/Kbuild
  GEN     archival/Config.in
  GEN     archival/libarchive/Kbuild
  GEN     editors/Kbuild
  GEN     editors/Config.in
  GEN     coreutils/Kbuild
  GEN     coreutils/Config.in
  GEN     coreutils/libcoreutils/Kbuild
  GEN     debianutils/Kbuild
  GEN     debianutils/Config.in
  GEN     util-linux/Kbuild
  GEN     util-linux/Config.in
  GEN     util-linux/volume_id/Kbuild
  GEN     util-linux/volume_id/Config.in
  GEN     procps/Kbuild
  GEN     procps/Config.in
  GEN     klibc-utils/Kbuild
  GEN     klibc-utils/Config.in
  GEN     selinux/Kbuild
  GEN     selinux/Config.in
  GEN     sysklogd/Kbuild
  GEN     sysklogd/Config.in
  GEN     libbb/Kbuild
  GEN     libbb/Config.in
  GEN     console-tools/Kbuild
  GEN     console-tools/Config.in
  GEN     mailutils/Kbuild
  GEN     mailutils/Config.in
  GEN     shell/Kbuild
  GEN     shell/Config.in
  GEN     printutils/Kbuild
  GEN     printutils/Config.in
  GEN     scripts/Kbuild
In file included from /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/kconfig/mconf.c:35:
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/kconfig/mconf.c: In function 'main':
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/kconfig/lkc.h:16:47: warning: statement with no effect [-Wunused-value]
   16 | # define bindtextdomain(Domainname, Dirname) ((const char *) (Dirname))
      |                                              ~^~~~~~~~~~~~~~~~~~~~~~~~~
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/kconfig/mconf.c:1066:9: note: in expansion of macro 'bindtextdomain'
 1066 |         bindtextdomain(PACKAGE, LOCALEDIR);
      |         ^~~~~~~~~~~~~~
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/kconfig/lkc.h:15:34: warning: statement with no effect [-Wunused-value]
   15 | # define textdomain(Domainname) ((const char *) (Domainname))
      |                                 ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/kconfig/mconf.c:1067:9: note: in expansion of macro 'textdomain'
 1067 |         textdomain(PACKAGE);
      |         ^~~~~~~~~~
scripts/kconfig/conf -s Config.in
#
# using defaults found in .config
#
make -C /home/buildozer/aports/main/busybox/src/busybox-1.37.0 O=/home/buildozer/aports/main/busybox/src/build-dynamic-extras
  GEN     /home/buildozer/aports/main/busybox/src/build-dynamic-extras/Makefile
  Using /home/buildozer/aports/main/busybox/src/busybox-1.37.0 as source for busybox
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/networking/tftp.c: In function 'tftpd_main':
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/networking/tftp.c:886:15: warning: 'local_file' is used uninitialized [-Wuninitialized]
  886 |         char *local_file = local_file;
      |               ^~~~~~~~~~
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/networking/tftp.c:886:15: note: 'local_file' was declared here
  886 |         char *local_file = local_file;
      |               ^~~~~~~~~~
Trying libraries: crypt m rt
 Library crypt is not needed, excluding it
 Library m is not needed, excluding it
 Library rt is not needed, excluding it
Final link with: <none>
>>> busybox: Building static busybox
  GEN     /home/buildozer/aports/main/busybox/src/build-static/Makefile
  GEN     include/applets.h
  GEN     include/usage.h
  GEN     runit/Kbuild
  GEN     runit/Config.in
  GEN     findutils/Kbuild
  GEN     findutils/Config.in
  GEN     libpwdgrp/Kbuild
  GEN     modutils/Kbuild
  GEN     modutils/Config.in
  GEN     e2fsprogs/Kbuild
  GEN     e2fsprogs/Config.in
  GEN     miscutils/Kbuild
  GEN     miscutils/Config.in
  GEN     applets/Kbuild
  GEN     loginutils/Kbuild
  GEN     loginutils/Config.in
  GEN     init/Kbuild
  GEN     init/Config.in
  GEN     networking/Kbuild
  GEN     networking/Config.in
  GEN     networking/libiproute/Kbuild
  GEN     networking/udhcp/Kbuild
  GEN     networking/udhcp/Config.in
  GEN     archival/Kbuild
  GEN     archival/Config.in
  GEN     archival/libarchive/Kbuild
  GEN     editors/Kbuild
  GEN     editors/Config.in
  GEN     coreutils/Kbuild
  GEN     coreutils/Config.in
  GEN     coreutils/libcoreutils/Kbuild
  GEN     debianutils/Kbuild
  GEN     debianutils/Config.in
  GEN     util-linux/Kbuild
  GEN     util-linux/Config.in
  GEN     util-linux/volume_id/Kbuild
  GEN     util-linux/volume_id/Config.in
  GEN     procps/Kbuild
  GEN     procps/Config.in
  GEN     klibc-utils/Kbuild
  GEN     klibc-utils/Config.in
  GEN     selinux/Kbuild
  GEN     selinux/Config.in
  GEN     sysklogd/Kbuild
  GEN     sysklogd/Config.in
  GEN     libbb/Kbuild
  GEN     libbb/Config.in
  GEN     console-tools/Kbuild
  GEN     console-tools/Config.in
  GEN     mailutils/Kbuild
  GEN     mailutils/Config.in
  GEN     shell/Kbuild
  GEN     shell/Config.in
  GEN     printutils/Kbuild
  GEN     printutils/Config.in
  GEN     scripts/Kbuild
In file included from /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/kconfig/mconf.c:35:
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/kconfig/mconf.c: In function 'main':
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/kconfig/lkc.h:16:47: warning: statement with no effect [-Wunused-value]
   16 | # define bindtextdomain(Domainname, Dirname) ((const char *) (Dirname))
      |                                              ~^~~~~~~~~~~~~~~~~~~~~~~~~
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/kconfig/mconf.c:1066:9: note: in expansion of macro 'bindtextdomain'
 1066 |         bindtextdomain(PACKAGE, LOCALEDIR);
      |         ^~~~~~~~~~~~~~
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/kconfig/lkc.h:15:34: warning: statement with no effect [-Wunused-value]
   15 | # define textdomain(Domainname) ((const char *) (Domainname))
      |                                 ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/kconfig/mconf.c:1067:9: note: in expansion of macro 'textdomain'
 1067 |         textdomain(PACKAGE);
      |         ^~~~~~~~~~
scripts/kconfig/conf -s Config.in
#
# using defaults found in .config
#
make -C /home/buildozer/aports/main/busybox/src/busybox-1.37.0 O=/home/buildozer/aports/main/busybox/src/build-static
  GEN     /home/buildozer/aports/main/busybox/src/build-static/Makefile
  Using /home/buildozer/aports/main/busybox/src/busybox-1.37.0 as source for busybox
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/networking/udhcp/dhcpc.c: In function 'udhcpc_main':
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/networking/udhcp/dhcpc.c:1649:48: warning: variable 'temp_addr' set but not used [-Wunused-but-set-variable]
 1649 |                                 struct in_addr temp_addr;
      |                                                ^~~~~~~~~
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/sysklogd/syslogd_and_logger.c:53:45: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
   53 | static const CODE *const bb_prioritynames = prioritynames;
      |                                             ^~~~~~~~~~~~~
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/sysklogd/syslogd_and_logger.c:53:45: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/sysklogd/syslogd_and_logger.c:53:45: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/sysklogd/syslogd_and_logger.c:53:45: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/sysklogd/syslogd_and_logger.c:53:45: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/sysklogd/syslogd_and_logger.c:53:45: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/sysklogd/syslogd_and_logger.c:53:45: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/sysklogd/syslogd_and_logger.c:53:45: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/sysklogd/syslogd_and_logger.c:53:45: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/sysklogd/syslogd_and_logger.c:53:45: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/sysklogd/syslogd_and_logger.c:53:45: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/sysklogd/syslogd_and_logger.c:53:45: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/sysklogd/syslogd_and_logger.c:54:45: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
   54 | static const CODE *const bb_facilitynames = facilitynames;
      |                                             ^~~~~~~~~~~~~
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/sysklogd/syslogd_and_logger.c:54:45: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/sysklogd/syslogd_and_logger.c:54:45: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/sysklogd/syslogd_and_logger.c:54:45: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/sysklogd/syslogd_and_logger.c:54:45: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/sysklogd/syslogd_and_logger.c:54:45: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/sysklogd/syslogd_and_logger.c:54:45: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/sysklogd/syslogd_and_logger.c:54:45: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/sysklogd/syslogd_and_logger.c:54:45: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/sysklogd/syslogd_and_logger.c:54:45: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/sysklogd/syslogd_and_logger.c:54:45: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/sysklogd/syslogd_and_logger.c:54:45: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/sysklogd/syslogd_and_logger.c:54:45: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/sysklogd/syslogd_and_logger.c:54:45: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/sysklogd/syslogd_and_logger.c:54:45: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/sysklogd/syslogd_and_logger.c:54:45: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/sysklogd/syslogd_and_logger.c:54:45: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/sysklogd/syslogd_and_logger.c:54:45: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/sysklogd/syslogd_and_logger.c:54:45: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/sysklogd/syslogd_and_logger.c:54:45: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/sysklogd/syslogd_and_logger.c:54:45: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/sysklogd/syslogd_and_logger.c:54:45: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/miscutils/fbsplash.c: In function 'fbsplash_main':
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/miscutils/fbsplash.c:676:25: warning: 'active_vt' may be used uninitialized [-Wmaybe-uninitialized]
  676 |                         console_make_active(fd_tty0, active_vt);
      |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/miscutils/fbsplash.c:557:22: note: 'active_vt' was declared here
  557 |         int fd_tty0, active_vt;
      |                      ^~~~~~~~~
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/modutils/modutils.c: In function 'filename2modname':
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/modutils/modutils.c:149:1: warning: function may return address of local variable [-Wreturn-local-addr]
  149 | }
      | ^
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/modutils/modutils.c:128:14: note: declared here
  128 |         char local_modname[MODULE_NAME_LEN];
      |              ^~~~~~~~~~~~~
In function 'unpack4',
    inlined from 'ping4' at /home/buildozer/aports/main/busybox/src/busybox-1.37.0/networking/ping.c:856:7,
    inlined from 'ping' at /home/buildozer/aports/main/busybox/src/busybox-1.37.0/networking/ping.c:1006:3,
    inlined from 'common_ping_main.isra' at /home/buildozer/aports/main/busybox/src/busybox-1.37.0/networking/ping.c:1073:2:
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/networking/ping.c:737:59: warning: 'iphdr' may be used uninitialized [-Wmaybe-uninitialized]
  737 |                         recv_seq, using_dgram ? 42 : iphdr->ttl);
      |                                                      ~~~~~^~~~~
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/networking/ping.c: In function 'common_ping_main.isra':
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/networking/ping.c:711:23: note: 'iphdr' was declared here
  711 |         struct iphdr *iphdr;
      |                       ^~~~~
Trying libraries: crypt m resolv rt
 Library crypt is not needed, excluding it
 Library m is not needed, excluding it
 Library resolv is not needed, excluding it
 Library rt is not needed, excluding it
Final link with: <none>
make -C /home/buildozer/aports/main/busybox/src/build-dynamic \
KBUILD_SRC=/home/buildozer/aports/main/busybox/src/busybox-1.37.0 \
KBUILD_EXTMOD="" -f /home/buildozer/aports/main/busybox/src/busybox-1.37.0/Makefile check
rm -f .kernelrelease
sh /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/mkmakefile \
    /home/buildozer/aports/main/busybox/src/busybox-1.37.0 /home/buildozer/aports/main/busybox/src/build-dynamic 1 37
echo 1.37.0 > .kernelrelease
  GEN     /home/buildozer/aports/main/busybox/src/build-dynamic/Makefile
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/gen_build_files.sh /home/buildozer/aports/main/busybox/src/busybox-1.37.0 /home/buildozer/aports/main/busybox/src/build-dynamic
/bin/sh /home/buildozer/aports/main/busybox/src/busybox-1.37.0/applets/busybox.mkll /home/buildozer/aports/main/busybox/src/build-dynamic/include/autoconf.h include/applets.h > busybox.links
  Using /home/buildozer/aports/main/busybox/src/busybox-1.37.0 as source for busybox
if [ -f /home/buildozer/aports/main/busybox/src/busybox-1.37.0/.config ]; then \
	echo "  /home/buildozer/aports/main/busybox/src/busybox-1.37.0 is not clean, please run 'make mrproper'";\
	echo "  in the '/home/buildozer/aports/main/busybox/src/busybox-1.37.0' directory.";\
	/bin/false; \
fi;
if [ ! -d include2 ]; then mkdir -p include2; fi;
ln -fsn /home/buildozer/aports/main/busybox/src/busybox-1.37.0/include/asm-arm include2/asm
make -f /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/Makefile.build obj=scripts/basic
make -f /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/Makefile.build obj=applets
make -f /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/Makefile.build obj=scripts
make -f /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/Makefile.build obj=.
make -f /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/Makefile.build obj=applets
make -f /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/Makefile.build obj=archival
make -f /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/Makefile.build obj=archival/libarchive
make -f /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/Makefile.build obj=console-tools
make -f /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/Makefile.build obj=coreutils
make -f /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/Makefile.build obj=coreutils/libcoreutils
make -f /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/Makefile.build obj=debianutils
make -f /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/Makefile.build obj=klibc-utils
make -f /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/Makefile.build obj=e2fsprogs
make -f /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/Makefile.build obj=editors
make -f /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/Makefile.build obj=findutils
make -f /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/Makefile.build obj=init
make -f /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/Makefile.build obj=libbb
make -f /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/Makefile.build obj=libpwdgrp
make -f /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/Makefile.build obj=loginutils
make -f /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/Makefile.build obj=mailutils
make -f /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/Makefile.build obj=miscutils
make -f /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/Makefile.build obj=modutils
make -f /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/Makefile.build obj=networking
make -f /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/Makefile.build obj=networking/libiproute
make -f /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/Makefile.build obj=networking/udhcp
make -f /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/Makefile.build obj=printutils
make -f /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/Makefile.build obj=procps
make -f /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/Makefile.build obj=runit
make -f /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/Makefile.build obj=selinux
make -f /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/Makefile.build obj=shell
make -f /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/Makefile.build obj=sysklogd
make -f /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/Makefile.build obj=util-linux
make -f /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/Makefile.build obj=util-linux/volume_id
Trying libraries: crypt m resolv rt
 Library crypt is not needed, excluding it
 Library m is not needed, excluding it
 Library resolv is not needed, excluding it
 Library rt is not needed, excluding it
Final link with: <none>
echo 'cmd_busybox_unstripped := /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/trylink "busybox_unstripped" "gcc" "-Os -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wshadow -Wwrite-strings -Wundef -Wstrict-prototypes -Wunused -Wunused-parameter -Wunused-function -Wunused-value -Wmissing-prototypes -Wmissing-declarations -Wno-format-security -Wdeclaration-after-statement -Wold-style-definition -finline-limit=0 -fno-builtin-strlen -fomit-frame-pointer -ffunction-sections -fdata-sections -fno-guess-branch-probability -funsigned-char -falign-functions=1 -falign-jumps=1 -falign-labels=1 -falign-loops=1 -fno-unwind-tables -fno-asynchronous-unwind-tables -fno-builtin-printf -Oz -fpie -I/usr/include/utmps -pie" "-Wl,--as-needed,-O1,--sort-common " " applets/built-in.o" " archival/lib.a  archival/libarchive/lib.a  console-tools/lib.a  coreutils/lib.a  coreutils/libcoreutils/lib.a  debianutils/lib.a  klibc-utils/lib.a  e2fsprogs/lib.a  editors/lib.a  findutils/lib.a  init/lib.a  libbb/lib.a  libpwdgrp/lib.a  loginutils/lib.a  mailutils/lib.a  miscutils/lib.a  modutils/lib.a  networking/lib.a  networking/libiproute/lib.a  networking/udhcp/lib.a  printutils/lib.a  procps/lib.a  runit/lib.a  selinux/lib.a  shell/lib.a  sysklogd/lib.a  util-linux/lib.a  util-linux/volume_id/lib.a  archival/built-in.o  archival/libarchive/built-in.o  console-tools/built-in.o  coreutils/built-in.o  coreutils/libcoreutils/built-in.o  debianutils/built-in.o  klibc-utils/built-in.o  e2fsprogs/built-in.o  editors/built-in.o  findutils/built-in.o  init/built-in.o  libbb/built-in.o  libpwdgrp/built-in.o  loginutils/built-in.o  mailutils/built-in.o  miscutils/built-in.o  modutils/built-in.o  networking/built-in.o  networking/libiproute/built-in.o  networking/udhcp/built-in.o  printutils/built-in.o  procps/built-in.o  runit/built-in.o  selinux/built-in.o  shell/built-in.o  sysklogd/built-in.o  util-linux/built-in.o  util-linux/volume_id/built-in.o" "m crypt rt resolv" "-Wl,--push-state,-Bstatic -lutmps -lskarnet -Wl,--pop-state" && /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/generate_BUFSIZ.sh --post include/common_bufsiz.h' > ./.busybox_unstripped.cmd
rm -f .old_version
strip -s --remove-section=.note --remove-section=.comment \
	busybox_unstripped -o busybox
chmod a+x busybox
test -d /home/buildozer/aports/main/busybox/src/build-dynamic/testsuite || cp -pPR /home/buildozer/aports/main/busybox/src/busybox-1.37.0/testsuite /home/buildozer/aports/main/busybox/src/build-dynamic
bindir=/home/buildozer/aports/main/busybox/src/build-dynamic srcdir=/home/buildozer/aports/main/busybox/src/busybox-1.37.0/testsuite \
/bin/sh -c "cd /home/buildozer/aports/main/busybox/src/build-dynamic/testsuite && /home/buildozer/aports/main/busybox/src/busybox-1.37.0/testsuite/runtest -v"
======================
echo -ne '' >input
echo -ne '' | ./unknown 2>&1
PASS: busybox as unknown name
======================
echo -ne '' >input
echo -ne '' | true | busybox --help busybox 2>&1 | cat
PASS: busybox --help busybox
======================
echo -ne '' >input
echo -ne '' | busybox 2>&1 | cat
PASS: busybox
======================
echo -ne '' >input
echo -ne '' | busybox unknown 2>&1
PASS: busybox unknown
======================
echo -ne '' >input
echo -ne '' | busybox --help 2>&1
PASS: busybox --help
======================
echo -ne '' >input
echo -ne 'moo' | busybox cat
PASS: busybox cat
======================
echo -ne '' >input
echo -ne '' | busybox --help cat 2>&1 | grep Print
PASS: busybox --help cat
======================
echo -ne '' >input
echo -ne '' | busybox --help unknown 2>&1
PASS: busybox --help unknown
======================
echo -ne '' >input
echo -ne '' | ./busybox-suffix 2>&1 | cat
PASS: ./busybox-suffix
======================
echo -ne '' >input
echo -ne '' | ./busybox-suffix unknown 2>&1
PASS: ./busybox-suffix unknown
======================
echo -ne '' >input
echo -ne '' | ./busybox-suffix --help 2>&1
PASS: ./busybox-suffix --help
======================
echo -ne '' >input
echo -ne 'moo' | ./busybox-suffix cat
PASS: ./busybox-suffix cat
======================
echo -ne '' >input
echo -ne '' | ./busybox-suffix --help cat 2>&1 | grep Print
PASS: ./busybox-suffix --help cat
======================
echo -ne '' >input
echo -ne '' | ./busybox-suffix --help unknown 2>&1
PASS: ./busybox-suffix --help unknown
======================
echo -ne '' >input
echo -ne '' | awk -F '[#]' '{ print NF }'
PASS: awk -F case 0
======================
echo -ne '' >input
echo -ne '\n' | awk -F '[#]' '{ print NF }'
PASS: awk -F case 1
======================
echo -ne '' >input
echo -ne '#\n' | awk -F '[#]' '{ print NF }'
PASS: awk -F case 2
======================
echo -ne '' >input
echo -ne '#abc#\n' | awk -F '[#]' '{ print NF }'
PASS: awk -F case 3
======================
echo -ne '' >input
echo -ne '#abc#zz\n' | awk -F '[#]' '{ print NF }'
PASS: awk -F case 4
======================
echo -ne '' >input
echo -ne '#abc##zz\n' | awk -F '[#]' '{ print NF }'
PASS: awk -F case 5
======================
echo -ne '' >input
echo -ne 'z#abc##zz\n' | awk -F '[#]' '{ print NF }'
PASS: awk -F case 6
======================
echo -ne '' >input
echo -ne 'z##abc##zz\n' | awk -F '[#]' '{ print NF }'
PASS: awk -F case 7
======================
echo -ne '' >input
echo -ne '' | awk 'BEGIN{if(23==23) print "foo"}'
PASS: awk if operator == 
======================
echo -ne '' >input
echo -ne '' | awk 'BEGIN{if(23!=23) print "bar"}'
PASS: awk if operator != 
======================
echo -ne '' >input
echo -ne '' | awk 'BEGIN{if(23>=23) print "foo"}'
PASS: awk if operator >= 
======================
echo -ne '' >input
echo -ne '' | awk 'BEGIN{if(2 < 13) print "foo"}'
PASS: awk if operator < 
======================
echo -ne '' >input
echo -ne '' | awk 'BEGIN{if("a"=="ab") print "bar"}'
PASS: awk if string == 
======================
echo -ne '' >input
echo -ne '\n' | awk '{ print or(4294967295,1) }'
PASS: awk bitwise op
======================
echo -ne '' >input
echo -ne '' | awk '
function empty_fun(count) {
  # empty
}
END {
  i=1
  print "L" i "\n"
  empty_fun(i + i + ++i)
  print "L" i "\n"
}'
PASS: awk handles empty function f(arg){}
======================
echo -ne '' >input
echo -ne '' | awk '
function empty_fun(){}
END {empty_fun()
  print "Ok"
}'
PASS: awk handles empty function f(){}
======================
echo -ne '' >input
echo -ne '' | awk '
function outer_fun() {
  return 1
}
END {
  i=1
  print "L" i "\n"
  i += outer_fun()
  print "L" i "\n"
}'
PASS: awk properly handles function from other scope
======================
echo -ne '' >input
echo -ne '' | awk '
END {
  i=1
  print "L" i "\n"
  i + trigger_error_fun()
  print "L" i "\n"
}' 2>&1
PASS: awk properly handles undefined function
======================
echo -ne '' >input
echo -ne '' | awk '
BEGIN {
  v=1
  a=2
  print v (a)
}' 2>&1
PASS: awk 'v (a)' is not a function call, it is a concatenation
======================
echo -ne '' >input
echo -ne '' | awk 'func f(){print"F"};func g(){print"G"};BEGIN{f(g(),g())}' 2>&1
PASS: awk unused function args are evaluated
======================
echo -ne '' >input
echo -ne '\n' | awk '{ print or(0xffffffff,1) }'
PASS: awk hex const 1
======================
echo -ne '' >input
echo -ne '\n' | awk '{ print or(0x80000000,1) }'
PASS: awk hex const 2
======================
echo -ne '' >input
echo -ne '\n' | awk '{ print or(01234,1) }'
PASS: awk oct const
======================
echo -ne '' >input
echo -ne '011\n' | awk '{ print $1, $1+1 }'
PASS: awk input is never oct
======================
echo -ne '' >input
echo -ne '\n' | awk '{ printf "%f %f\n", "000.123", "009.123" }'
PASS: awk floating const with leading zeroes
======================
echo -ne '' >input
echo -ne 'a--\na--b--\na--b--c--\na--b--c--d--' | awk -F-- '{ print NF, length($NF), $NF }'
PASS: awk long field sep
======================
echo -ne '' >input
echo -ne 'a!b\n' | awk -F'\x21' '{print $1}'
PASS: awk -F handles escapes
======================
echo -ne '' >input
echo -ne 'Hi\n' | awk 'gsub("@(samp|code|file)\{","");'; echo $?
PASS: awk gsub falls back to non-extended-regex
======================
echo -ne '' >input
echo -ne '' | awk -f awk_t1_opt-functions.awk -f awk_t1_opth-gen.awk <awk_t1_input | md5sum
PASS: awk 'gcc build bug'
======================
echo -ne '' >input
echo -ne '' | awk 'BEGIN { print ":" NF ":" $0 ":" $1 ":" $2 ":" }'
PASS: awk NF in BEGIN
======================
echo -ne '' >input
echo -ne '' | awk '
function b(tmp) {
	tmp = 0;
	print "" tmp; #this line causes the bug
	return tmp;
}
function c(tmpc) {
	tmpc = b(); return tmpc;
}
BEGIN {
	print (c() ? "string" : "number");
}'
PASS: awk string cast (bug 725)
======================
echo -ne '' >input
echo -ne '' | awk 'BEGIN { arr [3] = 1; print arr [3] }'
PASS: awk handles whitespace before array subscript
======================
echo -ne '' >input
echo -ne '' | awk 'BEGIN { getline line <"doesnt_exist"; print ERRNO; ERRNO=0; close("doesnt_exist"); print ERRNO; print "Ok" }'
PASS: awk handles non-existing file correctly
======================
echo -ne '' >input
echo -ne '' | awk '
BEGIN {
  u["a"]=1
  u["b"]=1
  u["c"]=1
  v["d"]=1
  v["e"]=1
  v["f"]=1
  for (l in u) {
    print "outer1", l;
    for (l in v) {
      print " inner", l;
    }
    print "outer2", l;
  }
  print "end", l;
  l="a"
  exit;
}'
PASS: awk nested loops with the same variable
======================
echo -ne '' >input
echo -ne '' | awk '
BEGIN{
cnt = 0
a[cnt] = "zeroth"
a[++cnt] = "first"
delete a[cnt--]
print cnt
print "[0]:" a[0]
print "[1]:" a[1]
}'
PASS: awk 'delete a[v--]' evaluates v-- once
======================
echo -ne '' >input
echo -ne '' | awk 'func f(,) { }' 2>&1
PASS: awk func arg parsing 1
======================
echo -ne '' >input
echo -ne '' | awk 'func f(a,,b) { }' 2>&1
PASS: awk func arg parsing 2
======================
echo -ne '' >input
echo -ne '' | awk 'func f(a,) { }' 2>&1
PASS: awk func arg parsing 3
======================
echo -ne '' >input
echo -ne '' | awk 'func f(a b) { }' 2>&1
PASS: awk func arg parsing 4
======================
echo -ne '' >input
echo -ne '' | awk 'BEGIN {print()}' 2>&1
PASS: awk handles empty ()
======================
echo -ne '' >input
echo -ne 'a:b c:d\ne:f g:h' | awk '{FS=":"; print $1}'
PASS: awk FS assignment
======================
echo -ne '' >input
echo -ne '' | awk 'BEGIN{n=(2^31)-1; print n, int(n), n%1, ++n, int(n), n%1}'
PASS: awk large integer
======================
echo -ne '' >input
echo -ne '' | awk 'BEGIN{ A[1]=2; A["qwe"]="asd"; print length(A)}'
PASS: awk length(array)
======================
echo -ne '' >input
echo -ne 'qwe' | awk '{print length; print length(); print length("qwe"); print length(99+9)}'
PASS: awk length()
======================
echo -ne '' >input
echo -ne '\n' | awk '{ print length, 1 }'
PASS: awk print length, 1
======================
echo -ne '' >input
echo -ne '\n' | awk '{ print length 1 }'
PASS: awk print length 1
======================
echo -ne '' >input
echo -ne '\n' | awk 'length == 0 { print "foo" }'
PASS: awk length == 0
======================
echo -ne '' >input
echo -ne '\n' | awk '{ if (length == 0) { print "bar" } }'
PASS: awk if (length == 0)
======================
echo -ne 'do re mi\n' >input
echo -ne '{print $2; print ARGC;}' | awk -f - input
PASS: awk -f and ARGC
======================
echo -ne 'do re mi\n' >input
echo -ne '' | awk -e '{print $2; print ARGC;}' input
PASS: awk -e and ARGC
======================
echo -ne '' >input
echo -ne 'BEGIN { if (1) break; else a = 1 }' | awk -f - 2>&1; echo $?
PASS: awk break
======================
echo -ne '' >input
echo -ne 'BEGIN { if (1) continue; else a = 1 }' | awk -f - 2>&1; echo $?
PASS: awk continue
======================
echo -ne '' >input
echo -ne '' | awk -e '{ for() }' 2>&1
PASS: awk handles invalid for loop
======================
echo -ne '' >input
echo -ne '' | awk -e foo:bar: 2>&1
PASS: awk handles colon not preceded by ternary
======================
echo -ne '' >input
echo -ne '' | awk -e '{delete}' 2>&1
PASS: awk errors on missing delete arg
======================
echo -ne '' >input
echo -ne '\n' | awk '{printf("hello%c null\n", 0)}'
PASS: awk printf('%c') can output NUL
======================
echo -ne '' >input
echo -ne '' | awk 'BEGIN { printf "[%-10c]\n", 0 }' | od -tx1
PASS: awk printf('%-10c') can output NUL
======================
echo -ne '' >input
echo -ne 'anything' | awk 2>&1 -- '{ $(-1) }'
PASS: awk negative field access
======================
echo -ne '' >input
echo -ne 'anything' | awk -v i=1 "BEGIN {print \"str\" ++i}"
PASS: awk do not allow "str"++
======================
echo -ne '' >input
echo -ne 'foo--bar' | awk -F '-*' '{print $1 "-" $2 "=" $3 "*" $4}'
PASS: awk FS regex which can match empty string
======================
echo -ne '' >input
echo -ne 'a=====123=' | awk -F '=+' '{print $NF}'
PASS: awk $NF is empty
======================
echo -ne '' >input
echo -ne '' | awk 'BEGIN { exit 42 } END { exit }'; echo $?
PASS: awk exit N propagates through END's exit
======================
echo -ne '' >input
echo -ne '' | awk 'BEGIN { print "STDERR %s" >"/dev/stderr" }' 2>&1
PASS: awk print + redirect
======================
echo -ne '' >input
echo -ne '' | awk 'BEGIN { "echo HELLO" | getline; print }'
PASS: awk "cmd" | getline
======================
echo -ne '' >input
echo -ne '' | awk 'BEGIN { printf "%%\n" }'
PASS: awk printf %% prints one %
======================
echo -ne '' >input
echo -ne '' | awk 'BEGIN { printf "Hello\
 world\n" }'
PASS: awk backslash+newline eaten with no trace
======================
echo -ne '' >input
echo -ne '─ process timing ────────────────────────────────────┬─ overall results ────┐
│        run time : 0 days, 0 hrs, 0 min, 56 sec      │  cycles done : 0     │
│   last new find : 0 days, 0 hrs, 0 min, 1 sec       │ corpus count : 208   │
│last saved crash : none seen yet                     │saved crashes : 0     │
│ last saved hang : none seen yet                     │  saved hangs : 0     │
├─ cycle progress ─────────────────────┬─ map coverage┴──────────────────────┤
│  now processing : 184.1 (88.5%)      │    map density : 0.30% / 0.52%      │
│  runs timed out : 0 (0.00%)          │ count coverage : 2.18 bits/tuple    │
├─ stage progress ─────────────────────┼─ findings in depth ─────────────────┤
│  now trying : havoc                  │ favored items : 43 (20.67%)         │
│ stage execs : 11.2k/131k (8.51%)     │  new edges on : 52 (25.00%)         │
│ total execs : 179k                   │ total crashes : 0 (0 saved)         │
│  exec speed : 3143/sec               │  total tmouts : 0 (0 saved)         │
├─ fuzzing strategy yields ────────────┴─────────────┬─ item geometry ───────┤
│   bit flips : 11/648, 4/638, 5/618                 │    levels : 4         │
│  byte flips : 0/81, 0/71, 0/52                     │   pending : 199       │
│ arithmetics : 11/4494, 0/1153, 0/0                 │  pend fav : 35        │
│  known ints : 1/448, 0/1986, 0/2288                │ own finds : 207       │
│  dictionary : 0/0, 0/0, 0/0, 0/0                   │  imported : 0         │
│havoc/splice : 142/146k, 23/7616                    │ stability : 100.00%   │
│py/custom/rq : unused, unused, unused, unused       ├───────────────────────┘
│    trim/eff : 57.02%/26, 0.00%                     │          [cpu000:100%]
└────────────────────────────────────────────────────┘^C' | awk '$5=$$5=$0'; echo $?
PASS: awk assign while assign
======================
echo -ne '' >input
echo -ne 'word1 word2 word3\r' | awk '{ $1=$0; print }'
PASS: awk does not split on CR (char 13)
======================
echo -ne '' >input
echo -ne '' | awk 'BEGIN { a=0?"bug":"ok"; print a}'
PASS: awk = and ?: precedence
======================
echo -ne '' >input
echo -ne '' | awk 'BEGIN { s="\\"; print "s=" s; print gensub("a", s, "g", "a|a") }'
PASS: awk gensub backslashes \
======================
echo -ne '' >input
echo -ne '' | awk 'BEGIN { s="\\\\"; print "s=" s; print gensub("a", s, "g", "a|a") }'
PASS: awk gensub backslashes \\
======================
echo -ne '' >input
echo -ne '' | awk 'BEGIN { s="\\\\\\"; print "s=" s; print gensub("a", s, "g", "a|a") }'
PASS: awk gensub backslashes \\\
======================
echo -ne '' >input
echo -ne '' | awk 'BEGIN { s="\\\\\\\\"; print "s=" s; print gensub("a", s, "g", "a|a") }'
PASS: awk gensub backslashes \\\\
======================
echo -ne '' >input
echo -ne '' | awk 'BEGIN { s="\\&"; print "s=" s; print gensub("a", s, "g", "a|a") }'
PASS: awk gensub backslashes \&
======================
echo -ne '' >input
echo -ne '' | awk 'BEGIN { s="\\0"; print "s=" s; print gensub("a", s, "g", "a|a") }'
PASS: awk gensub backslashes \0
======================
echo -ne '' >input
echo -ne '' | awk 'BEGIN { s="\\\\0"; print "s=" s; print gensub("a", s, "g", "a|a") }'
PASS: awk gensub backslashes \\0
======================
echo -ne '' >input
echo -ne 'a\nb\n' | awk '$2 != 0'
PASS: awk references to empty fields
PASS: basename-does-not-remove-identical-extension
PASS: basename-works
======================
echo -ne '' >input
echo -ne '1 /* comment */ + 2' | bc
PASS: bc comment
======================
echo -ne '' >input
echo -ne '1 /*/ + 2 */ + 3' | bc
PASS: bc /*/ is not a closed comment
======================
echo -ne '' >input
echo -ne '1 /* " */ + 2' | bc
PASS: bc comment with "
======================
echo -ne '' >input
echo -ne '"string/*";9' | bc
PASS: bc "string/*" is not a comment
======================
echo -ne '' >input
echo -ne '#foo' | bc
PASS: bc comment 3: unterminated #comment
======================
echo -ne '' >input
echo -ne '1 \\\n + 2' | bc
PASS: bc backslash 1
======================
echo -ne '' >input
echo -ne '"STR\n"' | bc
PASS: bc string 1
======================
echo -ne 'read();halt' >input
echo -ne '4' | bc input
PASS: bc read() 4<EOF>
======================
echo -ne 'read()^2;halt' >input
echo -ne '4\n' | bc input
PASS: bc read()^2
======================
echo -ne 'read()*read();halt' >input
echo -ne '4\n5' | bc input
PASS: bc read()*read()
======================
echo -ne '' >input
echo -ne 'if (0) 1 else 2; 9' | bc
PASS: bc if 0 else
======================
echo -ne '' >input
echo -ne 'if (1) 1 else 2; 9' | bc
PASS: bc if 1 else
======================
echo -ne '' >input
echo -ne 'if (1) if (1) 1 else 2 else 3; 9' | bc
PASS: bc if 1 if 1 else else
======================
echo -ne '' >input
echo -ne 'if (0) 1 else if (1) 2; 9' | bc
PASS: bc if 0 else if 1
======================
echo -ne '' >input
echo -ne 'i=2; for (;;) { 2; if(--i==0) break; 3; }; 9' | bc
PASS: bc for (;;)
======================
echo -ne '' >input
echo -ne 'i=0; for(;i<3;)++i; 9' | bc
PASS: bc for (;cond;)
======================
echo -ne '' >input
echo -ne 'i=1; for(;i<4;i++)i; 9' | bc
PASS: bc for (;cond;upd)
======================
echo -ne '' >input
echo -ne 'for(i=1;i<4;i++)i; 9' | bc
PASS: bc for (init;cond;upd)
======================
echo -ne '' >input
echo -ne 'for (;;) {2;break}; 9' | bc
PASS: bc for (;;) {break}
======================
echo -ne '' >input
echo -ne 'define w() {return}\nw();9' | bc
PASS: bc define {return}
======================
echo -ne '' >input
echo -ne 'define w() { auto z; return 8; }; w(); 9' | bc
PASS: bc define auto
======================
echo -ne '' >input
echo -ne 'define w(x) { auto x[]; return x; }; w(8); 9' | bc
PASS: bc define auto array same name
======================
echo -ne '' >input
echo -ne 'define w()\n{ auto z; return 8; }\nw()\n9' | bc
PASS: bc define with body on next line
======================
echo -ne '' >input
echo -ne 'define void w() {print "void"}\nw()\n9' | bc
PASS: bc void function
======================
echo -ne '' >input
echo -ne 'define void() {print "void"}\nvoid()\n9' | bc
PASS: bc function named 'void'
======================
echo -ne '' >input
echo -ne 'void=6\nvoid\n9' | bc
PASS: bc variable named 'void'
======================
echo -ne '' >input
echo -ne 'if(0)\n3\n9' | bc
PASS: bc if(cond)<NL>
======================
echo -ne '' >input
echo -ne 'if(0)3 else\n4\n9' | bc
PASS: bc if(cond) stmt else<NL>
======================
echo -ne '' >input
echo -ne 'i=9;while(--i)\ni\n9' | bc
PASS: bc while(cond)<NL>
======================
echo -ne '' >input
echo -ne 'ifz=1;ifz\n++ifz;ifz++\nifz' | bc
PASS: bc ifz does not match if keyword
======================
echo -ne '' >input
echo -ne 'e(0)-2' | bc -l
PASS: bc -l 'e(0)-2'
======================
echo -ne '' >input
echo -ne '(!a&&b)' | bc
PASS: bc (!a&&b)
======================
echo -ne '' >input
echo -ne 'print ""' | bc
PASS: bc print ""
======================
echo -ne '' >input
echo -ne 'print 1,2,3' | bc
PASS: bc print 1,2,3
======================
echo -ne '' >input
echo -ne 'length(0); length(100); length(0.01); length(0.00120); length(0.012-0.012);' | bc
PASS: bc length
======================
echo -ne '' >input
echo -ne '{ print 1 }' | bc
PASS: bc { print 1 }
======================
echo -ne '' >input
echo -ne '-10 < -9' | bc
PASS: bc comparison 1
======================
echo -ne '' >input
echo -ne 'if(1) {
	11
	while(1) {
		21
		while(1) {
			31
			break
			32
		}
		22
		break
		23
	}
	12
} else {
	88
}
99
' | bc
PASS: bc nested loops and breaks
======================
echo -ne '' >input
echo -ne 'i=2
while(i--) {
	11
	if(i) {
		21
		continue
		22
	} else {
		31
		continue
	32
	}
	12
}
99
' | bc
PASS: bc continue in if
======================
echo -ne '' >input
echo -ne 'for(i=1; i<3; i++) {
    i
    if(i==2) continue
    77
}
99
' | bc
PASS: bc continue in for
======================
echo -ne '' >input
echo -ne 'a=ZZ;a;ibase=36;a=ZZ;a;ibase=Z;a=ZZ;a' | bc
PASS: bc ibase
======================
echo -ne '' >input
echo -ne '
for (b = 2; b <= 16; ++b) {
	if (b == 10) continue
	obase = 10
	print "ibase = A; ibase = ", b, "\n"
	obase = b
	for (i = 0; i <= 65536; ++i) {
		i
		print "0.", i, "\n"
		print "1.", i, "\n"
		print i, ".", i, "\n"
	}
}' | bc 2>&1 | bc 2>&1 | md5sum 2>&1
PASS: bc parsing of numbers
======================
echo -ne '' >input
echo -ne '
for (b = 2; b <= 101; ++b) {
	if (b == 10) continue
	s = b * b
	print "obase = ", b, "\n"
	for (i = 0; i <= s; ++i) {
		i
		print "0.", i, "\n"
		print "1.", i, "\n"
		print i, ".", i, "\n"
	}
	2189432174861923048671023498128347619023487610234689172304.192748960128745108927461089237469018723460
}' | bc 2>&1 | bc 2>&1 | md5sum 2>&1
PASS: bc printing of numbers
======================
echo -ne '' >input
echo -ne '' | { { bc -lq bc_add.bc 2>&1; echo E:$? >&2; } | diff -u - bc_add_results.txt; echo E:$?; } 2>&1
PASS: bc -lq bc_add.bc
======================
echo -ne '' >input
echo -ne '' | { { bc -lq bc_arctangent.bc 2>&1; echo E:$? >&2; } | diff -u - bc_arctangent_results.txt; echo E:$?; } 2>&1
PASS: bc -lq bc_arctangent.bc
======================
echo -ne '' >input
echo -ne '' | { { bc -lq bc_array.bc 2>&1; echo E:$? >&2; } | diff -u - bc_array_results.txt; echo E:$?; } 2>&1
PASS: bc -lq bc_array.bc
======================
echo -ne '' >input
echo -ne '' | { { bc -lq bc_arrays.bc 2>&1; echo E:$? >&2; } | diff -u - bc_arrays_results.txt; echo E:$?; } 2>&1
PASS: bc -lq bc_arrays.bc
======================
echo -ne '' >input
echo -ne '' | { { bc -lq bc_bessel.bc 2>&1; echo E:$? >&2; } | diff -u - bc_bessel_results.txt; echo E:$?; } 2>&1
PASS: bc -lq bc_bessel.bc
======================
echo -ne '' >input
echo -ne '' | { { bc -lq bc_boolean.bc 2>&1; echo E:$? >&2; } | diff -u - bc_boolean_results.txt; echo E:$?; } 2>&1
PASS: bc -lq bc_boolean.bc
======================
echo -ne '' >input
echo -ne '' | { { bc -lq bc_cosine.bc 2>&1; echo E:$? >&2; } | diff -u - bc_cosine_results.txt; echo E:$?; } 2>&1
PASS: bc -lq bc_cosine.bc
======================
echo -ne '' >input
echo -ne '' | { { bc -lq bc_decimal.bc 2>&1; echo E:$? >&2; } | diff -u - bc_decimal_results.txt; echo E:$?; } 2>&1
PASS: bc -lq bc_decimal.bc
======================
echo -ne '' >input
echo -ne '' | { { bc -lq bc_divide.bc 2>&1; echo E:$? >&2; } | diff -u - bc_divide_results.txt; echo E:$?; } 2>&1
PASS: bc -lq bc_divide.bc
======================
echo -ne '' >input
echo -ne '' | { { bc -lq bc_exponent.bc 2>&1; echo E:$? >&2; } | diff -u - bc_exponent_results.txt; echo E:$?; } 2>&1
PASS: bc -lq bc_exponent.bc
======================
echo -ne '' >input
echo -ne '' | { { bc -lq bc_log.bc 2>&1; echo E:$? >&2; } | diff -u - bc_log_results.txt; echo E:$?; } 2>&1
PASS: bc -lq bc_log.bc
======================
echo -ne '' >input
echo -ne '' | { { bc -lq bc_misc.bc 2>&1; echo E:$? >&2; } | diff -u - bc_misc_results.txt; echo E:$?; } 2>&1
PASS: bc -lq bc_misc.bc
======================
echo -ne '' >input
echo -ne '' | { { bc -lq bc_misc1.bc 2>&1; echo E:$? >&2; } | diff -u - bc_misc1_results.txt; echo E:$?; } 2>&1
PASS: bc -lq bc_misc1.bc
======================
echo -ne '' >input
echo -ne '' | { { bc -lq bc_misc2.bc 2>&1; echo E:$? >&2; } | diff -u - bc_misc2_results.txt; echo E:$?; } 2>&1
PASS: bc -lq bc_misc2.bc
======================
echo -ne '' >input
echo -ne '' | { { bc -lq bc_modulus.bc 2>&1; echo E:$? >&2; } | diff -u - bc_modulus_results.txt; echo E:$?; } 2>&1
PASS: bc -lq bc_modulus.bc
======================
echo -ne '' >input
echo -ne '' | { { bc -lq bc_multiply.bc 2>&1; echo E:$? >&2; } | diff -u - bc_multiply_results.txt; echo E:$?; } 2>&1
PASS: bc -lq bc_multiply.bc
======================
echo -ne '' >input
echo -ne '' | { { bc -lq bc_numbers1.bc 2>&1; echo E:$? >&2; } | diff -u - bc_numbers1_results.txt; echo E:$?; } 2>&1
PASS: bc -lq bc_numbers1.bc
======================
echo -ne '' >input
echo -ne '' | { { bc -lq bc_numbers2.bc 2>&1; echo E:$? >&2; } | diff -u - bc_numbers2_results.txt; echo E:$?; } 2>&1
PASS: bc -lq bc_numbers2.bc
======================
echo -ne '' >input
echo -ne '' | { { bc -lq bc_pi.bc 2>&1; echo E:$? >&2; } | diff -u - bc_pi_results.txt; echo E:$?; } 2>&1
PASS: bc -lq bc_pi.bc
======================
echo -ne '' >input
echo -ne '' | { { bc -lq bc_power.bc 2>&1; echo E:$? >&2; } | diff -u - bc_power_results.txt; echo E:$?; } 2>&1
PASS: bc -lq bc_power.bc
======================
echo -ne '' >input
echo -ne '' | { { bc -lq bc_references.bc 2>&1; echo E:$? >&2; } | diff -u - bc_references_results.txt; echo E:$?; } 2>&1
PASS: bc -lq bc_references.bc
======================
echo -ne '' >input
echo -ne '' | { { bc -lq bc_sine.bc 2>&1; echo E:$? >&2; } | diff -u - bc_sine_results.txt; echo E:$?; } 2>&1
PASS: bc -lq bc_sine.bc
======================
echo -ne '' >input
echo -ne '' | { { bc -lq bc_sqrt.bc 2>&1; echo E:$? >&2; } | diff -u - bc_sqrt_results.txt; echo E:$?; } 2>&1
PASS: bc -lq bc_sqrt.bc
======================
echo -ne '' >input
echo -ne '' | { { bc -lq bc_strings.bc 2>&1; echo E:$? >&2; } | diff -u - bc_strings_results.txt; echo E:$?; } 2>&1
PASS: bc -lq bc_strings.bc
======================
echo -ne '' >input
echo -ne '' | { { bc -lq bc_subtract.bc 2>&1; echo E:$? >&2; } | diff -u - bc_subtract_results.txt; echo E:$?; } 2>&1
PASS: bc -lq bc_subtract.bc
======================
echo -ne '' >input
echo -ne '' | { { bc -lq bc_vars.bc 2>&1; echo E:$? >&2; } | diff -u - bc_vars_results.txt; echo E:$?; } 2>&1
PASS: bc -lq bc_vars.bc
PASS: bunzip2-reads-from-standard-input
PASS: bunzip2-removes-compressed-file
PASS: bunzip2: doesnt exist
PASS: bunzip2: unknown suffix
PASS: bunzip2: already exists
PASS: bunzip2: stream unpack
PASS: bunzip2: delete src
PASS: bunzip2: test_bz2 file
PASS: bunzip2: pbzip_4m_zeros file
PASS: bunzip2: bz2_issue_11.bz2 corrupted example
PASS: bunzip2: bz2_issue_12.bz2 corrupted example
PASS: bzcat-does-not-remove-compressed-file
PASS: zcat: dont delete gz src
PASS: zcat: dont delete bz2 src
PASS: zcat: dont delete Z src
======================
echo -ne '\x42\x5a\x68\x39\x31\x41\x59\x26\x53\x59\x63\x3e\xd6\xe2\x00\x00\x00\xc1\x00\x00\x10\x20\x00\x20\x00\x21\x00\x82\xb1\x77\x24\x53\x85\x09\x06\x33\xed\x6e\x20' >input
echo -ne '' | bzcat input input; echo $?
PASS: bzcat can print many files
======================
echo -ne '\x42\x5a\x68\x39\x17\x72\x45\x38\x50\x90\x00\x00\x00\x00' >input
echo -ne '' | bzcat input input; echo $?
PASS: bzcat can handle compressed zero-length bzip2 files
======================
echo -ne '\x1f\x9d\x90\x61\x14\x00' >input
echo -ne '' | zcat input input; echo $?
PASS: zcat can print many files
======================
echo -ne '\x1f\x9d\x90\x00' >input
echo -ne '' | zcat input input; echo $?
PASS: zcat can handle compressed zero-length (.Z) files
======================
echo -ne '' >input
echo -ne '' | cal 1 2000
PASS: cal 2000
PASS: cat-prints-a-file
PASS: cat-prints-a-file-and-standard-input
======================
echo -ne '' >input
echo -ne 'foo\n' | cat -e
PASS: cat -e
======================
echo -ne '' >input
echo -ne 'foo\n' | cat -v
PASS: cat -v
======================
echo -ne '' >input
echo -ne 'line 1\n\nline 3\n' | cat -n
PASS: cat -n
======================
echo -ne '' >input
echo -ne 'line 1\n\nline 3\n' | cat -b
PASS: cat -b
PASS: cmp-detects-difference
======================
echo -ne '456\nabc\n' >input
echo -ne '123\ndef\n' | comm input -
PASS: comm test 1
======================
echo -ne '456\nabc\n' >input
echo -ne '123\ndef\n' | comm - input
PASS: comm test 2
======================
echo -ne 'abc\nxyz\n' >input
echo -ne 'def\n' | comm input -
PASS: comm test 3
======================
echo -ne 'abc\nxyz\n' >input
echo -ne 'def\n' | comm - input
PASS: comm test 4
======================
echo -ne '123\nabc\n' >input
echo -ne 'def\n' | comm input -
PASS: comm test 5
======================
echo -ne '123\nabc\n' >input
echo -ne 'def\n' | comm - input
PASS: comm test 6
======================
echo -ne 'abc' >input
echo -ne 'def' | comm input -
PASS: comm unterminated line 1
======================
echo -ne 'abc' >input
echo -ne 'def' | comm - input
PASS: comm unterminated line 2
PASS: cp-RHL-does_not_preserve-links
PASS: cp-a-files-to-dir
PASS: cp-a-preserves-links
PASS: cp-copies-empty-file
PASS: cp-copies-large-file
PASS: cp-copies-small-file
PASS: cp-d-files-to-dir
PASS: cp-dev-file
PASS: cp-dir-create-dir
PASS: cp-dir-existing-dir
PASS: cp-does-not-copy-unreadable-file
PASS: cp-files-to-dir
PASS: cp-follows-links
PASS: cp-parents
PASS: cp-preserves-hard-links
PASS: cp-preserves-links
PASS: cp-preserves-source-file
======================
echo -ne '' >input
echo -ne '' | \
cd cp.testdir || exit 1; cp * ../cp.testdir2 2>&1; echo $?; cd ../cp.testdir2 || exit 1
test ! -L file         && test   -f file             || echo BAD: file
test ! -L file_symlink && test   -f file_symlink     || echo BAD: file_symlink
test ! -L dir          && test ! -e dir              || echo BAD: dir
test ! -L dir_symlink  && test ! -e dir_symlink      || echo BAD: dir_symlink

PASS: cp
======================
echo -ne '' >input
echo -ne '' | \
cd cp.testdir || exit 1; cp -d * ../cp.testdir2 2>&1; echo $?; cd ../cp.testdir2 || exit 1
test ! -L file         && test   -f file             || echo BAD: file
test   -L file_symlink && test   -f file_symlink     || echo BAD: file_symlink
test ! -L dir          && test ! -e dir              || echo BAD: dir
test   -L dir_symlink  && test ! -e dir_symlink      || echo BAD: dir_symlink

PASS: cp -d
======================
echo -ne '' >input
echo -ne '' | \
cd cp.testdir || exit 1; cp -P * ../cp.testdir2 2>&1; echo $?; cd ../cp.testdir2 || exit 1
test ! -L file         && test   -f file             || echo BAD: file
test   -L file_symlink && test   -f file_symlink     || echo BAD: file_symlink
test ! -L dir          && test ! -e dir              || echo BAD: dir
test   -L dir_symlink  && test ! -e dir_symlink      || echo BAD: dir_symlink

PASS: cp -P
======================
echo -ne '' >input
echo -ne '' | \
cd cp.testdir || exit 1; cp -L * ../cp.testdir2 2>&1; echo $?; cd ../cp.testdir2 || exit 1
test ! -L file         && test   -f file             || echo BAD: file
test ! -L file_symlink && test   -f file_symlink     || echo BAD: file_symlink
test ! -L dir          && test ! -e dir              || echo BAD: dir
test ! -L dir_symlink  && test ! -e dir_symlink      || echo BAD: dir_symlink

PASS: cp -L
======================
echo -ne '' >input
echo -ne '' | \
cd cp.testdir || exit 1; cp -H * ../cp.testdir2 2>&1; echo $?; cd ../cp.testdir2 || exit 1
test ! -L file         && test   -f file             || echo BAD: file
test ! -L file_symlink && test   -f file_symlink     || echo BAD: file_symlink
test ! -L dir          && test ! -e dir              || echo BAD: dir
test ! -L dir_symlink  && test ! -e dir_symlink      || echo BAD: dir_symlink

PASS: cp -H
======================
echo -ne '' >input
echo -ne '' | \
cd cp.testdir || exit 1; cp -R * ../cp.testdir2 2>&1; echo $?; cd ../cp.testdir2 || exit 1
test ! -L file             && test   -f file             || echo BAD: file
test   -L file_symlink     && test   -f file_symlink     || echo BAD: file_symlink
test ! -L dir              && test   -d dir              || echo BAD: dir
test   -L dir_symlink      && test   -d dir_symlink      || echo BAD: dir_symlink
test ! -L dir/file         && test   -f dir/file         || echo BAD: dir/file
test   -L dir/file_symlink && test   -f dir/file_symlink || echo BAD: dir/file_symlink

PASS: cp -R
======================
echo -ne '' >input
echo -ne '' | \
cd cp.testdir || exit 1; cp -Rd * ../cp.testdir2 2>&1; echo $?; cd ../cp.testdir2 || exit 1
test ! -L file             && test   -f file             || echo BAD: file
test   -L file_symlink     && test   -f file_symlink     || echo BAD: file_symlink
test ! -L dir              && test   -d dir              || echo BAD: dir
test   -L dir_symlink      && test   -d dir_symlink      || echo BAD: dir_symlink
test ! -L dir/file         && test   -f dir/file         || echo BAD: dir/file
test   -L dir/file_symlink && test   -f dir/file_symlink || echo BAD: dir/file_symlink

PASS: cp -Rd
======================
echo -ne '' >input
echo -ne '' | \
cd cp.testdir || exit 1; cp -RP * ../cp.testdir2 2>&1; echo $?; cd ../cp.testdir2 || exit 1
test ! -L file             && test   -f file             || echo BAD: file
test   -L file_symlink     && test   -f file_symlink     || echo BAD: file_symlink
test ! -L dir              && test   -d dir              || echo BAD: dir
test   -L dir_symlink      && test   -d dir_symlink      || echo BAD: dir_symlink
test ! -L dir/file         && test   -f dir/file         || echo BAD: dir/file
test   -L dir/file_symlink && test   -f dir/file_symlink || echo BAD: dir/file_symlink

PASS: cp -RP
======================
echo -ne '' >input
echo -ne '' | \
cd cp.testdir || exit 1; cp -RL * ../cp.testdir2 2>&1; echo $?; cd ../cp.testdir2 || exit 1
test ! -L file             && test   -f file             || echo BAD: file
test ! -L file_symlink     && test   -f file_symlink     || echo BAD: file_symlink
test ! -L dir              && test   -d dir              || echo BAD: dir
test ! -L dir_symlink      && test   -d dir_symlink      || echo BAD: dir_symlink
test ! -L dir/file         && test   -f dir/file         || echo BAD: dir/file
test ! -L dir/file_symlink && test   -f dir/file_symlink || echo BAD: dir/file_symlink

PASS: cp -RL
======================
echo -ne '' >input
echo -ne '' | \
cd cp.testdir || exit 1; cp -RHL * ../cp.testdir2 2>&1; echo $?; cd ../cp.testdir2 || exit 1
test ! -L file             && test   -f file             || echo BAD: file
test ! -L file_symlink     && test   -f file_symlink     || echo BAD: file_symlink
test ! -L dir              && test   -d dir              || echo BAD: dir
test ! -L dir_symlink      && test   -d dir_symlink      || echo BAD: dir_symlink
test ! -L dir/file         && test   -f dir/file         || echo BAD: dir/file
test ! -L dir/file_symlink && test   -f dir/file_symlink || echo BAD: dir/file_symlink

PASS: cp -RHL
======================
echo -ne '' >input
echo -ne '' | echo -ne '\x42\x5a\x68\x39\x31\x41\x59\x26\x53\x59\x64\x1e\x91\x8c\x00\x00\x48\x7f\x80\x4c\x48\x08\x00\x28\x01\xff\xe0\x3f\x24\x14\x00\x0e\x20\xdc\x60\x20\x00\x92\x11\xea\xa0\x1a\x00\x00\x00\x03\x20\x8a\x93\xd4\x9a\x68\x1a\x0d\x1e\x91\xa1\xa0\x06\x98\xe3\x5c\x2f\xd9\x26\xa1\x25\x24\x20\xed\x47\xc7\x21\x40\x2b\x6e\xf2\xe6\xfe\x98\x13\x68\xa8\xbd\x82\xb2\x4f\x26\x02\x24\x16\x5b\x22\x16\x72\x74\x15\xcd\xc1\xa6\x9e\xa6\x5e\x6c\x16\x37\x35\x01\x99\xc4\x81\x21\x29\x28\x4b\x69\x51\xa9\x3c\x1a\x9b\x0a\xe1\xe4\xb4\xaf\x85\x73\xba\x23\x10\x59\xe8\xb3\xe1\xa1\x63\x05\x8c\x4f\xc5\xdc\x91\x4e\x14\x24\x19\x07\xa4\x63\x00' | bzcat | cpio -i 2>&1; echo $?;
ls -ln cpio.testdir | sed 's/  */ /g' | cut -d' ' -f 1-5,9- | grep -v '^total '
PASS: cpio extracts zero-sized hardlinks
======================
echo -ne '' >input
echo -ne '' | find cpio.testdir | cpio -H newc --create | (cd cpio.testdir2 && cpio -i 2>&1); echo $?;
ls -ln cpio.testdir2/cpio.testdir | sed 's/  */ /g' | cut -d' ' -f 1-5,9- | grep -v '^total '
PASS: cpio extracts zero-sized hardlinks 2
======================
echo -ne '' >input
echo -ne '' | echo /usr/bin | cpio -dp cpio.testdir 2>&1; echo $?;
ls cpio.testdir
PASS: cpio -p with absolute paths
======================
echo -ne '' >input
echo -ne '' | cd cpio.testdir && { echo file; echo link; } | cpio -ovHnewc >pack.cpio && rm ???? && cpio -idmvu <pack.cpio 2>/dev/null;
 stat -c '%a %n' file
PASS: cpio restores suid/sgid bits
======================
echo -ne '' >input
echo -ne '' | echo -ne '\x42\x5a\x68\x39\x31\x41\x59\x26\x53\x59\x64\x1e\x91\x8c\x00\x00\x48\x7f\x80\x4c\x48\x08\x00\x28\x01\xff\xe0\x3f\x24\x14\x00\x0e\x20\xdc\x60\x20\x00\x92\x11\xea\xa0\x1a\x00\x00\x00\x03\x20\x8a\x93\xd4\x9a\x68\x1a\x0d\x1e\x91\xa1\xa0\x06\x98\xe3\x5c\x2f\xd9\x26\xa1\x25\x24\x20\xed\x47\xc7\x21\x40\x2b\x6e\xf2\xe6\xfe\x98\x13\x68\xa8\xbd\x82\xb2\x4f\x26\x02\x24\x16\x5b\x22\x16\x72\x74\x15\xcd\xc1\xa6\x9e\xa6\x5e\x6c\x16\x37\x35\x01\x99\xc4\x81\x21\x29\x28\x4b\x69\x51\xa9\x3c\x1a\x9b\x0a\xe1\xe4\xb4\xaf\x85\x73\xba\x23\x10\x59\xe8\xb3\xe1\xa1\x63\x05\x8c\x4f\xc5\xdc\x91\x4e\x14\x24\x19\x07\xa4\x63\x00' | bzcat | cpio -id 2>&1; echo $?
PASS: cpio extracts in existing directory
======================
echo -ne '' >input
echo -ne '' | echo /home/buildozer/aports/main/busybox/src/build-dynamic/testsuite/cpio.tests | cpio -o -H newc | cpio -tv 2>&1 | head -n1 | awk ' { print $2 } '; echo $?
PASS: cpio uses by default uid/gid
======================
echo -ne '' >input
echo -ne '' | echo /home/buildozer/aports/main/busybox/src/build-dynamic/testsuite/cpio.tests | cpio -o -H newc -R 1234:5678 | cpio -tv 2>&1 | head -n1 | awk ' { print $2 } '; echo $?
PASS: cpio -R with create
======================
echo -ne '' >input
echo -ne '' | echo /home/buildozer/aports/main/busybox/src/build-dynamic/testsuite/cpio.tests | cpio -o -H newc | cpio -tv -R 8765:4321 2>&1 | head -n1 | awk ' { print $2 } '; echo $?
PASS: cpio -R with extract
======================
echo -ne '' >input
echo -ne '' | cryptpw -m des QWErty '123456789012345678901234567890'
PASS: cryptpw des 12
======================
echo -ne '' >input
echo -ne '' | cryptpw -m des QWErty 55
PASS: cryptpw des 55
======================
echo -ne '' >input
echo -ne '' | cryptpw -m des QWErty zz
PASS: cryptpw des zz
SKIPPED: cryptpw sha256
SKIPPED: cryptpw sha256 rounds=99999
SKIPPED: cryptpw sha512
SKIPPED: cryptpw sha512 rounds=99999
PASS: cut-cuts-a-character
PASS: cut-cuts-a-closed-range
PASS: cut-cuts-a-field
PASS: cut-cuts-an-open-range
PASS: cut-cuts-an-unclosed-range
======================
echo -ne 'the quick brown fox\n' >input
echo -ne 'jumps over the lazy dog\n' | cut -d' ' -f2 - input
PASS: cut '-' (stdin) and multi file handling
======================
echo -ne 'one:two:three:four:five:six:seven
alpha:beta:gamma:delta:epsilon:zeta:eta:theta:iota:kappa:lambda:mu
the quick brown fox jumps over the lazy dog
' >input
echo -ne '' | cut -b 3,3,3 input
PASS: cut -b a,a,a
======================
echo -ne 'one:two:three:four:five:six:seven
alpha:beta:gamma:delta:epsilon:zeta:eta:theta:iota:kappa:lambda:mu
the quick brown fox jumps over the lazy dog
' >input
echo -ne '' | cut -b 1-3,2-5,7-9,9-10 input
PASS: cut -b overlaps
======================
echo -ne 'one:two:three:four:five:six:seven
alpha:beta:gamma:delta:epsilon:zeta:eta:theta:iota:kappa:lambda:mu
the quick brown fox jumps over the lazy dog
' >input
echo -ne '' | cut -b 3-8,4-6 input
PASS: -b encapsulated
======================
echo -ne 'one:two:three:four:five:six:seven
alpha:beta:gamma:delta:epsilon:zeta:eta:theta:iota:kappa:lambda:mu
the quick brown fox jumps over the lazy dog
' >input
echo -ne '' | cut -b 8-3 abc.txt 2>/dev/null || echo err
PASS: cut high-low error
======================
echo -ne 'one:two:three:four:five:six:seven
alpha:beta:gamma:delta:epsilon:zeta:eta:theta:iota:kappa:lambda:mu
the quick brown fox jumps over the lazy dog
' >input
echo -ne '' | cut -c 4-10 input
PASS: cut -c a-b
======================
echo -ne 'one:two:three:four:five:six:seven
alpha:beta:gamma:delta:epsilon:zeta:eta:theta:iota:kappa:lambda:mu
the quick brown fox jumps over the lazy dog
' >input
echo -ne '' | cut -c 41- input
PASS: cut -c a-
======================
echo -ne 'one:two:three:four:five:six:seven
alpha:beta:gamma:delta:epsilon:zeta:eta:theta:iota:kappa:lambda:mu
the quick brown fox jumps over the lazy dog
' >input
echo -ne '' | cut -c -39 input
PASS: cut -c -b
======================
echo -ne 'one:two:three:four:five:six:seven
alpha:beta:gamma:delta:epsilon:zeta:eta:theta:iota:kappa:lambda:mu
the quick brown fox jumps over the lazy dog
' >input
echo -ne '' | cut -c 40 input
PASS: cut -c a
======================
echo -ne 'one:two:three:four:five:six:seven
alpha:beta:gamma:delta:epsilon:zeta:eta:theta:iota:kappa:lambda:mu
the quick brown fox jumps over the lazy dog
' >input
echo -ne '' | cut -c 3,5-7,10 input
PASS: cut -c a,b-c,d
======================
echo -ne 'one:two:three:four:five:six:seven
alpha:beta:gamma:delta:epsilon:zeta:eta:theta:iota:kappa:lambda:mu
the quick brown fox jumps over the lazy dog
' >input
echo -ne '' | cut -d ':' -f 5- input
PASS: cut -f a-
======================
echo -ne 'one:two:three:four:five:six:seven
alpha:beta:gamma:delta:epsilon:zeta:eta:theta:iota:kappa:lambda:mu
the quick brown fox jumps over the lazy dog
' >input
echo -ne '' | cut -d ' ' -f 3 input
PASS: cut show whole line with no delim
======================
echo -ne '' >input
echo -ne '' | echo 'ref_categorie=test' | cut -c 1-15 
PASS: cut with echo, -c (a-b)
======================
echo -ne '' >input
echo -ne '' | echo 'ref_categorie=test' | cut -c 14
PASS: cut with echo, -c (a)
======================
echo -ne 'abcdefghijklmnopqrstuvwxyz' >input
echo -ne '' | cut -c 4,5,20 input
PASS: cut with -c (a,b,c)
======================
echo -ne 'abcdefghijklmnopqrstuvwxyz' >input
echo -ne '' | cut -b 4,5,20 input
PASS: cut with -b (a,b,c)
======================
echo -ne '406378:Sales:Itorre:Jan
031762:Marketing:Nasium:Jim
636496:Research:Ancholie:Mel
396082:Sales:Jucacion:Ed
' >input
echo -ne '' | cut -d: -f3 -s input
PASS: cut with -d -f(:) -s
======================
echo -ne '406378:Sales:Itorre:Jan
031762:Marketing:Nasium:Jim
636496:Research:Ancholie:Mel
396082:Sales:Jucacion:Ed
' >input
echo -ne '' | cut -d' ' -f3 -s input && echo yes
PASS: cut with -d -f( ) -s
======================
echo -ne '406378:Sales:Itorre:Jan
031762:Marketing:Nasium:Jim
636496:Research:Ancholie:Mel
396082:Sales:Jucacion:Ed
' >input
echo -ne '' | cut -da -f3 -s input
PASS: cut with -d -f(a) -s
======================
echo -ne '406378:Sales:Itorre:Jan
031762:Marketing:Nasium:Jim
636496:Research:Ancholie:Mel
396082:Sales:Jucacion:Ed
' >input
echo -ne '' | cut -da -f3 -s -n input
PASS: cut with -d -f(a) -s -n
======================
echo -ne '' >input
echo -ne 'Bother, said Pooh. It's your husband, and he has a gun.
Cheerios are donut seeds.
Talk is cheap because supply exceeds demand.
Weather forecast for tonight : dark.
Apple: you can buy better, but you can't pay more.
Subcalifragilisticexpialidocious.
Auntie Em: Hate you, hate Kansas. Took the dog. Dorothy.' | cut -DF 2,7,5
PASS: cut -DF
======================
echo -ne '' >input
echo -ne 'a::b\n' | cut -d ':' -f 1-3
PASS: cut empty field
======================
echo -ne '' >input
echo -ne 'a::b::c:d\n' | cut -d ':' -f 3-5
PASS: cut empty field 2
PASS: date-@-works
PASS: date-R-works
PASS: date-format-works
FAIL: date-timezone
+ TZ=UTC busybox date -d '1999-1-2 3:4:5Z'
date: invalid date '1999-1-2 3:4:5Z'
+ dt=
PASS: date-u-works
PASS: date-works
PASS: date-works-1
======================
echo -ne '' >input
echo -ne '10 20+p' | dc
PASS: dc basic syntax (stdin, multiple args)
======================
echo -ne '' >input
echo -ne '' | dc -e'10 20+p'
PASS: dc basic syntax (argv, single arg)
======================
echo -ne '' >input
echo -ne '' | dc -e10 -e20+p
PASS: dc basic syntax (argv, multiple args)
======================
echo -ne '' >input
echo -ne '' | dc -e'8 8 * 2 2 + / p'
PASS: dc complex with spaces (single arg)
======================
echo -ne '' >input
echo -ne '' | dc -e'8 8*2 2+/p'
PASS: dc complex without spaces (single arg)
======================
echo -ne '' >input
echo -ne '' | dc -e8 -e8 -e\* -e2 -e2 -e+ -e/ -ep
PASS: dc complex with spaces (multiple args)
======================
echo -ne '' >input
echo -ne '' | dc -e8 -e8\*2 -e2+/p
PASS: dc complex without spaces (multiple args)
======================
echo -ne '' >input
echo -ne '' | dc -e'[40 2 +] x f'
PASS: dc: x should execute strings
======================
echo -ne '' >input
echo -ne '' | dc -e'42 x f'
PASS: dc: x should not execute or pop non-strings
======================
echo -ne '' >input
echo -ne '' | dc -e'42 112 a x'
PASS: dc: x should work with strings created from a
======================
echo -ne '' >input
echo -ne '' | dc -e '[\q] p'
PASS: dc: p should print invalid escapes
======================
echo -ne '' >input
echo -ne '' | dc -e '[q\] p'
PASS: dc: p should print trailing backslashes
======================
echo -ne '' >input
echo -ne '' | dc -e '[\] p'
PASS: dc: p should parse/print single backslashes
======================
echo -ne '' >input
echo -ne '' | dc -e '92 a p'
PASS: dc: p should print single backslash strings
======================
echo -ne '1?2\nf' >input
echo -ne '9\n' | dc -finput
PASS: dc read
======================
echo -ne '1?2\nf' >input
echo -ne '[str]\n' | dc -finput
PASS: dc read string
======================
echo -ne '' >input
echo -ne '[1p]sa [2p]sb 1 2>a\n9p' | dc
PASS: dc '>a' (conditional execute string) 1
======================
echo -ne '' >input
echo -ne '[1p]sa [2p]sb 2 1>a\n9p' | dc
PASS: dc '>a' (conditional execute string) 2
======================
echo -ne '' >input
echo -ne '[1p]sa [2p]sb 2 1>aeb\n9p' | dc
PASS: dc '>aeb' (conditional execute string with else)
======================
echo -ne '' >input
echo -ne '[2p]s \n[3p]\nl x\n9p' | dc
PASS: dc space can be a register
======================
echo -ne '' >input
echo -ne '[2p]s\n[3p]l\nx\n9p' | dc
PASS: dc newline can be a register
======================
echo -ne '' >input
echo -ne '0Zp\n0.000Zp\n100Zp\n0.01Zp\n0.00120Zp\n0.0012 0.0012 - Zp\n' | dc
PASS: dc Z (length) for numbers
======================
echo -ne '' >input
echo -ne '' | { { dc dc_add.dc 2>&1; echo E:$? >&2; } | diff -u - dc_add_results.txt; echo E:$?; } 2>&1
PASS: dc dc_add.dc
======================
echo -ne '' >input
echo -ne '' | { { dc dc_boolean.dc 2>&1; echo E:$? >&2; } | diff -u - dc_boolean_results.txt; echo E:$?; } 2>&1
PASS: dc dc_boolean.dc
======================
echo -ne '' >input
echo -ne '' | { { dc dc_decimal.dc 2>&1; echo E:$? >&2; } | diff -u - dc_decimal_results.txt; echo E:$?; } 2>&1
PASS: dc dc_decimal.dc
======================
echo -ne '' >input
echo -ne '' | { { dc dc_divide.dc 2>&1; echo E:$? >&2; } | diff -u - dc_divide_results.txt; echo E:$?; } 2>&1
PASS: dc dc_divide.dc
======================
echo -ne '' >input
echo -ne '' | { { dc dc_divmod.dc 2>&1; echo E:$? >&2; } | diff -u - dc_divmod_results.txt; echo E:$?; } 2>&1
PASS: dc dc_divmod.dc
======================
echo -ne '' >input
echo -ne '' | { { dc dc_misc.dc 2>&1; echo E:$? >&2; } | diff -u - dc_misc_results.txt; echo E:$?; } 2>&1
PASS: dc dc_misc.dc
======================
echo -ne '' >input
echo -ne '' | { { dc dc_modexp.dc 2>&1; echo E:$? >&2; } | diff -u - dc_modexp_results.txt; echo E:$?; } 2>&1
PASS: dc dc_modexp.dc
======================
echo -ne '' >input
echo -ne '' | { { dc dc_modulus.dc 2>&1; echo E:$? >&2; } | diff -u - dc_modulus_results.txt; echo E:$?; } 2>&1
PASS: dc dc_modulus.dc
======================
echo -ne '' >input
echo -ne '' | { { dc dc_multiply.dc 2>&1; echo E:$? >&2; } | diff -u - dc_multiply_results.txt; echo E:$?; } 2>&1
PASS: dc dc_multiply.dc
======================
echo -ne '' >input
echo -ne '' | { { dc dc_power.dc 2>&1; echo E:$? >&2; } | diff -u - dc_power_results.txt; echo E:$?; } 2>&1
PASS: dc dc_power.dc
======================
echo -ne '' >input
echo -ne '' | { { dc dc_sqrt.dc 2>&1; echo E:$? >&2; } | diff -u - dc_sqrt_results.txt; echo E:$?; } 2>&1
PASS: dc dc_sqrt.dc
======================
echo -ne '' >input
echo -ne '' | { { dc dc_strings.dc 2>&1; echo E:$? >&2; } | diff -u - dc_strings_results.txt; echo E:$?; } 2>&1
PASS: dc dc_strings.dc
======================
echo -ne '' >input
echo -ne '' | { { dc dc_subtract.dc 2>&1; echo E:$? >&2; } | diff -u - dc_subtract_results.txt; echo E:$?; } 2>&1
PASS: dc dc_subtract.dc
======================
echo -ne '' >input
echo -ne '' | { { dc -x dcx_vars.dc 2>&1; echo E:$? >&2; } | diff -u - dcx_vars_results.txt; echo E:$?; } 2>&1
PASS: dc -x dcx_vars.dc
PASS: dd-accepts-if
PASS: dd-accepts-of
PASS: dd-copies-from-standard-input-to-standard-output
PASS: dd-count-bytes
PASS: dd-prints-count-to-standard-error
PASS: dd-reports-write-errors
======================
echo -ne 'qwe\nasd\nzxc\n' >input
echo -ne 'asd\n' | diff -u - input | sed 's/	.*//'
PASS: diff of stdin
======================
echo -ne 'qwe\nasd\nzxc' >input
echo -ne 'asd\n' | diff -u - input | sed 's/	.*//'
PASS: diff of stdin, no newline in the file
======================
echo -ne '' >input
echo -ne 'stdin' | diff - -; echo $?; wc -c
PASS: diff of stdin, twice
======================
echo -ne '' >input
echo -ne 'a\n' | diff -u - input | sed 's/	.*//'
PASS: diff of empty file against stdin
======================
echo -ne 'a\n' >input
echo -ne '' | diff -u - input | sed 's/	.*//'
PASS: diff of empty file against nonempty one
======================
echo -ne 'abc' >input
echo -ne 'abc ' | diff -ub - input; echo $?
PASS: diff -b treats EOF as whitespace
======================
echo -ne 'a \t c\n' >input
echo -ne 'a\t \tc\n' | diff -ub - input; echo $?
PASS: diff -b treats all spaces as equal
======================
echo -ne 'a\n' >input
echo -ne '\na\n\n' | diff -uB - input; echo $?
PASS: diff -B ignores changes whose lines are all blank
======================
echo -ne 'a\n' >input
echo -ne '\nb\n\n' | diff -uB - input | sed 's/	.*//'
PASS: diff -B does not ignore changes whose lines are not all blank
======================
echo -ne '\n1\n' >input
echo -ne '1\n' | diff -qB - input; echo $?
PASS: diff -B ignores blank single line change
======================
echo -ne '0\n' >input
echo -ne '1\n' | diff -qB - input; echo $?
PASS: diff -B does not ignore non-blank single line change
======================
echo -ne 'abc\na  c\ndef\n' >input
echo -ne 'a c\n' | diff -ub - input | sed 's/	.*//'
PASS: diff always takes context from old file
======================
echo -ne '' >input
echo -ne '' | diff -ur diff1 diff2/subdir | sed 's/	.*//'
PASS: diff diff1 diff2/subdir
======================
echo -ne '' >input
echo -ne '' | diff -ur diff1 diff2/subdir/- | sed 's/	.*//'
PASS: diff dir dir2/file/-
======================
echo -ne '' >input
echo -ne '' | diff -ur diff1 diff2/subdir | sed 's/	.*//'
PASS: diff of dir and fifo
======================
echo -ne '' >input
echo -ne '' | diff -ur diff1 diff2/subdir | sed 's/	.*//'
PASS: diff of file and fifo
======================
echo -ne '' >input
echo -ne '' | diff -urN diff1 diff2/subdir | sed 's/	.*//'
PASS: diff -rN does not read non-regular files
======================
echo -ne '' >input
echo -ne '' | diff -ur diff1 diff2/ | sed 's/	.*//'; diff -ur .///diff1 diff2//// | sed 's/	.*//'
PASS: diff diff1 diff2/
PASS: dirname-handles-absolute-path
PASS: dirname-handles-empty-path
PASS: dirname-handles-multiple-slashes
PASS: dirname-handles-relative-path
PASS: dirname-handles-root
PASS: dirname-handles-single-component
PASS: dirname-works
PASS: du-h-works
PASS: du-k-works
PASS: du-l-works
PASS: du-m-works
PASS: du-s-works
PASS: du-works
PASS: echo-does-not-print-newline
PASS: echo-prints-argument
PASS: echo-prints-arguments
PASS: echo-prints-dash
PASS: echo-prints-newline
PASS: echo-prints-non-opts
PASS: echo-prints-slash-zero
PASS: echo-prints-slash_00041
PASS: echo-prints-slash_0041
PASS: echo-prints-slash_041
PASS: echo-prints-slash_41
======================
echo -ne '' >input
echo -ne '\t12345678\t12345678\n' | expand
PASS: expand
PASS: expr-big
PASS: expr-works
======================
echo -ne '' >input
echo -ne '' | factor '  0'
PASS: factor '  0'
======================
echo -ne '' >input
echo -ne '' | factor +1
PASS: factor +1
======================
echo -ne '' >input
echo -ne '' | factor ' +2'
PASS: factor ' +2'
======================
echo -ne '' >input
echo -ne '' | factor 1024
PASS: factor 1024
======================
echo -ne '' >input
echo -ne '' | factor 2305843009213693951
PASS: factor 2^61-1
======================
echo -ne '' >input
echo -ne '' | factor 4611686018427387903
PASS: factor 2^62-1
======================
echo -ne '' >input
echo -ne '' | factor 18446744073709551615
PASS: factor 2^64-1
======================
echo -ne '' >input
echo -ne '' | factor $((2*3*5*7*11*13*17*19*23*29*31*37*41*43*47))
PASS: factor $((2*3*5*7*11*13*17*19*23*29*31*37*41*43*47))
======================
echo -ne '' >input
echo -ne '' | factor 18446743988964486098
PASS: factor 2 * 3037000493 * 3037000493
======================
echo -ne '' >input
echo -ne '' | factor 18446743902517389507
PASS: factor 3 * 2479700513 * 2479700513
======================
echo -ne '' >input
echo -ne '' | factor 6144867742934288163
PASS: factor 3 * 37831 * 37831 * 37831 * 37831
======================
echo -ne '' >input
echo -ne '' | factor 1996249827549539523
PASS: factor 3 * 13^16
======================
echo -ne '' >input
echo -ne '' | factor 665416609183179841
PASS: factor 13^16
PASS: false-is-silent
PASS: false-returns-failure
PASS: find-supports-minus-xdev
======================
echo -ne '' >input
echo -ne '' | cd find.tempdir && find -type f 2>&1
PASS: find -type f
======================
echo -ne '' >input
echo -ne '' | cd find.tempdir && find testfile -exec true {} \; 2>&1; echo $?
PASS: find -exec exitcode 1
======================
echo -ne '' >input
echo -ne '' | cd find.tempdir && find testfile -exec true {} + 2>&1; echo $?
PASS: find -exec exitcode 2
======================
echo -ne '' >input
echo -ne 'y' | cd find.tempdir && find testfile -ok true {} ';' 2>&1; echo $?
PASS: find -ok
======================
echo -ne '' >input
echo -ne '' | cd find.tempdir && find testfile -exec false {} \; 2>&1; echo $?
PASS: find -exec exitcode 3
======================
echo -ne '' >input
echo -ne '' | cd find.tempdir && find testfile -exec false {} + 2>&1; echo $?
PASS: find -exec exitcode 4
======================
echo -ne '' >input
echo -ne '' | find / -maxdepth 0 -name /
PASS: find / -maxdepth 0 -name /
======================
echo -ne '' >input
echo -ne '' | find // -maxdepth 0 -name /
PASS: find // -maxdepth 0 -name /
======================
echo -ne '' >input
echo -ne '' | find / -maxdepth 0 -name //
PASS: find / -maxdepth 0 -name //
======================
echo -ne '' >input
echo -ne '' | find // -maxdepth 0 -name //
PASS: find // -maxdepth 0 -name //
======================
echo -ne '' >input
echo -ne '' | find ./// -name .
PASS: find ./// -name .
======================
echo -ne '' >input
echo -ne '' | find ./// -name .///
PASS: find ./// -name .///
======================
echo -ne '' >input
echo -ne '123456\tasdf' | fold -w 7 -s
PASS: fold -s
======================
echo -ne '' >input
echo -ne 'qq w eee r tttt y' | fold -w1
PASS: fold -w1
======================
echo -ne '' >input
echo -ne 'The NUL is here:>\0< and another one is here:>\0< - they must be preserved
' | fold -sw22
PASS: fold with NULs
======================
echo -ne '' >input
echo -ne '' | grep nonexistent 2> /dev/null ; echo $?
PASS: grep (exit with error)
======================
echo -ne '' >input
echo -ne '' | grep grep '/home/buildozer/aports/main/busybox/src/build-dynamic/testsuite/grep.tests' > /dev/null 2>&1 ; echo $?
PASS: grep (exit success)
======================
echo -ne '' >input
echo -ne 'one\ntwo\nthree\nthree\nthree\n' | grep two
PASS: grep (default to stdin)
======================
echo -ne '' >input
echo -ne 'one\ntwo\nthree\nthree\nthree\n' | grep two -
PASS: grep - (specify stdin)
======================
echo -ne 'one\ntwo\nthree\nthree\nthree\n' >input
echo -ne '' | grep two input
PASS: grep input (specify file)
======================
echo -ne 'bug' >input
echo -ne '' | grep bug input
PASS: grep (no newline at EOL)
======================
echo -ne 'one\ntwo\nthree\nthree\nthree\n' >input
echo -ne '' | grep two input empty 2>/dev/null
PASS: grep two files
======================
echo -ne 'one\ntwo\nthree\n' >input
echo -ne 'one\ntwo\ntoo\nthree\nthree\n' | grep two - input
PASS: grep - infile (specify stdin and file)
======================
echo -ne '' >input
echo -ne 'one\ntwo\ntwo\nthree\nthree\nthree\n' | grep two - nonexistent 2> /dev/null ; echo $?
PASS: grep - nofile (specify stdin and nonexisting file)
======================
echo -ne '' >input
echo -ne 'one\ntwo\ntwo\nthree\nthree\nthree\n' | grep -q nomatch - nonexistent 2> /dev/null ; echo $?
PASS: grep -q - nofile (specify stdin and nonexisting file, no match)
======================
echo -ne '' >input
echo -ne 'one\ntwo\ntwo\nthree\nthree\nthree\n' | grep -q two - nonexistent ; echo $?
PASS: grep -q - nofile (specify stdin and nonexisting file, match)
======================
echo -ne '' >input
echo -ne '' | grep -s nomatch nonexistent ; echo $?
PASS: grep -s nofile (nonexisting file, no match)
======================
echo -ne '' >input
echo -ne 'nomatch\ndomatch\nend\n' | grep -s domatch nonexistent - ; echo $?
PASS: grep -s nofile - (stdin and nonexisting file, match)
SKIPPED: grep handles NUL in files
SKIPPED: grep handles NUL on stdin
SKIPPED: grep matches NUL
======================
echo -ne 'one\ntwo\n' >input
echo -ne '' | grep -e one -e two input ; echo $?
PASS: grep handles multiple regexps
======================
echo -ne 'one\ntwo\n' >input
echo -ne '' | grep -F -e one -e two input ; echo $?
PASS: grep -F handles multiple expessions
======================
echo -ne 'FOO\n' >input
echo -ne '' | grep -F -i foo input ; echo $?
PASS: grep -F handles -i
======================
echo -ne 'tw\ntwo\nthree\n' >input
echo -ne 'tw.\nthr\n' | grep -f - input ; echo $?
PASS: grep can read regexps from stdin
======================
echo -ne 'foo\n' >input
echo -ne '' | grep -x foo input ; echo $?
PASS: grep -x (full match)
======================
echo -ne 'foo bar\n' >input
echo -ne '' | grep -x foo input ; echo $?
PASS: grep -x (partial match 1)
======================
echo -ne 'bar foo\n' >input
echo -ne '' | grep -x foo input ; echo $?
PASS: grep -x (partial match 2)
======================
echo -ne 'foo\n' >input
echo -ne '' | grep -x -F foo input ; echo $?
PASS: grep -x -F (full match)
======================
echo -ne 'foo bar\n' >input
echo -ne '' | grep -x -F foo input ; echo $?
PASS: grep -x -F (partial match 1)
======================
echo -ne 'bar foo\n' >input
echo -ne '' | grep -x -F foo input ; echo $?
PASS: grep -x -F (partial match 2)
======================
echo -ne 'asd\n' >input
echo -ne '' | grep -L qwe input; echo $?
PASS: grep -L exitcode 0
======================
echo -ne 'qwe\n' >input
echo -ne 'asd\n' | grep -L qwe input -; echo $?
PASS: grep -L exitcode 0 #2
======================
echo -ne 'qwe\n' >input
echo -ne '' | grep -L qwe input; echo $?
PASS: grep -L exitcode 1
======================
echo -ne '' >input
echo -ne 'b\ar\nfoo\nbaz' | grep -E fo+
PASS: grep -E supports extended regexps
======================
echo -ne '' >input
echo -ne 'foo\nbar\n' | egrep foo
PASS: grep is also egrep
======================
echo -ne '' >input
echo -ne 'FOO\n' | egrep foo ; [ $? -ne 0 ] && echo yes
PASS: egrep is not case insensitive
======================
echo -ne '' >input
echo -ne '00:19:3E:00:AA:5E 00:1D:60:3D:3A:FB 00:22:43:49:FB:AA\n' | grep -E -o '([[:xdigit:]]{2}[:-]){5}[[:xdigit:]]{2}'
PASS: grep -E -o prints all matches
======================
echo -ne '' >input
echo -ne '/var/test\n' | grep -o "[^/]*$"
PASS: grep -o does not loop forever
======================
echo -ne '' >input
echo -ne 'test\n' | grep -o "" | head -n1
PASS: grep -o does not loop forever on zero-length match
======================
echo -ne '' >input
echo -ne 'test\n' | grep -f input
PASS: grep -f EMPTY_FILE
======================
echo -ne '' >input
echo -ne 'test\n' | grep -v -f input
PASS: grep -v -f EMPTY_FILE
======================
echo -ne '' >input
echo -ne 'test\n' | grep -vxf input
PASS: grep -vxf EMPTY_FILE
======================
echo -ne 'foop\n' >input
echo -ne '' | grep -Fw foo input
PASS: grep -Fw matches only words
======================
echo -ne 'foop foo\n' >input
echo -ne '' | grep -Fw foo input
PASS: grep -Fw doesn't stop on 1st mismatch
======================
echo -ne 'foop foo\n' >input
echo -ne '' | grep -w foo input
PASS: grep -w doesn't stop on 1st mismatch
======================
echo -ne 'strstr\n' >input
echo -ne '' | grep -w ^str input
PASS: grep -w ^str doesn't match str not at the beginning
======================
echo -ne 'anything\n' >input
echo -ne '' | grep -w ^ input
PASS: grep -w ^ doesn't hang
======================
echo -ne 'wordword\n' >input
echo -ne '' | grep -w word input
PASS: grep -w word doesn't match wordword
======================
echo -ne 'ww\n' >input
echo -ne '' | grep -F -w w input
PASS: grep -F -w w doesn't match ww
======================
echo -ne 'bword,word\nwordb,word\nbwordb,word\n' >input
echo -ne '' | grep -w word input
PASS: grep -w word match second word
======================
echo -ne '' >input
echo -ne '  aa bb cc\n' | grep -x -v -e '.*aa.*' -e 'bb.*'; echo $?
PASS: grep -x -v -e EXP1 -e EXP2 finds nothing if either EXP matches
======================
echo -ne '' >input
echo -ne 'foo\nbar\nbaz\n' | grep -Fv "$(printf "foo\nbar\n")"
PASS: grep PATTERN can be a newline-delimited list
======================
echo -ne '' >input
echo -ne 'foo\nbar\nbaz\n' | grep -Fv -e "$(printf "foo\nbar\n")"
PASS: grep -e PATTERN can be a newline-delimited list
======================
echo -ne '' >input
echo -ne '' | grep -r . grep.testdir/symfoo
PASS: grep -r on symlink to dir
======================
echo -ne '' >input
echo -ne '' | grep -r . grep.testdir
PASS: grep -r on dir/symlink to dir
PASS: gunzip-reads-from-standard-input
PASS: gunzip: doesnt exist
PASS: gunzip: unknown suffix
PASS: gunzip: already exists
PASS: gunzip: stream unpack
PASS: gunzip: delete src
PASS: gzip-accepts-multiple-files
PASS: gzip-accepts-single-minus
PASS: gzip-compression-levels
PASS: gzip-removes-original-file
======================
echo -ne '' >input
echo -ne '' | head head.input
PASS: head (without args)
======================
echo -ne '' >input
echo -ne '' | head -n 2 head.input
PASS: head -n <positive number>
======================
echo -ne '' >input
echo -ne '' | head -n -9 head.input
PASS: head -n <negative number>
======================
echo -ne '' >input
echo -ne '\0\0\0\0' | hexdump -C
PASS: hexdump -C with four NULs
======================
echo -ne '' >input
echo -ne '\0\0\0\0\0\0\0\0\0\0\0' | hexdump -e '1/1 "%02x|"1/1 "%02x!\n"'
PASS: hexdump does not think last padded block matches any full block
======================
echo -ne '' >input
echo -ne '\0\0\0\0\0\0\0\0\0\0\0\0' | hexdump -e '1/1 "%02x|"1/1 "%02x!\n"'
PASS: hexdump thinks last full block can match
======================
echo -ne '' >input
echo -ne '\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f\x70\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff' | hexdump -e '16/1 " %3_u" "\n"'
PASS: hexdump -e %3_u
======================
echo -ne '' >input
echo -ne '\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f\x70\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff' | hexdump -e '16/1 " %4d" "\n"'
PASS: hexdump -e /1 %d
======================
echo -ne '' >input
echo -ne '\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f\x70\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff' | hexdump -e '8/2 " %6d" "\n"'
PASS: hexdump -e /2 %d
======================
echo -ne '' >input
echo -ne '\x4e\x61\xbc\x00AAAA' | hexdump -n4 -e '"%u"'
PASS: hexdump -n4 -e '"%u"'
PASS: hostid-works
PASS: hostname-d-works
PASS: hostname-i-works
PASS: hostname-s-works
PASS: hostname-works
PASS: id-g-works
PASS: id-u-works
PASS: id-un-works
PASS: id-ur-works
PASS: ln-creates-hard-links
PASS: ln-creates-soft-links
PASS: ln-force-creates-hard-links
PASS: ln-force-creates-soft-links
PASS: ln-preserves-hard-links
PASS: ln-preserves-soft-links
PASS: ls-1-works
PASS: ls-h-works
PASS: ls-l-works
PASS: ls-s-works
======================
echo -ne '' >input
echo -ne '' | touch ls.testdir/A ls.testdir/B; ln -s ls.testdir ls.link; ls ls.link; ls -1 ls.link/; ls -1 ls.link; rm -f ls.link
PASS: ls symlink_to_dir
PASS: md5sum-verifies-non-binary-file
PASS: md5sum
PASS: md5sum -c EMPTY
SKIPPED: mdev add /block/sda
SKIPPED: mdev deletes /block/sda
SKIPPED: mdev stops on first rule
SKIPPED: mdev does not stop on dash-rule
SKIPPED: mdev $ENVVAR=regex match
SKIPPED: mdev move/symlink rule '>bar/baz'
SKIPPED: mdev move/symlink rule '>bar/'
SKIPPED: mdev move rule '=bar/baz/fname'
SKIPPED: mdev regexp substring match + replace
SKIPPED: mdev command
SKIPPED: mdev move and command
SKIPPED: mdev #maj,min and no explicit uid
SKIPPED: move rule does not delete node with name == device_name
PASS: mkdir-makes-a-directory
PASS: mkdir-makes-parent-directories
SKIPPED: mount (must be root to test this)
PASS: mv-files-to-dir
PASS: mv-files-to-dir-2
PASS: mv-follows-links
PASS: mv-moves-empty-file
PASS: mv-moves-file
PASS: mv-moves-hardlinks
PASS: mv-moves-large-file
PASS: mv-moves-small-file
PASS: mv-moves-symlinks
PASS: mv-moves-unreadable-files
PASS: mv-preserves-hard-links
PASS: mv-preserves-links
PASS: mv-refuses-mv-dir-to-subdir
PASS: mv-removes-source-file
======================
echo -ne 'line 1\n\nline 3\n' >input
echo -ne '' | nl -b a input
PASS: nl numbers all lines
======================
echo -ne 'line 1\n\nline 3\n' >input
echo -ne '' | nl -b t input
PASS: nl numbers non-empty lines
======================
echo -ne 'line 1\n\nline 3\n' >input
echo -ne '' | nl -b n input
PASS: nl numbers no lines
======================
echo -ne '' >input
echo -ne '
ABCþ' | od
PASS: od (little-endian)
SKIPPED: od -a (!DESKTOP)
======================
echo -ne '' >input
echo -ne '\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f\x70\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff' | od -a
PASS: od -a (DESKTOP)
======================
echo -ne '' >input
echo -ne '
ABCþ' | od -B
PASS: od -B
======================
echo -ne '' >input
echo -ne '
ABCþ' | od -o
PASS: od -o (little-endian)
======================
echo -ne '' >input
echo -ne '
ABCþ' | od -b
PASS: od -b
======================
echo -ne '' >input
echo -ne '
ABCþ' | od -c
PASS: od -c
======================
echo -ne '' >input
echo -ne '
ABCþ' | od -d
PASS: od -d (little-endian)
======================
echo -ne '' >input
echo -ne '
ABCþ' | od -D
PASS: od -D (little-endian)
SKIPPED: od -e (!DESKTOP little-endian)
SKIPPED: od -F (!DESKTOP little-endian)
======================
echo -ne '' >input
echo -ne '
ABCþ' | od -f
PASS: od -f (little-endian)
======================
echo -ne '' >input
echo -ne '
ABCþ' | od -H
PASS: od -H (little-endian)
======================
echo -ne '' >input
echo -ne '
ABCþ' | od -X
PASS: od -X (little-endian)
======================
echo -ne '' >input
echo -ne '
ABCþ' | od -h
PASS: od -h (little-endian)
======================
echo -ne '' >input
echo -ne '
ABCþ' | od -x
PASS: od -x (little-endian)
======================
echo -ne '' >input
echo -ne '
ABCþ' | od -i
PASS: od -i (little-endian)
======================
echo -ne '' >input
echo -ne '
ABCþ' | od -O
PASS: od -O (little-endian)
SKIPPED: od -I (little-endian)
SKIPPED: od -L (little-endian)
SKIPPED: od -l (little-endian)
======================
echo -ne '' >input
echo -ne 'HELLO' | od -b
PASS: od -b
======================
echo -ne '' >input
echo -ne '\x00\x00\x00\x00\x00\x00\x00\x00' | od -f
PASS: od -f
======================
echo -ne '' >input
echo -ne 'HELLO' | od -b --traditional
PASS: od -b --traditional
======================
echo -ne 'HELLO' >input
echo -ne '' | od -b --traditional input
PASS: od -b --traditional FILE
PASS: paste
PASS: paste-back-cuted-lines
PASS: paste-multi-stdin
PASS: paste-pairs
PASS: paste-separate
======================
echo -ne '' >input
echo -ne '' | pidof veryunlikelyoccuringbinaryname ; echo $?
PASS: pidof (exit with error)
======================
echo -ne '' >input
echo -ne '' | pidof pidof > /dev/null; echo $?
PASS: pidof (exit with success)
======================
echo -ne '' >input
echo -ne '' | pidof pidof.tests | grep -o -w 52568
PASS: pidof this
======================
echo -ne '' >input
echo -ne '' | pidof -s init
PASS: pidof -s
======================
echo -ne '' >input
echo -ne '' | pidof -o %PPID -s init
PASS: pidof -o %PPID NOP
======================
echo -ne '' >input
echo -ne '' | pidof -o 1 init | grep -o -w 1
PASS: pidof -o init
======================
echo -ne '' >input
echo -ne '' | busybox printf '\c' foo
PASS: printf produces no further output 1
======================
echo -ne '' >input
echo -ne '' | busybox printf '%s\c' foo bar
PASS: printf produces no further output 2
======================
echo -ne '' >input
echo -ne '' | busybox printf '%s\n' foo '/home/buildozer'
PASS: printf repeatedly uses pattern for each argv
======================
echo -ne '' >input
echo -ne '' | busybox printf '%b' 'a\tb' 'c\d\n' 2>&1; echo $?
PASS: printf understands %b escaped_string
======================
echo -ne '' >input
echo -ne '' | busybox printf '%d\n' '"x' "'y" "'zTAIL" 2>&1; echo $?
PASS: printf understands %d '"x' "'y" "'zTAIL"
======================
echo -ne '' >input
echo -ne '' | busybox printf '%s\n' '"x' "'y" "'zTAIL" 2>&1; echo $?
PASS: printf understands %s '"x' "'y" "'zTAIL"
======================
echo -ne '' >input
echo -ne '' | busybox printf '|%23.12f|\n' 5.25 2>&1; echo $?
PASS: printf understands %23.12f
======================
echo -ne '' >input
echo -ne '' | busybox printf '|%*.*f|\n' 23 12 5.25 2>&1; echo $?
PASS: printf understands %*.*f
======================
echo -ne '' >input
echo -ne '' | busybox printf '|%*f|\n' -23 5.25 2>&1; echo $?
PASS: printf understands %*f with negative width
======================
echo -ne '' >input
echo -ne '' | busybox printf '|%.*f|\n' -12 5.25 2>&1; echo $?
PASS: printf understands %.*f with negative precision
======================
echo -ne '' >input
echo -ne '' | busybox printf '|%*.*f|\n' -23 -12 5.25 2>&1; echo $?
PASS: printf understands %*.*f with negative width/precision
======================
echo -ne '' >input
echo -ne '' | busybox printf '%zd\n' -5 2>&1; echo $?
PASS: printf understands %zd
======================
echo -ne '' >input
echo -ne '' | busybox printf '%ld\n' -5 2>&1; echo $?
PASS: printf understands %ld
======================
echo -ne '' >input
echo -ne '' | busybox printf '%Ld\n' -5 2>&1; echo $?
PASS: printf understands %Ld
======================
echo -ne '' >input
echo -ne '' | busybox printf '%%\n' 2>&1; echo $?
PASS: printf understands %%
======================
echo -ne '' >input
echo -ne '' | busybox printf '%d\n' 3 +3 '   3' '   +3' 2>&1; echo $?
PASS: printf handles positive numbers for %d
======================
echo -ne '' >input
echo -ne '' | busybox printf '%i\n' 3 +3 '   3' '   +3' 2>&1; echo $?
PASS: printf handles positive numbers for %i
======================
echo -ne '' >input
echo -ne '' | busybox printf '%x\n' 42 +42 '   42' '   +42' 2>&1; echo $?
PASS: printf handles positive numbers for %x
======================
echo -ne '' >input
echo -ne '' | busybox printf '%0.3f\n' .42 +.42 '   .42' '   +.42' 2>&1; echo $?
PASS: printf handles positive numbers for %f
======================
echo -ne '' >input
echo -ne '' | busybox printf '%d\n' 1 - 2 bad 3 123bad 4 2>&1; echo $?
PASS: printf handles %d bad_input
======================
echo -ne '' >input
echo -ne '' | busybox printf '%' a b c 2>&1; echo $?
PASS: printf aborts on bare %
======================
echo -ne '' >input
echo -ne '' | busybox printf '%r' a b c 2>&1; echo $?
PASS: printf aborts on %r
======================
echo -ne '' >input
echo -ne '' | busybox printf '%0*d\n' 2 1 2>&1; echo $?
PASS: printf treats leading 0 as flag
======================
echo -ne '' >input
echo -ne '' | busybox printf '%0 d\n' 2 2>&1; echo $?
PASS: printf handles multiple flags
PASS: pwd-prints-working-directory
======================
echo -ne '' >input
echo -ne '' | readlink ./readlink_testdir/testfile
PASS: readlink on a file
======================
echo -ne '' >input
echo -ne '' | readlink ./testlink
PASS: readlink on a link
======================
echo -ne '' >input
echo -ne '' | readlink -f ./readlink_testdir/testfile
PASS: readlink -f on a file
======================
echo -ne '' >input
echo -ne '' | readlink -f ./testlink
PASS: readlink -f on a link
======================
echo -ne '' >input
echo -ne '' | readlink -f ./readlink_testdir/readlink_testdir/testlink
PASS: readlink -f on an invalid link
======================
echo -ne '' >input
echo -ne '' | readlink -f readlink_testdir/../readlink_testdir/testfile
PASS: readlink -f on a weird dir
======================
echo -ne '' >input
echo -ne '' | realpath /not_file
PASS: realpath on non-existent absolute path 1
======================
echo -ne '' >input
echo -ne '' | realpath /not_file/
PASS: realpath on non-existent absolute path 2
======================
echo -ne '' >input
echo -ne '' | realpath //not_file
PASS: realpath on non-existent absolute path 3
======================
echo -ne '' >input
echo -ne '' | realpath /not_dir/not_file 2>&1
PASS: realpath on non-existent absolute path 4
======================
echo -ne '' >input
echo -ne '' | realpath realpath_testdir/not_file
PASS: realpath on non-existent local file 1
======================
echo -ne '' >input
echo -ne '' | realpath realpath_testdir/not_dir/not_file 2>&1
PASS: realpath on non-existent local file 2
======================
echo -ne '' >input
echo -ne '' | realpath link1
PASS: realpath on link to non-existent file 1
======================
echo -ne '' >input
echo -ne '' | realpath link2 2>&1
PASS: realpath on link to non-existent file 2
======================
echo -ne '' >input
echo -ne '' | realpath ./link1
PASS: realpath on link to non-existent file 3
======================
echo -ne '' >input
echo -ne '' | realpath ./link2 2>&1
PASS: realpath on link to non-existent file 4
======================
echo -ne 'line 1\n\nline 3\n' >input
echo -ne '' | rev input
PASS: rev works
======================
echo -ne 'line 1\n\nline 3' >input
echo -ne '' | rev input
PASS: rev file with missing newline
======================
echo -ne 'lin\000e 1\n\nline 3\n' >input
echo -ne '' | rev input
PASS: rev file with NUL character
======================
echo -ne '---------------+---------------+---------------+---------------+---------------+---------------+---------------+---------------+---------------+---------------+---------------+---------------+---------------+---------------+---------------+--------------+\nabc\n' >input
echo -ne '' | rev input
PASS: rev file with long line
PASS: rm-removes-file
PASS: rmdir-removes-parent-directories
======================
echo -ne '' >input
echo -ne 'hello\n' | sed ""
PASS: sed no files (stdin)
======================
echo -ne '' >input
echo -ne 'hello\n' | sed "" -
PASS: sed explicit stdin
======================
echo -ne '' >input
echo -ne '\n' | sed -e 's/$/@/'
PASS: sed handles empty lines
======================
echo -ne '' >input
echo -ne 'hello' | sed "" - -
PASS: sed stdin twice
======================
echo -ne '' >input
echo -ne '' | sed -e '1 d'
PASS: sed accepts blanks before command
======================
echo -ne '' >input
echo -ne '2\n' | sed -e 'i1
a3'
PASS: sed accepts newlines in -e
======================
echo -ne '' >input
echo -ne '2\n' | sed -e 'i\' -e '1' -e 'a\' -e '3'
PASS: sed accepts multiple -e
======================
echo -ne '' >input
echo -ne 'foo\n' | sed -n -e s/foo/bar/ -e s/bar/baz/
PASS: sed -n
======================
echo -ne '' >input
echo -ne 'string\n' | sed 's/z*//g'
PASS: sed with empty match
======================
echo -ne '' >input
echo -ne 'foo\n' | sed -e s/foo/bar/p -e s/bar/baz/p
PASS: sed s//p
======================
echo -ne '' >input
echo -ne 'abc\n' | sed -ne s/abc/def/p
PASS: sed -n s//p
======================
echo -ne '' >input
echo -ne '12345\n' | sed -e 's/[[:space:]]*/,/g'
PASS: sed s//g (exhaustive)
======================
echo -ne '' >input
echo -ne 'woo\n' | sed -e 's woo boing '
PASS: sed s arbitrary delimiter
======================
echo -ne '' >input
echo -ne 'foo\n' | sed -e s/foo/bar/ -e s/bar/baz/
PASS: sed s chains
======================
echo -ne '' >input
echo -ne 'foo\n' | sed -e s/foo/bar/ -e s/baz/nee/
PASS: sed s chains2
======================
echo -ne '' >input
echo -ne 'one@two' | sed -e 's@[@]@@'
PASS: sed s [delimiter]
======================
echo -ne '' >input
echo -ne 'one\ttwo' | sed 's/\t/ /'
PASS: sed s with \t (GNU ext)
======================
echo -ne '' >input
echo -ne 'foo\n' | sed -e 'b one;p;: one'
PASS: sed b (branch)
======================
echo -ne '' >input
echo -ne 'foo\n' | sed -e 'b;p'
PASS: sed b (branch with no label jumps to end)
======================
echo -ne '' >input
echo -ne 'a\nb\nc\n' | sed -e 's/a/1/;t one;p;: one;p'
PASS: sed t (test/branch)
======================
echo -ne '' >input
echo -ne 'a\nb\nc\n' | sed -e 's/a/b/;:loop;t loop'
PASS: sed t (test/branch clears test bit)
======================
echo -ne '' >input
echo -ne 'a\nb\nc\n' | sed -e 's/a/1/;T notone;p;: notone;p'
PASS: sed T (!test/branch)
======================
echo -ne '' >input
echo -ne 'a\nb\nc\n' | sed -e 'n;p'
PASS: sed n (flushes pattern space, terminates early)
======================
echo -ne '' >input
echo -ne 'a\nb\nc\n' | sed -e 'N;p'
PASS: sed N (flushes pattern space (GNU behavior))
======================
echo -ne '' >input
echo -ne 'a\nb\nc\n' | sed ':a;N;s/\n/ /;ta'
PASS: sed N test2
======================
echo -ne '' >input
echo -ne 'a\nb\nc\n' | sed 'N;s/\n/ /'
PASS: sed N test3
======================
echo -ne '' >input
echo -ne 'a\nb\nc\nd\n' | sed "/b/N;/b\\nc/i woo"
PASS: sed address match newline
======================
echo -ne '' >input
echo -ne 'a\nb\nc\n' | sed -n 'N;P;p'
PASS: sed N (stops at end of input) and P (prints to first newline only)
======================
echo -ne '' >input
echo -ne 'a\nb\nc\n' | sed G
PASS: sed G (append hold space to pattern space)
======================
echo -ne '' >input
echo -ne 'ook\n' | sed -e '/ook/d;s/ook/ping/p;i woot'
PASS: sed d ends script iteration
======================
echo -ne '' >input
echo -ne 'ook\nwoot\n' | sed -e '/ook/d;a\' -e 'bang'
PASS: sed d ends script iteration (2)
======================
echo -ne '' >input
echo -ne 'woo\0woo\0' | sed -e 's/woo/bang/g'
PASS: sed embedded NUL g
======================
echo -ne 'woo\n' >input
echo -ne 'woo\n' | sed -e 's/woo/bang/' input -
PASS: sed normal newlines
======================
echo -ne 'woo\n' >input
echo -ne 'woo' | sed -e 's/woo/bang/' input -
PASS: sed leave off trailing newline
======================
echo -ne 'woo' >input
echo -ne 'woo' | sed -e 's/woo/bang/' input -
PASS: sed autoinsert newline
======================
echo -ne '' >input
echo -ne 'one\ntwo' | sed -e 's/nohit//' input -
PASS: sed empty file plus cat
======================
echo -ne 'one\ntwo' >input
echo -ne '' | sed -e 's/nohit//' input -
PASS: sed cat plus empty file
======================
echo -ne '' >input
echo -ne 'woot' | sed -e '/woot/a woo' -
PASS: sed append autoinserts newline
======================
echo -ne 'boot' >input
echo -ne 'woot' | sed -e '/oot/a woo' - input
PASS: sed append autoinserts newline 2
======================
echo -ne 'boot' >input
echo -ne '' | sed -e '/oot/a woo' -i input && cat input
PASS: sed append autoinserts newline 3
======================
echo -ne '' >input
echo -ne 'woot' | sed -e '/woot/i woo' -
PASS: sed insert doesn't autoinsert newline
======================
echo -ne '' >input
echo -ne 'one' | sed -e 'p' -
PASS: sed print autoinsert newlines
======================
echo -ne 'one' >input
echo -ne 'two' | sed -e 'p' input -
PASS: sed print autoinsert newlines two files
======================
echo -ne 'no\n' >input
echo -ne '' | sed -ne 's/woo/bang/' input
PASS: sed noprint, no match, no newline
======================
echo -ne 'a woo\nb no' >input
echo -ne 'c woo\nd no' | sed -ne 's/woo/bang/p' input -
PASS: sed selective matches with one nl
======================
echo -ne 'a woo\nb woo' >input
echo -ne 'c no\nd woo' | sed -ne 's/woo/bang/p' input -
PASS: sed selective matches insert newline
======================
echo -ne 'a woo\nb woo' >input
echo -ne 'c no\nd no' | sed -ne 's/woo/bang/p' input -
PASS: sed selective matches noinsert newline
======================
echo -ne 'one' >input
echo -ne 'two' | sed -e '/one/a 111' -e '/two/i 222' -e p input -
PASS: sed clusternewline
======================
echo -ne 'thingy' >input
echo -ne 'again' | sed -e 's/i/z/' -e 'woutputw' input -; echo -n X; cat outputw
PASS: sed subst+write
======================
echo -ne 'a\0b\0' >input
echo -ne 'c' | sed 's/i/z/' input -
PASS: sed trailing NUL
======================
echo -ne 'a' >input
echo -ne '' | sed 's/a/z\
z/' input
PASS: sed escaped newline in command
======================
echo -ne '' >input
echo -ne 'hello\nthere' | sed -e '$p'
PASS: sed match EOF
======================
echo -ne 'one\ntwo' >input
echo -ne 'three\nfour' | sed -e '$p' input -
PASS: sed match EOF two files
======================
echo -ne 'one\ntwo' >input
echo -ne '' | sed -e '$i ook' -i input input2 && cat input input2
PASS: sed match EOF inline
======================
echo -ne '' >input
echo -ne '' | sed --version | grep -o 'GNU sed version '
PASS: sed lie-to-autoconf
======================
echo -ne '' >input
echo -ne 'woot' | sed -e '/woot/s//eep \0 eep/'
PASS: sed backref from empty s uses range regex
======================
echo -ne '' >input
echo -ne 'woot\n' | sed -e '/woot/s//eep \0 eep/'
PASS: sed backref from empty s uses range regex with newline
======================
echo -ne '' >input
echo -ne '' | sed -e '' -i 2> /dev/null || echo yes
PASS: sed -i with no arg [GNUFAIL]
======================
echo -ne '' >input
echo -ne 'xxx\n' | sed -e 's/xxx/[/'
PASS: sed s/xxx/[/
======================
echo -ne '' >input
echo -ne '0\n1\n2\n3\n' | sed 's/1/x/;T;n;: next;s/3/y/;t quit;n;b next;: quit;q'
PASS: sed n command must reset 'substituted' bit
======================
echo -ne '' >input
echo -ne 'first\nsecond\nthird\nfourth\n' | sed -n '1d;1,3p'
PASS: sed d does not break n,m matching
======================
echo -ne '' >input
echo -ne 'first\nsecond\nthird\nfourth\n' | sed -n '1d;1,/hir/p'
PASS: sed d does not break n,regex matching
======================
echo -ne '' >input
echo -ne 'first\nsecond\nthird\nfourth\nfirst2\nsecond2\nthird2\nfourth2\n' | sed -n '1,5d;1,/hir/p'
PASS: sed d does not break n,regex matching #2
======================
echo -ne '' >input
echo -ne 'first\nsecond\nthird\nfourth\n' | sed -n '2d;2,1p'
PASS: sed 2d;2,1p (gnu compat)
======================
echo -ne '' >input
echo -ne '/usr/lib\n' | sed 's,\(^/\|\)[^/][^/]*,>\0<,g'
PASS: sed beginning (^) matches only once
======================
echo -ne '' >input
echo -ne 'first\nsecond\n' | sed 'crepl'
PASS: sed c
======================
echo -ne '' >input
echo -ne 'qwe\nasd\nzxc\n' | sed '/asd/ { p; /s/ { s/s/c/ }; p; q }'
PASS: sed nested {}s
======================
echo -ne '' >input
echo -ne '	| one \\
	| two \\
' | sed -e '/| one /a \
	| three \\' -e '/| one-/a \
	| three-* \\'
PASS: sed a cmd ended by double backslash
======================
echo -ne '' >input
echo -ne 'line1\n' | sed '/1/a\\t\rzero\none\\ntwo\\\nthree'
PASS: sed a cmd understands \n,\t,\r
======================
echo -ne '' >input
echo -ne 'line1\n' | sed '/1/i\\t\rzero\none\\ntwo\\\nthree'
PASS: sed i cmd understands \n,\t,\r
======================
echo -ne '' >input
echo -ne '1\n2\n3\n4\n' | sed -n '1{N;N;d};1p;2,3p;3p;4p'
PASS: sed with N skipping lines past ranges on next cmds
======================
echo -ne 'foo\n' >input
echo -ne '' | cp input input2; sed -i -e '1s/foo/bar/' input input2 && cat input input2; rm input2
PASS: sed -i with address modifies all files, not only first
======================
echo -ne '' >input
echo -ne 'rrr\n' | sed 's/r/\r/'
PASS: sed understands \r
======================
echo -ne '1\n2\n3\n4\n' >input
echo -ne '' | sed '1,2d' -i input; echo $?; cat input
PASS: sed -i finishes ranges correctly
======================
echo -ne '' >input
echo -ne 'helllo\n' | sed 's/l*/@/g'
PASS: sed zero chars match/replace advances correctly 1
======================
echo -ne '' >input
echo -ne ' a.b\n' | sed 's [^ .]* x g'
PASS: sed zero chars match/replace advances correctly 2
======================
echo -ne '' >input
echo -ne '_aaa1aa\n' | sed 's/a/A/g'
PASS: sed zero chars match/replace logic must not falsely trigger here 1
======================
echo -ne '' >input
echo -ne 'qwerty\n' | sed 's/ *$/_/g'
PASS: sed zero chars match/replace logic must not falsely trigger here 2
======================
echo -ne '' >input
echo -ne '9+8=17\n' | sed 's+9\++X+'
PASS: sed special char as s/// delimiter, in pattern
======================
echo -ne '' >input
echo -ne '9+8=17\n' | sed 's&9&X\&&'
PASS: sed special char as s/// delimiter, in replacement 1
======================
echo -ne '' >input
echo -ne '9+8=17\n' | sed 's1\(9\)1X\11'
PASS: sed special char as s/// delimiter, in replacement 2
======================
echo -ne '' >input
echo -ne 'this is a regular line
line with \
continuation
more regular lines
line with \
continuation
' | sed ': testcont; /\\$/{ =; N; b testcont }'
PASS: sed /$_in_regex/ should not match newlines, only end-of-line
======================
echo -ne '' >input
echo -ne 'aa\n' | sed -e 's/a/b/2; s/a/c/g'
PASS: sed s///NUM test
======================
echo -ne '' >input
echo -ne '1\n2\n3\n4\n5\n' | sed /^2/,2{d}
PASS: sed /regex/,N{...} addresses work
======================
echo -ne '' >input
echo -ne '1\n2\n3\n4\n5\n' | sed /^2/,+2{d}
PASS: sed /regex/,+N{...} addresses work
======================
echo -ne '' >input
echo -ne 'a\n1\nc\nc\na\n2\na\n3\n' | sed -n '/a/,+1 p'
PASS: sed /regex/,+N{...} addresses work 2
======================
echo -ne '1\n2\n3\n4\n5\n6\n7\n8\n' >input
echo -ne '1\n2\n4\n5\n6\n7\n8\n' | cat - >input2; sed /^4/,+2{d} -i input input2; echo $?; cat input input2; rm input2
PASS: sed /regex/,+N{...} -i works
======================
echo -ne '1\n2\n3\n4\n5\n6\n7\n8\n' >input
echo -ne '1\n2\n4\n5\n6\n7\n8\n' | cat - >input2; sed /^4/,+0{d} -i input input2; echo $?; cat input input2; rm input2
PASS: sed /regex/,+0{...} -i works
======================
echo -ne '1\n2\n3\n4\n5\n6\n7\n8\n' >input
echo -ne '1\n2\n4\n5\n6\n7\n8\n' | cat - >input2; sed /^4/,+0d -i input input2; echo $?; cat input input2; rm input2
PASS: sed /regex/,+0<cmd> -i works
======================
echo -ne '' >input
echo -ne '123\nqwe\nasd\n' | sed 's/qwe/ZZZ/wz'; cat z; rm z
PASS: sed 's///w FILE'
======================
echo -ne '' >input
echo -ne 'q\nw\ne\nr\n' | sed '/w/p;//q'
PASS: sed uses previous regexp
======================
echo -ne '' >input
echo -ne 'abca\n' | sed -e 's/^a\|b//g'
PASS: sed ^ OR not^
======================
echo -ne '' >input
echo -ne 'a\nb\nc\n' | sed -n -e '/a/w sed.output' -e '/c/w sed.output' 2>&1 && cat sed.output && rm sed.output
PASS: sed understands duplicate file name
======================
echo -ne '' >input
echo -ne '' | seq 2> /dev/null || echo yes
PASS: seq (exit with error)
======================
echo -ne '' >input
echo -ne '' | seq 1 2 3 4 2> /dev/null || echo yes
PASS: seq (exit with error)
======================
echo -ne '' >input
echo -ne '' | seq 3
PASS: seq one argument
======================
echo -ne '' >input
echo -ne '' | seq 5 7
PASS: seq two arguments
======================
echo -ne '' >input
echo -ne '' | seq 7 5
PASS: seq two arguments reversed
======================
echo -ne '' >input
echo -ne '' | seq 3 3
PASS: seq two arguments equal
======================
echo -ne '' >input
echo -ne '' | seq 1 -15 1
PASS: seq two arguments equal, arbitrary negative step
======================
echo -ne '' >input
echo -ne '' | seq 1 +15 1
PASS: seq two arguments equal, arbitrary positive step
======================
echo -ne '' >input
echo -ne '' | seq 4 2 8
PASS: seq count up by 2
======================
echo -ne '' >input
echo -ne '' | seq 8 -2 4
PASS: seq count down by 2
======================
echo -ne '' >input
echo -ne '' | seq 4 -2 8
PASS: seq count wrong way #1
======================
echo -ne '' >input
echo -ne '' | seq 8 2 4
PASS: seq count wrong way #2
======================
echo -ne '' >input
echo -ne '' | seq 3 .3 4
PASS: seq count by .3
======================
echo -ne '' >input
echo -ne '' | seq 3 .30 4
PASS: seq count by .30
======================
echo -ne '' >input
echo -ne '' | seq 3 .30 4.000
PASS: seq count by .30 to 4.000
======================
echo -ne '' >input
echo -ne '' | seq .7 -.9 -2.2
PASS: seq count by -.9
======================
echo -ne '' >input
echo -ne '' | seq 4 0 8 | head -n 10
PASS: seq count by zero
======================
echo -ne '' >input
echo -ne '' | seq -w 003
PASS: seq one argument with padding
======================
echo -ne '' >input
echo -ne '' | seq -w 005 7
PASS: seq two arguments with padding
======================
echo -ne '' >input
echo -ne '' | seq -w 8 -3 04
PASS: seq count down by 3 with padding
======================
echo -ne '' >input
echo -ne '' | seq -w 09 .3 11
PASS: seq count by .3 with padding 1
======================
echo -ne '' >input
echo -ne '' | seq -w 03 .3 0004
PASS: seq count by .3 with padding 2
======================
echo -ne '' >input
echo -ne '' | seq -4 -2 -8
PASS: seq from -4 count down by 2
======================
echo -ne '' >input
echo -ne '' | seq -.0 -.25 -.9
PASS: seq from -.0 count down by .25
======================
echo -ne '' >input
echo -ne '' | seq -s : -1 1
PASS: seq -s : with negative start
======================
echo -ne '' >input
echo -ne '' | echo "da39a3ee5e6b4b0d3255bfef95601890afd80709 EMPTY" | sha1sum -c
PASS: sha1sum: one-space separated input for -c
PASS: sha1sum
PASS: sha1sum -c EMPTY
PASS: sha256sum
PASS: sha256sum -c EMPTY
PASS: sha3sum
PASS: sha3sum -c EMPTY
PASS: sha512sum
PASS: sha512sum -c EMPTY
======================
echo -ne 'c\na\nb\n' >input
echo -ne '' | sort input
PASS: sort
======================
echo -ne '3\n1\n010\n' >input
echo -ne '' | sort input
PASS: sort #2
======================
echo -ne '' >input
echo -ne 'b\na\nc\n' | sort
PASS: sort stdin
======================
echo -ne '3\n1\n010\n' >input
echo -ne '' | sort -n input
PASS: sort numeric
======================
echo -ne 'point\nwook\npabst\naargh\nwalrus\n' >input
echo -ne '' | sort -r input
PASS: sort reverse
======================
echo -ne '42	1	3	woot
42	1	010	zoology
egg	1	2	papyrus
7	3	42	soup
999	3	0	algebra
' >input
echo -ne '' | sort -k4,4 input
PASS: sort one key
======================
echo -ne '42	1	3	woot
42	1	010	zoology
egg	1	2	papyrus
7	3	42	soup
999	3	0	algebra
' >input
echo -ne '' | sort -k2,3n input
PASS: sort key range with numeric option
======================
echo -ne '42	1	3	woot
42	1	010	zoology
egg	1	2	papyrus
7	3	42	soup
999	3	0	algebra
' >input
echo -ne '' | sort -k2,3n -r input
PASS: sort key range with numeric option and global reverse
======================
echo -ne '42	1	3	woot
42	1	010	zoology
egg	1	2	papyrus
7	3	42	soup
999	3	0	algebra
' >input
echo -ne '' | sort -k2,3rn input
PASS: sort key range with multiple options
======================
echo -ne 'c 3
b 2
d 2
' >input
echo -ne '' | sort -k 2,2n -k 1,1r input
PASS: sort key range with two -k options
======================
echo -ne '/a/2
/b/1
' >input
echo -ne '' | sort -n -k2 -t/ input
PASS: sort with non-default leading delim 1
======================
echo -ne '/b/1
/a/2
' >input
echo -ne '' | sort -n -k3 -t/ input
PASS: sort with non-default leading delim 2
======================
echo -ne '//a/2
//b/1
' >input
echo -ne '' | sort -n -k3 -t/ input
PASS: sort with non-default leading delim 3
======================
echo -ne 'a/a:a
a:b
' >input
echo -ne '' | sort -t: -k1,1 input
PASS: sort with non-default leading delim 4
======================
echo -ne 'aa.2
ab.1
' >input
echo -ne '' | sort -t. -k1,1.1 -k2 input
PASS: sort with ENDCHAR
======================
echo -ne 'GLIBC_2.21
GLIBC_2.1.1
GLIBC_2.2.1
GLIBC_2.2
GLIBC_2.20
GLIBC_2.10
GLIBC_2.1
' >input
echo -ne '' | sort -t. -k 1,1 -k 2n,2n -k 3 input
PASS: glibc build sort
======================
echo -ne 'GLIBC_2.10
GLIBC_2.2.1
GLIBC_2.1.1
GLIBC_2.20
GLIBC_2.2
GLIBC_2.1
GLIBC_2.21
' >input
echo -ne '' | sort -u -t. -k 1,1 -k 2n,2n -k 3 input
PASS: glibc build sort unique
======================
echo -ne 'a c
b c
' >input
echo -ne '' | sort -u -k2 input
PASS: sort -u should consider field only when discarding
======================
echo -ne 'one\0two\0three\0' >input
echo -ne '' | sort -z input
PASS: sort -z outputs NUL terminated lines
======================
echo -ne '' >input
echo -ne ' 2 \n 1 \n a \n' | sort -n -k2 -t ' '
PASS: sort key doesn't strip leading blanks, disables fallback global sort
======================
echo -ne '222
111
' >input
echo -ne '' | sort -o input input && cat input
PASS: sort file in place
======================
echo -ne 'a 1
b 2
c 1
d 2
' >input
echo -ne '' | sort -k2 -r -s input
PASS: sort -sr (stable and reverse) does NOT reverse 'stable' ordering
======================
echo -ne '1Y
5y
1M
2E
3k
3e
2K
4m
1023
1025
3000
1024
' >input
echo -ne '' | sort -h input
PASS: sort -h
======================
echo -ne '2 April
1  May
3 March
' >input
echo -ne '' | sort -k2,2M input
PASS: sort -k2,2M
======================
echo -ne 'z b
a b
z a
a a' >input
echo -ne '' | sort -s -u -k 2 input
PASS: sort -s -u
PASS: strings-works-like-GNU
======================
echo -ne '' >input
echo -ne '' | sum -r '/home/buildozer/aports/main/busybox/src/build-dynamic/testsuite/sum.tests' | grep -c '/home/buildozer/aports/main/busybox/src/build-dynamic/testsuite/sum.tests' && echo wrongly_printed_filename || echo yes
PASS: sum -r file doesn't print file's name
======================
echo -ne '' >input
echo -ne '' | sum -r '/home/buildozer/aports/main/busybox/src/build-dynamic/testsuite/sum.tests' '/home/buildozer/aports/main/busybox/src/build-dynamic/testsuite/sum.tests' | grep -c '/home/buildozer/aports/main/busybox/src/build-dynamic/testsuite/sum.tests' && echo yes || echo wrongly_omitted_filename
PASS: sum -r file file does print both names
======================
echo -ne '' >input
echo -ne '' | sum -s '/home/buildozer/aports/main/busybox/src/build-dynamic/testsuite/sum.tests' | grep -c '/home/buildozer/aports/main/busybox/src/build-dynamic/testsuite/sum.tests' && echo yes || echo wrongly_omitted_filename
PASS: sum -s file does print file's name
PASS: tail-n-works
UNTESTED: tail-works
======================
echo -ne '' >input
echo -ne 'qw' | tail -c +55 2>&1; echo $?
PASS: tail: +N with N > file length
======================
echo -ne '' >input
echo -ne '' | 
	dd if=/dev/zero bs=16k count=1 2>/dev/null | tail -c +8200 | wc -c;
	dd if=/dev/zero bs=16k count=1 2>/dev/null | tail -c +8208 | wc -c;
	
PASS: tail: -c +N with largish N
PASS: tar-archives-multiple-files
PASS: tar-complains-about-missing-file
PASS: tar-demands-at-least-one-ctx
PASS: tar-demands-at-most-one-ctx
PASS: tar-extracts-all-subdirs
PASS: tar-extracts-file
PASS: tar-extracts-from-standard-input
PASS: tar-extracts-multiple-files
PASS: tar-extracts-to-standard-output
PASS: tar-handles-cz-options
PASS: tar-handles-empty-include-and-non-empty-exclude-list
PASS: tar-handles-exclude-and-extract-lists
PASS: tar-handles-multiple-X-options
PASS: tar-handles-nested-exclude
PASS: tar_with_link_with_size
PASS: tar_with_prefix_fields
======================
echo -ne '' >input
echo -ne '' | \
tar xvf - 2>&1; echo $?

PASS: tar Empty file is not a tarball
======================
echo -ne '' >input
echo -ne '' | \
{ tar xvzf - 2>&1; echo $?; } | grep -Fv "invalid magic"

PASS: tar Empty file is not a tarball.tar.gz
======================
echo -ne '' >input
echo -ne '' | \
dd if=/dev/zero bs=512 count=2 2>/dev/null | tar xvf - 2>&1; echo $?

PASS: tar Two zeroed blocks is a ('truncated') empty tarball
======================
echo -ne '' >input
echo -ne '' | \
dd if=/dev/zero bs=512 count=20 2>/dev/null | tar xvf - 2>&1; echo $?

PASS: tar Twenty zeroed blocks is an empty tarball
======================
echo -ne '' >input
echo -ne '' | \
>input_hard1
ln input_hard1 input_hard2
mkdir input_dir
>input_dir/file
for f in *; do [ "$f" = "input_dir" ] || chmod -R 644 "$f"; done
chmod    755 input_dir
tar cf test.tar input input_dir/ input_hard1 input_hard2 input_hard1 input_dir/ input
tar tvf test.tar | sed "s/.*[0-9] input/input/"
rm -rf input_dir
tar xf test.tar 2>&1
echo Ok: $?
ls -l . input_dir/* | grep input_ | sed "s/\\(^[^ ]*\\) .* input/\\1 input/"

PASS: tar hardlinks and repeated files
======================
echo -ne '' >input
echo -ne '' | \
>input_hard1
chmod 741 input_hard1
ln input_hard1 input_hard2
mkdir input_dir
ln input_hard1 input_dir
ln input_hard2 input_dir
chmod 550 input_dir
# On some filesystems, input_dir/input_hard2 is returned by readdir
# BEFORE input_dir/input_hard1! Thats why we cant just "tar cf ... input_*":
tar cf test.tar input_dir/input_hard* input_hard*
tar tvf test.tar | sed "s/.*[0-9] input/input/"
chmod 770 input_dir
rm -rf input_*
tar xf test.tar 2>&1
echo Ok: $?
ls -l . input_dir/* | grep "input.*hard" | sed "s/\\(^[^ ]*\\) .* input/\\1 input/"

PASS: tar hardlinks mode
======================
echo -ne '' >input
echo -ne '' | \
>input_file
chmod 741 input_file
ln -s input_file input_soft
mkdir input_dir
ln input_file input_dir
ln input_soft input_dir
chmod 550 input_dir
tar cf test.tar input_dir/* input_[fs]*
tar tvf test.tar | sed "s/.*[0-9] input/input/" | sort
chmod 770 input_dir
rm -rf input_*
tar xf test.tar 2>&1
echo Ok: $?
ls -l . input_dir/* | grep "input_[fs]" | sed "s/\\(^[^ ]*\\) .* input/\\1 input/"

PASS: tar symlinks mode
======================
echo -ne 'Ok\n' >input
echo -ne '' | ln input input_hard
tar cf test.tar input_hard
echo WRONG >input
# --overwrite opens 'input_hard' without unlinking,
# thus 'input_hard' still linked to 'input' and we write 'Ok' into it
tar xf test.tar --overwrite 2>&1 && cat input

PASS: tar --overwrite
======================
echo -ne '' >input
echo -ne '' | dd count=1 bs=1M if=/dev/zero of=F0 2>/dev/null
tar -czf F0.tgz F0
rm F0
tar -xzvf F0.tgz && echo Ok
rm F0 || echo BAD

PASS: tar extract tgz
======================
echo -ne '' >input
echo -ne 'begin-base64 644 hello_world.txz
/Td6WFoAAATm1rRGAgAhARYAAAB0L+Wj4AX/AEldADQZSe6ODIZQ3rSQ8kAJ
SnMPTX+XWGKW3Yu/Rwqg4Ik5wqgQKgVH97J8yA8IvZ4ahaCQogUNHRkXibr2
Q615wcb2G7fJU49AhWAAAAAAUA8gu9DyXfAAAWWADAAAAB5FXGCxxGf7AgAA
AAAEWVo=
====
' | uudecode -o input && tar tf input && echo Ok

PASS: tar extract txz
======================
echo -ne '' >input
echo -ne '' | rm -rf input_* test.tar 2>/dev/null
mkdir input_dir
echo Ok >input_dir/file
tar cf test.tar ./../tar.tempdir/input_dir/../input_dir 2>&1
rm -rf input_* 2>/dev/null
tar -vxf test.tar 2>&1
cat input_dir/file 2>&1

PASS: tar strips /../ on extract
======================
echo -ne '' >input
echo -ne 'begin-base64 644 attack.tar.bz2
QlpoOTFBWSZTWRVn/bIAAKt7hMqwAEBAAP2QAhB0Y96AAACACCAAlISgpqe0
po0DIaDynqAkpDRP1ANAhiYNSPR8VchKhAz0AK59+DA6FcMKBggOARIJdVHL
DGllrjs20ATUgR1HmccBX3EhoMnpMJaNyggmxgLDMz54lBnBTJO/1L1lbMS4
l4/V8LDoe90yiWJhOJvIypgEfxdyRThQkBVn/bI=
====
' | >>/tmp/passwd && uudecode -o input && tar xf input 2>&1 && rm passwd; cat /tmp/passwd; echo $?

PASS: tar does not extract into symlinks
======================
echo -ne '' >input
echo -ne 'begin-base64 644 attack.tar.bz2
QlpoOTFBWSZTWRVn/bIAAKt7hMqwAEBAAP2QAhB0Y96AAACACCAAlISgpqe0
po0DIaDynqAkpDRP1ANAhiYNSPR8VchKhAz0AK59+DA6FcMKBggOARIJdVHL
DGllrjs20ATUgR1HmccBX3EhoMnpMJaNyggmxgLDMz54lBnBTJO/1L1lbMS4
l4/V8LDoe90yiWJhOJvIypgEfxdyRThQkBVn/bI=
====
' | >>/tmp/passwd && uudecode -o input && tar xf input -k 2>&1 && rm passwd; cat /tmp/passwd; echo $?

PASS: tar -k does not extract into symlinks
======================
echo -ne '' >input
echo -ne 'begin-base64 644 tar_symlink_attack.tar.bz2
QlpoOTFBWSZTWZgs7bQAALT/hMmQAFBAAf+AEMAGJPPv32AAAIAIMAC5thlR
omAjAmCMADQT1BqNE0AEwAAjAEwElTKeo9NTR6h6gaeoA0DQNLVdwZZ5iNTk
AQwCAV6S00QFJYhrlfFkVCEDEGtgNVqYrI0uK3ggnt30gqk4e1TTQm5QIAKa
SJqzRGSFLMmOloHSAcvLiFxxRiQtQZF+qPxbo173ZDISOAoNoPN4PQPhBhKS
n8fYaKlioCTzL2oXYczyUUIP4u5IpwoSEwWdtoA=
====
' | \
exec 2>&1
uudecode -o input && tar xvf input; echo $?
ls /tmp/bb_test_evilfile
ls bb_test_evilfile
ls symlink/bb_test_evilfile

PASS: tar Symlink attack: create symlink and then write through it
======================
echo -ne '' >input
echo -ne '' | \
mkdir dir
>dir/a
ln -s ../dir/a dir/b
ln dir/b dir/c
mkdir new
tar cf - dir/* | tar -C new -xvf - 2>&1

PASS: tar Symlinks and hardlinks coexist
PASS: tee-appends-input
PASS: tee-tees-input
======================
echo -ne '' >input
echo -ne '' | busybox test; echo $?
PASS: test: should be false (1)
======================
echo -ne '' >input
echo -ne '' | busybox test ''; echo $?
PASS: test '': should be false (1)
======================
echo -ne '' >input
echo -ne '' | busybox test !; echo $?
PASS: test !: should be true (0)
======================
echo -ne '' >input
echo -ne '' | busybox test a; echo $?
PASS: test a: should be true (0)
======================
echo -ne '' >input
echo -ne '' | busybox test --help; echo $?
PASS: test --help: should be true (0)
======================
echo -ne '' >input
echo -ne '' | busybox test -f; echo $?
PASS: test -f: should be true (0)
======================
echo -ne '' >input
echo -ne '' | busybox test ! -f; echo $?
PASS: test ! -f: should be false (1)
======================
echo -ne '' >input
echo -ne '' | busybox test a = a; echo $?
PASS: test a = a: should be true (0)
======================
echo -ne '' >input
echo -ne '' | busybox test -lt = -gt; echo $?
PASS: test -lt = -gt: should be false (1)
======================
echo -ne '' >input
echo -ne '' | busybox test a -a !; echo $?
PASS: test a -a !: should be true (0)
======================
echo -ne '' >input
echo -ne '' | busybox test -f = a -o b; echo $?
PASS: test -f = a -o b: should be true (0)
======================
echo -ne '' >input
echo -ne '' | busybox test ! a = b -a ! c = c; echo $?
PASS: test ! a = b -a ! c = c: should be false (1)
======================
echo -ne '' >input
echo -ne '' | busybox test ! a = b -a ! c = d; echo $?
PASS: test ! a = b -a ! c = d: should be true (0)
======================
echo -ne '' >input
echo -ne '' | busybox test '!' = '!'; echo $?
PASS: test '!' = '!': should be true (0)
======================
echo -ne '' >input
echo -ne '' | busybox test '(' = '('; echo $?
PASS: test '(' = '(': should be true (0)
======================
echo -ne '' >input
echo -ne '' | busybox test '!' '!' = '!'; echo $?
PASS: test '!' '!' = '!': should be false (1)
======================
echo -ne '' >input
echo -ne '' | busybox test '!' '(' = '('; echo $?
PASS: test '!' '(' = '(': should be false (1)
======================
echo -ne '' >input
echo -ne '' | time -f 'abc\' sleep 0 2>&1
PASS: time -f trailing backslash
======================
echo -ne '' >input
echo -ne '' | time -f 'abc%' sleep 0 2>&1
PASS: time -f trailing percent
======================
echo -ne '' >input
echo -ne '' | time -f 'abc\^def' sleep 0 2>&1
PASS: time -f undefined backslash
======================
echo -ne '' >input
echo -ne '' | time -f 'abc%^def' sleep 0 2>&1
PASS: time -f undefined percent
======================
echo -ne '' >input
echo -ne '' | time -f 'abc\ndef\txyz' sleep 0 2>&1
PASS: time -f backslash tab and newline
======================
echo -ne '' >input
echo -ne '' | time -f 'abc%%def' sleep 0 2>&1
PASS: time -f percent percent
PASS: touch-creates-file
PASS: touch-does-not-create-file
PASS: touch-touches-files-after-non-existent-file
PASS: tr-d-alnum-works
PASS: tr-d-works
PASS: tr-non-gnu
PASS: tr-rejects-wrong-class
PASS: tr-works
======================
echo -ne '' >input
echo -ne '[qwe]' | tr '[q-z]' '_Q-Z+'
PASS: tr does not treat [] in [a-z] as special
======================
echo -ne '' >input
echo -ne '19AFH\n' | tr -cd '[0-9A-F]'
PASS: tr understands 0-9A-F
======================
echo -ne '' >input
echo -ne '19AFH\n' | tr -cd '[:xdigit:]'
PASS: tr understands [:xdigit:]
======================
echo -ne '' >input
echo -ne '789abcxyz\n' | tr '[:digit:]y-z' 111111111123
PASS: tr does not stop after [:digit:]
======================
echo -ne '' >input
echo -ne '#0123456789ABCDEFGabcdefg\n' | tr '[:xdigit:]Gg' 1111111151242222333330xX
PASS: tr has correct xdigit sequence
======================
echo -ne '' >input
echo -ne '' | tree tree.tempdir
PASS: tree error opening dir
======================
echo -ne '' >input
echo -ne '' | cd tree2.tempdir && tree
PASS: tree single file
======================
echo -ne '' >input
echo -ne '' | cd tree3.tempdir && tree
PASS: tree nested directories and files
======================
echo -ne '' >input
echo -ne '' | tree tree2.tempdir tree3.tempdir
PASS: tree multiple directories
PASS: true-is-silent
PASS: true-returns-success
======================
echo -ne '' >input
echo -ne '        12345678\n' | unexpand
PASS: unexpand case 1
======================
echo -ne '' >input
echo -ne '         12345678\n' | unexpand
PASS: unexpand case 2
======================
echo -ne '' >input
echo -ne '          12345678\n' | unexpand
PASS: unexpand case 3
======================
echo -ne '' >input
echo -ne '       \t12345678\n' | unexpand
PASS: unexpand case 4
======================
echo -ne '' >input
echo -ne '      \t12345678\n' | unexpand
PASS: unexpand case 5
======================
echo -ne '' >input
echo -ne '     \t12345678\n' | unexpand
PASS: unexpand case 6
======================
echo -ne '' >input
echo -ne '123 \t 45678\n' | unexpand
PASS: unexpand case 7
======================
echo -ne '' >input
echo -ne 'a b\n' | unexpand
PASS: unexpand case 8
======================
echo -ne '' >input
echo -ne '        a       b    c' | unexpand 
PASS: unexpand flags 
======================
echo -ne '' >input
echo -ne '        a       b    c' | unexpand -f
PASS: unexpand flags -f
======================
echo -ne '' >input
echo -ne '        a       b    c' | unexpand -f -t8
PASS: unexpand flags -f -t8
======================
echo -ne '' >input
echo -ne '        a       b    c' | unexpand -t8 -f
PASS: unexpand flags -t8 -f
======================
echo -ne '' >input
echo -ne '        a       b    c' | unexpand -t8 --first-only
PASS: unexpand flags -t8 --first-only
======================
echo -ne '' >input
echo -ne '        a       b    c' | unexpand -a
PASS: unexpand flags -a
======================
echo -ne '' >input
echo -ne '        a       b    c' | unexpand -t8
PASS: unexpand flags -t8
======================
echo -ne '' >input
echo -ne '        a       b    c' | unexpand -a -t8
PASS: unexpand flags -a -t8
======================
echo -ne '' >input
echo -ne '        a       b    c' | unexpand -t4
PASS: unexpand flags -t4
======================
echo -ne '' >input
echo -ne '        a       b    c' | unexpand -a -t4
PASS: unexpand flags -a -t4
======================
echo -ne '' >input
echo -ne '        a       b    c' | unexpand -t4 -a
PASS: unexpand flags -t4 -a
======================
echo -ne '' >input
echo -ne '        a       b    c' | unexpand -t4 -f
PASS: unexpand flags -t4 -f
======================
echo -ne '' >input
echo -ne '        a       b    c' | unexpand -f -t4
PASS: unexpand flags -f -t4
======================
echo -ne '' >input
echo -ne '        a       b    c' | unexpand -t4 --first-only
PASS: unexpand flags -t4 --first-only
======================
echo -ne '' >input
echo -ne '        a       b    c' | unexpand --first-only -t4
PASS: unexpand flags --first-only -t4
======================
echo -ne '' >input
echo -ne '' | uniq nonexistent 2> /dev/null || echo yes
PASS: uniq (exit with error)
======================
echo -ne '' >input
echo -ne '' | uniq /dev/null && echo yes
PASS: uniq (exit success)
======================
echo -ne '' >input
echo -ne 'one\ntwo\ntwo\nthree\nthree\nthree\n' | uniq
PASS: uniq (default to stdin)
======================
echo -ne '' >input
echo -ne 'one\ntwo\ntwo\nthree\nthree\nthree\n' | uniq -
PASS: uniq - (specify stdin)
======================
echo -ne 'one\ntwo\ntwo\nthree\nthree\nthree\n' >input
echo -ne '' | uniq input
PASS: uniq input (specify file)
======================
echo -ne 'one\ntwo\ntwo\nthree\nthree\nthree\n' >input
echo -ne '' | uniq input actual > /dev/null
PASS: uniq input outfile (two files)
======================
echo -ne '' >input
echo -ne 'one\ntwo\ntwo\nthree\nthree\nthree\n' | uniq - actual
PASS: uniq (stdin) outfile
======================
echo -ne 'one\ntwo\ntwo\nthree\nthree\nthree\n' >input
echo -ne '' | uniq input -
PASS: uniq input - (specify stdout)
======================
echo -ne '' >input
echo -ne 'one\ntwo\ntwo\nthree\nthree\nthree\n' | uniq -c | sed 's/^[ \t]*//'
PASS: uniq -c (occurrence count)
======================
echo -ne '' >input
echo -ne 'one\ntwo\ntwo\nthree\nthree\nthree\n' | uniq -d
PASS: uniq -d (dups only)
======================
echo -ne '' >input
echo -ne 'cc	dd	ee8
bb	cc	dd8
aa	bb	cc9
' | uniq -f2 -s 3
PASS: uniq -f -s (skip fields and chars)
======================
echo -ne '' >input
echo -ne 'cc1
cc2
cc3
' | uniq -w 2
PASS: uniq -w (compare max characters)
======================
echo -ne '' >input
echo -ne 'aaccaa
aaccbb
bbccaa
' | uniq -s 2 -w 2
PASS: uniq -s -w (skip fields and compare max chars)
======================
echo -ne '' >input
echo -ne 'one\ntwo\ntwo\nthree\nthree\nthree\n' | uniq -d -u
PASS: uniq -u and -d produce no output
======================
echo -ne '' >input
echo -ne '' | unlzma <unlzma_issue_1.lzma 2>&1 >/dev/null; echo $?
PASS: unlzma (bad archive 1)
======================
echo -ne '' >input
echo -ne '' | unlzma <unlzma_issue_2.lzma 2>&1 >/dev/null; echo $?
PASS: unlzma (bad archive 2)
======================
echo -ne '' >input
echo -ne '' | unlzma <unlzma_issue_3.lzma 2>&1 >/dev/null; echo $?
PASS: unlzma (bad archive 3)
======================
echo -ne '' >input
echo -ne '' | unzip -q foo.zip foo/ && test -d foo && test ! -f foo/bar && echo yes
PASS: unzip (subdir only)
SKIPPED: unzip (bad archive)
======================
echo -ne '' >input
echo -ne '' | unzip -p ../unzip_bad_lzma_1.zip 2>&1; echo $?
PASS: unzip (archive with corrupted lzma 1)
======================
echo -ne '' >input
echo -ne '' | unzip -p ../unzip_bad_lzma_2.zip 2>&1; echo $?
PASS: unzip (archive with corrupted lzma 2)
PASS: uptime-works
======================
echo -ne '' >input
echo -ne '' | uuencode foo </dev/null | head -n 1 | grep -q 666 && echo yes
PASS: uuencode sets standard input mode correctly
======================
echo -ne '' >input
echo -ne 'The fast grey fox jumped over the lazy brown dog.\n' | uuencode bb_uuenc_test.out
PASS: uuencode correct encoding
======================
echo -ne '' >input
echo -ne 'The fast grey fox jumped over the lazy brown dog.\n' | uuencode -m bb_uuenc_test.out
PASS: uuencode correct base64 encoding
======================
echo -ne '' >input
echo -ne '' | r=`uuencode FILE`; echo "$r"; echo "$r" | uudecode -o -;
PASS: uuencode empty file
======================
echo -ne '' >input
echo -ne '' | r=`uuencode -m FILE`; echo "$r"; echo "$r" | uudecode -o -;
PASS: uuencode -m empty file
======================
echo -ne '' >input
echo -ne 'A' | r=`uuencode FILE`; echo "$r"; echo "$r" | uudecode -o -;
PASS: uuencode file 'A'
======================
echo -ne '' >input
echo -ne 'A' | r=`uuencode -m FILE`; echo "$r"; echo "$r" | uudecode -o -;
PASS: uuencode -m file 'A'
======================
echo -ne '' >input
echo -ne 'AB' | r=`uuencode FILE`; echo "$r"; echo "$r" | uudecode -o -;
PASS: uuencode file 'AB'
======================
echo -ne '' >input
echo -ne 'AB' | r=`uuencode -m FILE`; echo "$r"; echo "$r" | uudecode -o -;
PASS: uuencode -m file 'AB'
======================
echo -ne '' >input
echo -ne 'ABC' | r=`uuencode FILE`; echo "$r"; echo "$r" | uudecode -o -;
PASS: uuencode file 'ABC'
======================
echo -ne '' >input
echo -ne 'ABC' | r=`uuencode -m FILE`; echo "$r"; echo "$r" | uudecode -o -;
PASS: uuencode -m file 'ABC'
======================
echo -ne '' >input
echo -ne 'ABCD' | r=`uuencode FILE`; echo "$r"; echo "$r" | uudecode -o -;
PASS: uuencode file 'ABCD'
======================
echo -ne '' >input
echo -ne 'ABCD' | r=`uuencode -m FILE`; echo "$r"; echo "$r" | uudecode -o -;
PASS: uuencode -m file 'ABCD'
======================
echo -ne '' >input
echo -ne 'ABCDE' | r=`uuencode FILE`; echo "$r"; echo "$r" | uudecode -o -;
PASS: uuencode file 'ABCDE'
======================
echo -ne '' >input
echo -ne 'ABCDE' | r=`uuencode -m FILE`; echo "$r"; echo "$r" | uudecode -o -;
PASS: uuencode -m file 'ABCDE'
======================
echo -ne '' >input
echo -ne 'ABCDEF' | r=`uuencode FILE`; echo "$r"; echo "$r" | uudecode -o -;
PASS: uuencode file 'ABCDEF'
======================
echo -ne '' >input
echo -ne 'ABCDEF' | r=`uuencode -m FILE`; echo "$r"; echo "$r" | uudecode -o -;
PASS: uuencode -m file 'ABCDEF'
======================
echo -ne '' >input
echo -ne 'A\x0\xffZ' | r=`uuencode FILE`; echo "$r"; echo "$r" | uudecode -o -;
PASS: uuencode file 'A<NUL><0xff>Z'
======================
echo -ne '' >input
echo -ne 'A\x0\xffZ' | r=`uuencode -m FILE`; echo "$r"; echo "$r" | uudecode -o -;
PASS: uuencode -m file 'A<NUL><0xff>Z'
PASS: wc-counts-all
PASS: wc-counts-characters
PASS: wc-counts-lines
PASS: wc-counts-words
PASS: wc-prints-longest-line-length
PASS: wget--O-overrides--P
PASS: wget-handles-empty-path
PASS: wget-retrieves-google-index
PASS: wget-supports--P
PASS: which-uses-default-path
PASS: xargs-works
======================
echo -ne '' >input
echo -ne 'a\n_\nb\n' | xargs -E _
PASS: xargs -E _ stops on underscore
======================
echo -ne '' >input
echo -ne 'a\n_\nb\n' | xargs -E ''
PASS: xargs -E ''
======================
echo -ne '' >input
echo -ne 'a\n_\nb\n' | xargs -e
PASS: xargs -e without param
======================
echo -ne '' >input
echo -ne 'a\n_\nb\n' | xargs
PASS: xargs does not stop on underscore ('new' GNU behavior)
======================
echo -ne '' >input
echo -ne 'a\n' | xargs -s7 echo
PASS: xargs -s7 can take one-char input
======================
echo -ne '' >input
echo -ne '1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 00\n' | xargs -ts25 echo 2>&1 >/dev/null
PASS: xargs -sNUM test 1
======================
echo -ne '' >input
echo -ne '2 3 4 5 6 7 8 9 0 2 3 4 5 6 7 8 9 00\n' | xargs -ts25 echo 1 2>&1 >/dev/null
PASS: xargs -sNUM test 2
======================
echo -ne '' >input
echo -ne '' | seq 10000 99999 | sed -e 's/^/"/' -e 's/$/"/' | xargs echo | grep -o 99999; echo $?
PASS: xargs argument line too long
======================
echo -ne '' >input
echo -ne '1 2 3 4 5\n' | xargs -n1 echo
PASS: xargs -n1
======================
echo -ne '' >input
echo -ne '1 2 3 4 5\n' | xargs -n2 echo
PASS: xargs -n2
======================
echo -ne '' >input
echo -ne ' \n2\n\n4\n\n 6 6 \n \v \t 7\n\t\n\v\n' | xargs -I% echo '[%]'
PASS: xargs -I skips empty lines and leading whitespace
======================
echo -ne '' >input
echo -ne '\0' | xxd -p
PASS: xxd -p with one NUL
======================
echo -ne '' >input
echo -ne '\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0' | xxd -p
PASS: xxd -p with 30 NULs
======================
echo -ne '' >input
echo -ne '\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0' | xxd -p
PASS: xxd -p with 31 NULs
======================
echo -ne '' >input
echo -ne '30313233343536373736353433323130 30313233343536373736353433323130' | xxd -p -r
PASS: xxd -p -r
======================
echo -ne '' >input
echo -ne '   00000000: 3031 3233 3435 3637 3839 3a3b 3c3d 3e3f  0123456789:;<=>?
	00000010: 40                                       @
' | xxd -r
PASS: xxd -r skips leading whitespace and truncates at two spaces
======================
echo -ne '' >input
echo -ne '30 !31 !!32
' | xxd -p -r
PASS: xxd -p -r skips one bad char, truncates at two bad chars
======================
echo -ne '' >input
echo -ne '33 3!4 3!!5
36
' | xxd -p -r
PASS: xxd -p -r ignores the nibble with 2nd char bad
make -C /home/buildozer/aports/main/busybox/src/build-dynamic-extras \
KBUILD_SRC=/home/buildozer/aports/main/busybox/src/busybox-1.37.0 \
KBUILD_EXTMOD="" -f /home/buildozer/aports/main/busybox/src/busybox-1.37.0/Makefile check
rm -f .kernelrelease
echo 1.37.0 > .kernelrelease
sh /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/mkmakefile \
    /home/buildozer/aports/main/busybox/src/busybox-1.37.0 /home/buildozer/aports/main/busybox/src/build-dynamic-extras 1 37
  GEN     /home/buildozer/aports/main/busybox/src/build-dynamic-extras/Makefile
/home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/gen_build_files.sh /home/buildozer/aports/main/busybox/src/busybox-1.37.0 /home/buildozer/aports/main/busybox/src/build-dynamic-extras
/bin/sh /home/buildozer/aports/main/busybox/src/busybox-1.37.0/applets/busybox.mkll /home/buildozer/aports/main/busybox/src/build-dynamic-extras/include/autoconf.h include/applets.h > busybox.links
  Using /home/buildozer/aports/main/busybox/src/busybox-1.37.0 as source for busybox
if [ -f /home/buildozer/aports/main/busybox/src/busybox-1.37.0/.config ]; then \
	echo "  /home/buildozer/aports/main/busybox/src/busybox-1.37.0 is not clean, please run 'make mrproper'";\
	echo "  in the '/home/buildozer/aports/main/busybox/src/busybox-1.37.0' directory.";\
	/bin/false; \
fi;
if [ ! -d include2 ]; then mkdir -p include2; fi;
ln -fsn /home/buildozer/aports/main/busybox/src/busybox-1.37.0/include/asm-arm include2/asm
make -f /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/Makefile.build obj=scripts/basic
make -f /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/Makefile.build obj=applets
make -f /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/Makefile.build obj=scripts
make -f /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/Makefile.build obj=.
make -f /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/Makefile.build obj=applets
make -f /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/Makefile.build obj=archival
make -f /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/Makefile.build obj=archival/libarchive
make -f /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/Makefile.build obj=console-tools
make -f /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/Makefile.build obj=coreutils
make -f /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/Makefile.build obj=coreutils/libcoreutils
make -f /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/Makefile.build obj=debianutils
make -f /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/Makefile.build obj=klibc-utils
make -f /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/Makefile.build obj=e2fsprogs
make -f /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/Makefile.build obj=editors
make -f /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/Makefile.build obj=findutils
make -f /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/Makefile.build obj=init
make -f /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/Makefile.build obj=libbb
make -f /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/Makefile.build obj=libpwdgrp
make -f /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/Makefile.build obj=loginutils
make -f /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/Makefile.build obj=mailutils
make -f /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/Makefile.build obj=miscutils
make -f /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/Makefile.build obj=modutils
make -f /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/Makefile.build obj=networking
make -f /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/Makefile.build obj=networking/libiproute
make -f /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/Makefile.build obj=networking/udhcp
make -f /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/Makefile.build obj=printutils
make -f /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/Makefile.build obj=procps
make -f /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/Makefile.build obj=runit
make -f /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/Makefile.build obj=selinux
make -f /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/Makefile.build obj=shell
make -f /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/Makefile.build obj=sysklogd
make -f /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/Makefile.build obj=util-linux
make -f /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/Makefile.build obj=util-linux/volume_id
Trying libraries: crypt m rt
 Library crypt is not needed, excluding it
 Library m is not needed, excluding it
 Library rt is not needed, excluding it
Final link with: <none>
echo 'cmd_busybox_unstripped := /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/trylink "busybox_unstripped" "gcc" "-Os -fstack-clash-protection -Wformat -Werror=format-security -Wall -Wshadow -Wwrite-strings -Wundef -Wstrict-prototypes -Wunused -Wunused-parameter -Wunused-function -Wunused-value -Wmissing-prototypes -Wmissing-declarations -Wno-format-security -Wdeclaration-after-statement -Wold-style-definition -finline-limit=0 -fno-builtin-strlen -fomit-frame-pointer -ffunction-sections -fdata-sections -fno-guess-branch-probability -funsigned-char -falign-functions=1 -falign-jumps=1 -falign-labels=1 -falign-loops=1 -fno-unwind-tables -fno-asynchronous-unwind-tables -fno-builtin-printf -Oz -fpie -I/usr/include/utmps -pie" "-Wl,--as-needed,-O1,--sort-common " " applets/built-in.o" " archival/lib.a  archival/libarchive/lib.a  console-tools/lib.a  coreutils/lib.a  coreutils/libcoreutils/lib.a  debianutils/lib.a  klibc-utils/lib.a  e2fsprogs/lib.a  editors/lib.a  findutils/lib.a  init/lib.a  libbb/lib.a  libpwdgrp/lib.a  loginutils/lib.a  mailutils/lib.a  miscutils/lib.a  modutils/lib.a  networking/lib.a  networking/libiproute/lib.a  networking/udhcp/lib.a  printutils/lib.a  procps/lib.a  runit/lib.a  selinux/lib.a  shell/lib.a  sysklogd/lib.a  util-linux/lib.a  util-linux/volume_id/lib.a  archival/built-in.o  archival/libarchive/built-in.o  console-tools/built-in.o  coreutils/built-in.o  coreutils/libcoreutils/built-in.o  debianutils/built-in.o  klibc-utils/built-in.o  e2fsprogs/built-in.o  editors/built-in.o  findutils/built-in.o  init/built-in.o  libbb/built-in.o  libpwdgrp/built-in.o  loginutils/built-in.o  mailutils/built-in.o  miscutils/built-in.o  modutils/built-in.o  networking/built-in.o  networking/libiproute/built-in.o  networking/udhcp/built-in.o  printutils/built-in.o  procps/built-in.o  runit/built-in.o  selinux/built-in.o  shell/built-in.o  sysklogd/built-in.o  util-linux/built-in.o  util-linux/volume_id/built-in.o" "m crypt rt" "-Wl,--push-state,-Bstatic -lutmps -lskarnet -Wl,--pop-state" && /home/buildozer/aports/main/busybox/src/busybox-1.37.0/scripts/generate_BUFSIZ.sh --post include/common_bufsiz.h' > ./.busybox_unstripped.cmd
rm -f .old_version
strip -s --remove-section=.note --remove-section=.comment \
	busybox_unstripped -o busybox
chmod a+x busybox
test -d /home/buildozer/aports/main/busybox/src/build-dynamic-extras/testsuite || cp -pPR /home/buildozer/aports/main/busybox/src/busybox-1.37.0/testsuite /home/buildozer/aports/main/busybox/src/build-dynamic-extras
bindir=/home/buildozer/aports/main/busybox/src/build-dynamic-extras srcdir=/home/buildozer/aports/main/busybox/src/busybox-1.37.0/testsuite \
/bin/sh -c "cd /home/buildozer/aports/main/busybox/src/build-dynamic-extras/testsuite && /home/buildozer/aports/main/busybox/src/busybox-1.37.0/testsuite/runtest -v"
======================
echo -ne '' >input
echo -ne '' | ./unknown 2>&1
PASS: busybox as unknown name
======================
echo -ne '' >input
echo -ne '' | true | busybox --help busybox 2>&1 | cat
PASS: busybox --help busybox
======================
echo -ne '' >input
echo -ne '' | busybox 2>&1 | cat
PASS: busybox
======================
echo -ne '' >input
echo -ne '' | busybox unknown 2>&1
PASS: busybox unknown
======================
echo -ne '' >input
echo -ne '' | busybox --help 2>&1
PASS: busybox --help
SKIPPED: busybox cat
SKIPPED: busybox --help cat
======================
echo -ne '' >input
echo -ne '' | busybox --help unknown 2>&1
PASS: busybox --help unknown
======================
echo -ne '' >input
echo -ne '' | ./busybox-suffix 2>&1 | cat
PASS: ./busybox-suffix
======================
echo -ne '' >input
echo -ne '' | ./busybox-suffix unknown 2>&1
PASS: ./busybox-suffix unknown
======================
echo -ne '' >input
echo -ne '' | ./busybox-suffix --help 2>&1
PASS: ./busybox-suffix --help
SKIPPED: ./busybox-suffix cat
SKIPPED: ./busybox-suffix --help cat
======================
echo -ne '' >input
echo -ne '' | ./busybox-suffix --help unknown 2>&1
PASS: ./busybox-suffix --help unknown
>>> busybox: Entering fakeroot...
>>> busybox-static*: Running split function static...
>>> busybox-static*: Preparing subpackage busybox-static...
>>> busybox-static*: Stripping binaries
>>> busybox-static*: Running postcheck for busybox-static
>>> WARNING: busybox-static*: Packages must not put anything under /bin, use /usr/bin instead
>>> busybox-doc*: Running split function doc...
'usr/share/man' -> '/home/buildozer/aports/main/busybox/pkg/busybox-doc/usr/share/man'
>>> busybox-doc*: Preparing subpackage busybox-doc...
>>> busybox-doc*: Running postcheck for busybox-doc
>>> busybox-suid*: Running split function suid...
>>> busybox-suid*: Preparing subpackage busybox-suid...
>>> busybox-suid*: Stripping binaries
>>> busybox-suid*: Running postcheck for busybox-suid
>>> WARNING: busybox-suid*: Packages must not put anything under /bin, use /usr/bin instead
>>> ssl_client*: Running split function ssl_client...
>>> ssl_client*: Preparing subpackage ssl_client...
>>> ssl_client*: Stripping binaries
libfakeroot internal error: payload not recognized!
>>> ssl_client*: Running postcheck for ssl_client
>>> busybox-ifupdown*: Running split function ifupdown...
>>> busybox-ifupdown*: Preparing subpackage busybox-ifupdown...
>>> busybox-ifupdown*: Running postcheck for busybox-ifupdown
>>> busybox-binsh*: Running split function binsh...
>>> busybox-binsh*: Preparing subpackage busybox-binsh...
>>> busybox-binsh*: Running postcheck for busybox-binsh
>>> WARNING: busybox-binsh*: Packages must not put anything under /bin, use /usr/bin instead
>>> busybox-openrc*: Running split function openrc...
'etc/init.d/acpid' -> '/home/buildozer/aports/main/busybox/pkg/busybox-openrc/etc/init.d/acpid'
'etc/conf.d/crond' -> '/home/buildozer/aports/main/busybox/pkg/busybox-openrc/etc/conf.d/crond'
'etc/init.d/crond' -> '/home/buildozer/aports/main/busybox/pkg/busybox-openrc/etc/init.d/crond'
'etc/conf.d/klogd' -> '/home/buildozer/aports/main/busybox/pkg/busybox-openrc/etc/conf.d/klogd'
'etc/init.d/klogd' -> '/home/buildozer/aports/main/busybox/pkg/busybox-openrc/etc/init.d/klogd'
'etc/conf.d/ntpd' -> '/home/buildozer/aports/main/busybox/pkg/busybox-openrc/etc/conf.d/ntpd'
'etc/init.d/ntpd' -> '/home/buildozer/aports/main/busybox/pkg/busybox-openrc/etc/init.d/ntpd'
'etc/conf.d/rdate' -> '/home/buildozer/aports/main/busybox/pkg/busybox-openrc/etc/conf.d/rdate'
'etc/init.d/rdate' -> '/home/buildozer/aports/main/busybox/pkg/busybox-openrc/etc/init.d/rdate'
'etc/conf.d/syslog' -> '/home/buildozer/aports/main/busybox/pkg/busybox-openrc/etc/conf.d/syslog'
'etc/init.d/syslog' -> '/home/buildozer/aports/main/busybox/pkg/busybox-openrc/etc/init.d/syslog'
'etc/conf.d/loadkmap' -> '/home/buildozer/aports/main/busybox/pkg/busybox-openrc/etc/conf.d/loadkmap'
'etc/init.d/loadkmap' -> '/home/buildozer/aports/main/busybox/pkg/busybox-openrc/etc/init.d/loadkmap'
'etc/conf.d/watchdog' -> '/home/buildozer/aports/main/busybox/pkg/busybox-openrc/etc/conf.d/watchdog'
'etc/init.d/watchdog' -> '/home/buildozer/aports/main/busybox/pkg/busybox-openrc/etc/init.d/watchdog'
>>> busybox-openrc*: Preparing subpackage busybox-openrc...
>>> busybox-openrc*: Running postcheck for busybox-openrc
>>> busybox-mdev-openrc*: Running split function mdev_openrc...
'etc/init.d/mdev' -> '/home/buildozer/aports/main/busybox/pkg/busybox-mdev-openrc/etc/init.d/mdev'
>>> busybox-mdev-openrc*: Preparing subpackage busybox-mdev-openrc...
>>> busybox-mdev-openrc*: Running postcheck for busybox-mdev-openrc
>>> busybox-extras*: Running split function extras...
>>> busybox-extras*: Preparing subpackage busybox-extras...
>>> busybox-extras*: Stripping binaries
>>> busybox-extras*: Adding .post-install
>>> busybox-extras*: Adding .pre-deinstall
>>> busybox-extras*: Running postcheck for busybox-extras
>>> WARNING: busybox-extras*: Packages must not put anything under /bin, use /usr/bin instead
>>> busybox-extras-openrc*: Running split function extras_openrc...
'etc/init.d/dnsd' -> '/home/buildozer/aports/main/busybox/pkg/busybox-extras-openrc/etc/init.d/dnsd'
'etc/init.d/httpd' -> '/home/buildozer/aports/main/busybox/pkg/busybox-extras-openrc/etc/init.d/httpd'
'etc/init.d/inetd' -> '/home/buildozer/aports/main/busybox/pkg/busybox-extras-openrc/etc/init.d/inetd'
'etc/init.d/udhcpd' -> '/home/buildozer/aports/main/busybox/pkg/busybox-extras-openrc/etc/init.d/udhcpd'
>>> busybox-extras-openrc*: Preparing subpackage busybox-extras-openrc...
>>> busybox-extras-openrc*: Running postcheck for busybox-extras-openrc
>>> busybox*: Running postcheck for busybox
>>> WARNING: busybox*: Packages must not put anything under /bin, use /usr/bin instead
>>> WARNING: busybox*: Packages must not put anything under /sbin, use /usr/bin instead
>>> busybox*: Preparing package busybox...
>>> busybox*: Stripping binaries
>>> busybox*: Adding .post-install
>>> busybox*: Adding .post-upgrade
>>> busybox*: Adding .trigger
>>> busybox-binsh*: Scanning shared objects
>>> busybox-doc*: Scanning shared objects
>>> busybox-extras-openrc*: Scanning shared objects
>>> busybox-extras*: Scanning shared objects
>>> busybox-ifupdown*: Scanning shared objects
>>> busybox-mdev-openrc*: Scanning shared objects
>>> busybox-openrc*: Scanning shared objects
>>> busybox-static*: Scanning shared objects
>>> busybox-suid*: Scanning shared objects
>>> busybox*: Scanning shared objects
>>> ssl_client*: Scanning shared objects
>>> busybox-binsh*: Tracing dependencies...
	busybox=1.37.0-r8
>>> busybox-binsh*: Package size: 1.0 B
>>> busybox-binsh*: Compressing data...
>>> busybox-binsh*: Create checksum...
>>> busybox-binsh*: Create busybox-binsh-1.37.0-r8.apk
>>> busybox-doc*: Tracing dependencies...
>>> busybox-doc*: Package size: 40.4 KB
>>> busybox-doc*: Compressing data...
>>> busybox-doc*: Create checksum...
>>> busybox-doc*: Create busybox-doc-1.37.0-r8.apk
>>> busybox-extras-openrc*: Tracing dependencies...
	openrc>=0.24.1-r6
	busybox-extras
>>> busybox-extras-openrc*: Package size: 826.0 B
>>> busybox-extras-openrc*: Compressing data...
>>> busybox-extras-openrc*: Create checksum...
>>> busybox-extras-openrc*: Create busybox-extras-openrc-1.37.0-r8.apk
>>> busybox-extras*: Tracing dependencies...
	busybox=1.37.0-r8
	so:libc.musl-armv7.so.1
>>> busybox-extras*: Package size: 91.0 KB
>>> busybox-extras*: Compressing data...
>>> busybox-extras*: Create checksum...
>>> busybox-extras*: Create busybox-extras-1.37.0-r8.apk
>>> busybox-ifupdown*: Tracing dependencies...
>>> busybox-ifupdown*: Package size: 0.0 
>>> busybox-ifupdown*: Compressing data...
>>> busybox-ifupdown*: Create checksum...
>>> busybox-ifupdown*: Create busybox-ifupdown-1.37.0-r8.apk
>>> busybox-mdev-openrc*: Tracing dependencies...
	openrc>=0.24.1-r6
	mdev-conf
>>> busybox-mdev-openrc*: Package size: 745.0 B
>>> busybox-mdev-openrc*: Compressing data...
>>> busybox-mdev-openrc*: Create checksum...
>>> busybox-mdev-openrc*: Create busybox-mdev-openrc-1.37.0-r8.apk
>>> busybox-openrc*: Tracing dependencies...
	openrc>=0.24.1-r6
>>> busybox-openrc*: Package size: 2.6 KB
>>> busybox-openrc*: Compressing data...
>>> busybox-openrc*: Create checksum...
>>> busybox-openrc*: Create busybox-openrc-1.37.0-r8.apk
>>> busybox-static*: Tracing dependencies...
>>> busybox-static*: Package size: 857.3 KB
>>> busybox-static*: Compressing data...
>>> busybox-static*: Create checksum...
>>> busybox-static*: Create busybox-static-1.37.0-r8.apk
>>> busybox-suid*: Tracing dependencies...
	busybox=1.37.0-r8
	so:libc.musl-armv7.so.1
>>> busybox-suid*: Package size: 5.2 KB
>>> busybox-suid*: Compressing data...
>>> busybox-suid*: Create checksum...
>>> busybox-suid*: Create busybox-suid-1.37.0-r8.apk
>>> busybox*: Tracing dependencies...
	so:libc.musl-armv7.so.1
>>> busybox*: Package size: 705.6 KB
>>> busybox*: Compressing data...
>>> busybox*: Create checksum...
>>> busybox*: Create busybox-1.37.0-r8.apk
>>> ssl_client*: Tracing dependencies...
	so:libc.musl-armv7.so.1
	so:libcrypto.so.3
	so:libssl.so.3
>>> ssl_client*: Package size: 9.3 KB
>>> ssl_client*: Compressing data...
>>> ssl_client*: Create checksum...
>>> ssl_client*: Create ssl_client-1.37.0-r8.apk
>>> busybox: Build complete at Wed, 20 Nov 2024 10:59:26 +0000 elapsed time 0h 2m 13s
>>> busybox: Cleaning up srcdir
>>> busybox: Cleaning up pkgdir
>>> busybox: Uninstalling dependencies...
(1/16) Purging .makedepends-busybox (20241120.105713)
(2/16) Purging linux-headers (6.6-r1)
(3/16) Purging openssl-dev (3.3.2-r4)
(4/16) Purging utmps-dev (0.1.2.3-r2)
(5/16) Purging utmps-libs (0.1.2.3-r2)
(6/16) Purging utmps-static (0.1.2.3-r2)
(7/16) Purging skalibs-static (2.14.3.0-r0)
(8/16) Purging zip (3.0-r13)
(9/16) Purging unzip (6.0-r15)
(10/16) Purging git-perl (2.47.0-r0)
(11/16) Purging perl-git (2.47.0-r0)
(12/16) Purging perl-error (0.17029-r2)
(13/16) Purging perl (5.40.0-r3)
(14/16) Purging libbz2 (1.0.8-r6)
(15/16) Purging skalibs-dev (2.14.3.0-r0)
(16/16) Purging skalibs-libs (2.14.3.0-r0)
Executing busybox-1.37.0-r7.trigger
OK: 271 MiB in 101 packages
>>> busybox: Updating the main/armv7 repository index...
>>> busybox: Signing the index...