• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

mknos / PerlPowerTools
62%
master: 62%

Build:
Build:
LAST BUILD BRANCH: tac-crash-empty
DEFAULT BRANCH: master
Repo Added 30 Sep 2023 04:59AM UTC
Token bpVpM03EQtpGlGDaXBN8IcfxiVSvQJoTJ regen
Build 3629 Last
Files 24
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

LAST BUILD ON BRANCH tac-crash-empty
branch: SELECT
CHANGE BRANCH
x
Sync Branches
  • No branch selected
  • addbib-0file
  • addbib-bad-option
  • addbib-ed
  • addbib-gcvar
  • addbib-reopen
  • addbib-shell
  • apply-a
  • apply-dflag
  • apply-many-num-args
  • apply-max
  • apply-needarg
  • apply-oddarg
  • apply-runcmd
  • apply-system
  • ar-aflag
  • ar-binmode
  • ar-continue
  • ar-filehandle
  • ar-getopt
  • ar-pod-hyphen
  • ar-printentry
  • ar-qflag
  • ar-readfail
  • ar-strict
  • ar-strict2
  • ar-strict3
  • ar-strmode
  • ar-t404
  • ar-tv-octmode
  • ar-usage
  • arch-compat
  • arith-getopt
  • arithmetic-typo
  • asa-dashdash
  • asa-filedash
  • awk-tmpfile3
  • banner-const
  • banner-getopt
  • base64-close
  • basename-dash2
  • basename-dirname
  • basename-suffix
  • bc-bignum-exp
  • bc-cleanup2
  • bc-dash
  • bc-div0
  • bc-doc
  • bc-errloop
  • bc-file0
  • bc-flooridx
  • bc-gcvar
  • bc-gcvar2
  • bc-mathlibx
  • bc-minarg
  • bc-mod0
  • bc-newpod
  • bc-require
  • bc-setarray
  • bc-sigint
  • bc-symtype
  • bc-trig
  • bc-unknown-func
  • bc-yyerr
  • bc-yyparse-cb
  • cal-currmon
  • cal-gcvar
  • cal-getopt
  • cal-split
  • cal-usage
  • cal-warnings
  • cat-bn
  • cat-close
  • cat-question
  • cat-raw
  • cat-ver
  • chgrp-emptygrp
  • chgrp-gid
  • chgrp-opt-end
  • chgrp-stat
  • chmod-chown-opt
  • chmod-err-lsfile
  • chmod-exitcode
  • chmod-modsync
  • chmod-readlink
  • chmod-usage
  • chown-emptystr
  • chown-filename
  • chown-num-gid
  • chown-uid
  • clear-ospeed
  • cmp-argc
  • cmp-checklen
  • cmp-eof
  • cmp-exit
  • cmp-getopt
  • cmp-hexlit
  • cmp-man
  • cmp-oct
  • cmp-skipnum
  • cmp-stdin
  • cmp-sysread
  • cmp-unpack
  • cmp-usage
  • col-buffer
  • col-checknum
  • col-escapes
  • col-hflag
  • col-lflag
  • col-nofile
  • col-tidy
  • col-usage
  • col-ver
  • colrm-print
  • comm-stdin
  • comm-strict
  • cp-dashdash
  • cp-filecopy
  • cp-gclib
  • cp-iprompt
  • cp-optbundl
  • cp-srcdir
  • cp-sysexit
  • cp-usage
  • cut-bfix
  • cut-bflag
  • cut-checknum
  • cut-delim-regex
  • cut-exit
  • cut-f-field
  • cut-field0
  • cut-getopt
  • cut-open-exitcode
  • cut-optb-optf
  • cut-overlapb
  • cut-range1
  • date-e-space
  • date-quarter
  • date-tidy
  • date-usage
  • dc-strict
  • deroff-stdin
  • diff-catfile
  • diff-contextlen
  • diff-deadsub
  • diff-ed
  • diff-edparam
  • diff-empty2
  • diff-getopt
  • diff-lcsmatrix
  • diff-output-ed
  • diff-qcompat
  • diff-s
  • diff-stdin
  • diff-stdindir
  • diff-strict
  • diff-style2
  • dirname-dash2
  • dirname-pod
  • du-badenv
  • du-exitcode
  • du-notraverse
  • du-opendir-202512
  • du-stat
  • du-unixpath
  • du-usage
  • ed-0w
  • ed-badfile
  • ed-bytecount
  • ed-calcline1
  • ed-cleanup
  • ed-cmdret
  • ed-cmdtab
  • ed-debugstr
  • ed-dflag
  • ed-dirty-file
  • ed-e-s
  • ed-ededit
  • ed-edhelp
  • ed-edinsert
  • ed-editorder
  • ed-edread
  • ed-edsubs
  • ed-emptyfile
  • ed-emptyfile2
  • ed-eof1
  • ed-epipe
  • ed-escline
  • ed-exitcode
  • ed-f-dir
  • ed-f-dot
  • ed-file404
  • ed-fname
  • ed-g-savpat
  • ed-gcvar
  • ed-getaddr-max
  • ed-getaddr-nomatch
  • ed-getaddr-re
  • ed-getaddr-re2
  • ed-global
  • ed-globalname
  • ed-gnd
  • ed-gns
  • ed-hat
  • ed-icmd-range
  • ed-illegal-file
  • ed-inputfunc
  • ed-lcmd2
  • ed-maddr
  • ed-mark
  • ed-mark0
  • ed-move-tidy
  • ed-nesc
  • ed-newline
  • ed-nl
  • ed-nomatch
  • ed-parsebas
  • ed-parsebas2
  • ed-percent
  • ed-pipe
  • ed-pipebuf
  • ed-plusn-addr
  • ed-prefix-g
  • ed-r-fname
  • ed-readaddr
  • ed-rel-line
  • ed-repeat
  • ed-repeat2
  • ed-rtidy
  • ed-s-compat
  • ed-s-compat2
  • ed-scmd
  • ed-search3
  • ed-searchback
  • ed-searchforward
  • ed-semicolon
  • ed-setcurline
  • ed-shortrange
  • ed-snomatch
  • ed-terminated-line
  • ed-tidy
  • ed-trailingspace
  • ed-undo
  • ed-undo2
  • ed-unsaved
  • ed-vcmd
  • ed-vflag
  • ed-w-pipe
  • ed-w-savefile
  • ed-wq2
  • env-optend
  • env-u-202512
  • env-usage
  • expand-backsp
  • expand-badincr
  • expand-copy
  • expand-dash2
  • expand-slurp
  • expand-stdin
  • expand-tabstop
  • expr-dash2
  • expr-div0
  • expr-eqalias
  • expr-new
  • expr-plusprefx
  • expr-strict
  • factor-die
  • factor-pod
  • fgrep-c
  • fgrep-fname
  • fgrep-i-list
  • fgrep-stdin
  • file-esc-v
  • file-flist
  • file-magic-hexesc
  • file-stdin
  • file-wrongerr
  • find-longerr
  • find-pod
  • fish-deckinit
  • fish-eof
  • fish-gcvar
  • fish-shuffle
  • fmt-direxit
  • fmt-exitcode
  • fmt-getopt
  • fmt-getopt2
  • fmt-minw
  • fmt-new
  • fold-assert
  • fold-bsloop
  • fold-bytefunc
  • fold-getopt
  • fold-stdin
  • fold-terminator
  • fortune-abspath
  • fortune-blacklist
  • fortune-getopt
  • fortune-optv
  • fortune-sleep
  • glob-dead
  • glob-debug
  • glob-dirsep
  • glob-err-msg
  • glob-gcvar2
  • glob-mac
  • glob-proto
  • glob-tilde
  • glob-tildeusr
  • grep-0
  • grep-Fx
  • grep-Ig
  • grep-Lflag
  • grep-binary
  • grep-closure
  • grep-context
  • grep-ctxa
  • grep-dash
  • grep-docs
  • grep-emptypat
  • grep-env
  • grep-env2
  • grep-f-cleanup
  • grep-f-empty
  • grep-f0
  • grep-fempty
  • grep-fgrep
  • grep-fgrep2
  • grep-filehandle
  • grep-h
  • grep-highlight
  • grep-many-ef
  • grep-max
  • grep-para
  • grep-parseargs
  • grep-pod-e-f
  • grep-qshort
  • grep-r-catfile
  • grep-r-nosort
  • grep-r2
  • grep-sflag
  • grep-shell
  • grep-sq
  • grep-stdinmsg
  • grep-study
  • grep-tflag
  • grep-tidy
  • grep-ver
  • grep-warnqq
  • grep-zgrep
  • hangman-202512
  • hangman-eof
  • hangman-wordlist
  • hangman-words
  • head-close
  • head-dashed
  • head-n-202512
  • head-nplus
  • head-num
  • hexdump-dir
  • hexdump-factor
  • hexdump-factor2
  • hexdump-file0
  • hexdump-uflag
  • hexdump-vflag
  • id-aflag
  • id-exit
  • id-groot
  • id-help
  • id-root
  • id-troppo
  • install-Mflag
  • install-bak
  • install-m0
  • install-mod
  • install-msym
  • install-nulmode
  • install-subdir
  • install-uid0
  • install-unix
  • install-usage1
  • install-usage2
  • join-av
  • join-dashdash
  • join-decl
  • join-explicit-fields
  • join-h
  • join-regex-delim
  • join-stdin
  • join-usage
  • kill-badsig
  • kill-lflag
  • kill-numsig
  • kill-regex2
  • kill-sigcheck
  • kill-usage
  • ln-1arg
  • ln-getopt
  • ln-version
  • lock-echo
  • lock-usage
  • look-1file
  • look-exitcode
  • look-loops
  • ls-R-columns
  • ls-closedir
  • ls-columns
  • ls-default-1
  • ls-filearg
  • ls-getcols
  • ls-mywarn-202512
  • ls-newline-202512
  • ls-stat-bug
  • ls-strict
  • ls-totals
  • ls-var-alias
  • ls-version
  • ls-w-202603
  • mail-eof
  • mail-exit
  • mail-f-usage
  • mail-mbox-write
  • mail-msg-idx
  • mail-msg0
  • mail-opt-f
  • mail-strict
  • mail-tmpfile
  • mail-trimcmd
  • mail-ver
  • mail-vipath
  • mail-visual
  • mail-zero-id
  • master
  • maze-getopt
  • maze-prompt
  • maze-usage
  • mkdir-errstr-202512
  • mkdir-mode
  • mkdir-octmode
  • mkdir-p-err
  • mkdir-version
  • mkfifo-continue
  • mkfifo-getmode
  • mkfifo-mode
  • mknos-nl-b0
  • moo-correct
  • moo-eof
  • moo-range-max
  • moo-usage
  • morse-foldcase
  • morse-runtime
  • morse-symfix
  • nl-close
  • nl-nol
  • nl-s0
  • nl-usage
  • nl-validtype
  • nl-version
  • od-D
  • od-aflag
  • od-b
  • od-bigb
  • od-defmode
  • od-dumpline
  • od-dupeline
  • od-eflag
  • od-files
  • od-glbl-len
  • od-hex4
  • od-hflag
  • od-o4
  • od-offset
  • od-pad0
  • od-short
  • od-t-more
  • od-t-x8
  • od-tf
  • od-tx124
  • par-badopt
  • paste-dash
  • paste-loop
  • paste-loop2
  • paste-mod
  • paste-noarg
  • paste-posix-delim
  • patch-2type
  • patch-Dval
  • patch-apply3
  • patch-chdir
  • patch-ctx-eof
  • patch-ctx-range
  • patch-devnull
  • patch-dir2
  • patch-dryrun
  • patch-ed-acmd
  • patch-ed-range
  • patch-edcmd
  • patch-edend
  • patch-edpipe
  • patch-exitcode
  • patch-fuzznum
  • patch-getopt
  • patch-ifdef-doc
  • patch-norm-arange
  • patch-norm-badrange
  • patch-objdata
  • patch-odash
  • patch-outopen
  • patch-repeat-eof
  • patch-reverse-check
  • patch-stdin
  • patch-strict
  • patch-throw-oo
  • patch-typo-202608
  • perlpowertools-404
  • perlpowertools-hexdump
  • pig-sync
  • pig-vflag
  • ping-usage
  • pom-badenv
  • pom-getopt
  • pom-stdlib
  • pr-3x
  • pr-aflag
  • pr-checknum
  • pr-col0
  • pr-header
  • pr-loop
  • pr-margin
  • pr-opt-end
  • pr-stdin
  • primes-end0
  • primes-interactive
  • primes-range
  • primes-usage
  • primes-valid
  • printenv-pod
  • printenv-question
  • printf-badfmt
  • printf-hex
  • pwd-dash2
  • pwd-getcwd
  • random-compat
  • random-gcvar
  • rm-chmod
  • rm-fname-dash
  • rm-longopt
  • rm-par
  • rm-podusage
  • rm-prompt-ro
  • rm-usage
  • rmdir-err
  • rmdir-stat
  • shar-binfile
  • shar-dep
  • shar-dir
  • shar-dirty
  • shar-find
  • shar-quot
  • sleep-extra
  • sort-dir
  • sort-manual
  • sort-o
  • sort-usage
  • sort-yvalid
  • spell-close
  • spell-extralist
  • spell-gcvar
  • spell-interactive
  • spell-varalias
  • split-dead
  • split-help
  • split-p0
  • split-stdinfix
  • split-strict
  • split-valid
  • strings-count
  • strings-n10
  • strings-stdin
  • sum-a-and-o
  • sum-progname
  • sum-sha
  • sum-sha3
  • tac-bufsz
  • tac-crash-empty
  • tac-exitcode
  • tac-getopt2
  • tac-usage
  • tac-usage2
  • tail-bundle
  • tail-checknum
  • tail-continue
  • tail-dirarg
  • tail-f-catfile
  • tail-header
  • tail-hflag
  • tail-incompat-opt
  • tail-n-202606
  • tail-n0
  • tail-notf-dir
  • tail-r-default
  • tail-refargs
  • tailf-sig
  • tar-dir
  • tar-extract
  • tar-stdin
  • tar-usage
  • tee-dashdash
  • tee-iflag
  • tee-n
  • tee-nflag
  • tee-open
  • tee-strict
  • tee-unbuffer
  • tee-unbuffer2
  • touch-dir
  • touch-exitcode
  • touch-fflag
  • touch-r0
  • touch-rt
  • touch-t0
  • touch-typo
  • tr-cc
  • tr-del
  • tr-getopt
  • tr-nobug
  • truefalseopt
  • tsort-pairs
  • tsort-pairs2
  • tsort-presence
  • tsort-stdin
  • uname-args
  • unespand-dashdash
  • unexpand-slurp
  • unexpand-stdin
  • unexpand-usage
  • uniq-checknum
  • uniq-files
  • uniq-optend
  • uniq-pod
  • uniq-pod-202512
  • uniq-usage
  • units-badfile
  • units-div0
  • units-file
  • units-gcvar
  • units-usage
  • unshar-usage
  • uudecode-iflag
  • uuencode-dir
  • uuencode-stdin
  • wc-basename
  • wc-c-cw
  • wc-exitcode
  • wc-getopt
  • wc-wflag
  • what-dir
  • what-dup
  • what-exit
  • what-fname
  • what-matchtxt
  • what-nest
  • what-sflag
  • what-stdin
  • which-dirsep
  • which-exitcode
  • which-noarg
  • which-silent
  • whoami-argc
  • whoami-fact
  • words-2arg
  • words-dir
  • wump-decl
  • wump-gcvar
  • xargs-eof
  • xargs-man
  • xargs-optl
  • xargs-stdin
  • xargs0
  • yes-bsd
  • zgrep

09 Sep 2026 04:07AM UTC coverage: 61.781%. Remained the same
34309748599

push

github

web-flow
tac: fix crash on empty file

* If the file argument refers to an empty file, tac failed with a "bad read" error
* Technically the read did not fail so the error is a false positive
* Address this by differentiating between 0 and undef return value of sysread (in this case we got 0, but both had the same result)

2074 of 3357 relevant lines covered (61.78%)

710.22 hits per line

Relevant lines Covered
Build:
Build:
3357 RELEVANT LINES 2074 COVERED LINES
710.22 HITS PER LINE
Source Files on master
  • Tree
  • List 24
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
34309748599 tac-crash-empty tac: fix crash on empty file * If the file argument refers to an empty file, tac failed with a "bad read" error * Technically the read did not fail so the error is a false positive * Address this by differentiating between 0 and undef return va... push 09 Sep 2026 04:15AM UTC web-flow github
61.78
34069700467 master join: fix crash for '(' delimiter (#1057) * As per commit b345448fb for cut(1) * The -t option expects a literal character to use as a delimiter for reading input files, but it was interpreted as a regex in split()... push 07 Sep 2026 12:30AM UTC web-flow github
61.78
34015014067 join-regex-delim join: fix crash for '(' delimiter * As per commit b345448fb for cut(1) * The -t option expects a literal character to use as a delimiter for reading input files, but it was interpreted as a regex in split() * Appl... push 06 Sep 2026 05:54AM UTC web-flow github
61.78
34013943492 master paste: support posix delimiter escapes (#1056) * Microsoft-365-Copilot static analysis found a crash in paste when the empty string is used as a delimiter * POSIX document suggests that -d '\0' is intended for an empty string delimiter [1] * A... push 06 Sep 2026 05:31AM UTC web-flow github
61.78
33967901527 paste-posix-delim paste: support posix delimiter escapes * Microsoft-365-Copilot static analysis found a crash in paste when the empty string is used as a delimiter * POSIX document suggests that -d '\0' is intended for an empty string delimiter [1] * Add a fun... push 05 Sep 2026 01:09PM UTC web-flow github
61.78
33967476883 master cut: correct delimiter usage in regex (#1055) * A backslash is a valid field delimiter for cut, but it caused an error here because it was unintentionally interpreted into the regex * Some existing scripts use \Q & \E pair in the regex to avoid ... push 05 Sep 2026 01:04PM UTC web-flow github
61.78
33880992159 cut-delim-regex cut: correct delimiter usage in regex * A backslash is a valid field delimiter for cut, but it caused an error here because it was unintentionally interpreted into the regex * Some existing scripts use \Q & \E pair in the regex to avoid this kin... push 04 Sep 2026 02:07PM UTC web-flow github
61.78
33880316468 master cut: use error exit-code if a file argument does not open (#1054) * cut: use error exit-code if a file argument does not open * When testing cut today I discovered that it uses the idiomatic while(<>) loop for reading input in handle_b() and han... push 04 Sep 2026 01:59PM UTC web-flow github
61.78
33742017922 cut-open-exitcode existing warn() messages no longer need $me push 03 Sep 2026 10:06AM UTC web-flow github
61.78
33708823423 cut-open-exitcode cut: use error exit-code if a file argument does not open * When testing cut today I discovered that it uses the idiomatic while(<>) loop for reading input in handle_b() and handle_f() * If file arguments are provided, all should process correct... push 03 Sep 2026 02:51AM UTC web-flow github
61.78
See All Builds (3628)

Badge your Repo: PerlPowerTools

We detected this repo isn’t badged! Grab the embed code to the right, add it to your repo to show off your code coverage, and when the badge is live hit the refresh button to remove this message.

Could not find badge in README.

Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

Refresh
  • Settings
  • Repo on GitHub
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc