Age | Commit message (Collapse) | Author |
|
Or more accurately, s@[[:space:]@]@replace@ which can't treat the @ in
[] as a delimiter but has to know about nested [[]] to make that decision.
|
|
|
|
seek so seek time is included in total.
|
|
|
|
|
|
Plus basic tests.
|
|
|
|
Support hex (requested by users).
Support status=noxfer and status=none (requested by users).
Fix status output.
Clarify large numbers in --help output.
Use O_TRUNC rather than ftruncate unless we're also seeking.
New tests.
Also partial cleanup (reuse of existing code, removal of non-GLOBALS globals,
and merge dd_main and do_dd).
|
|
|
|
|
|
|
|
is explicitly outright insane (%b handles octal escapes differently for no
obvious reason).
|
|
|
|
The man page says they also return 2 for syntax errors and 3 for "fatal
error: out of memory etc", but I don't know how to implement that and
don't need it (or have any reason to believe anyone needs it).
Bug: 29092208
|
|
I don't know that anyone cares, but these failures made me think I'd
broken something while testing the -SIGNAL patch.
The -s parsing wasn't taking into account that -s 0 is a special case,
and the -o test was assuming that pkill can tell the difference between
two processes started at roughly the same time. Hopefully there's
higher-resolution data available that can avoid the need for yet another
sleep in the tests.
|
|
The use of TT.time to determine whether to use \r or \n is a little odd,
but let's stick with that for now. Correct the spelling of millitime and
add a test.
|
|
fix two tests looking for a too-specific error message (so TEST_HOST failed).
|
|
(This was supposed to be in the earlier patch, but I was fooled by
"git commit -a" yet again...)
|
|
replace with testing 2 known files out of blkid tests, and add badcrc test.
|
|
|
|
|
|
This time with a test.
|
|
We were doing two 32-byte memset()s instead of two 16-byte memset()s.
'dir' referred to the instance (array of 2) and not the struct type.
Add some test coverage for diff, including a case that hit this bug.
The bug was found by running cp.test under AddressSanitizer, since it
happens to use diff.
|
|
|
|
|
|
This fixes a failing test case in mv.test.
Test changes:
- Add coverage for -i (interactive).
- Better descriptions, better formatting, and removed some redundant
cases.
|
|
When passed an empty string, glibc's basename() returns a pointer to the
string "." in read-only memory. If an empty suffix is given, it fits
the condition of being shorter than the path, so we try to overwrite the
null byte and crash. Fix this by just ignoring empty suffixes; they
don't do anything anyway.
|
|
effect of "sed -e 'a\'" with no trailing line). But there's an actual user,
and it's not hard to implement, and it's not hard to implement, and there
isn't an obvious _other_ way to do it, so add the behavior and a test for it.
Fix some bad/missing comments while I was there, and add a couple TODOs.
|
|
instead, move tests/blkid into tests/files/blkid.
|
|
|
|
vfat labels have a fixed space allocated for them. In the case of a
shorter label, the remaining bytes are padded with spaces. A vfat
filesystem with no label (i.e. that will show up in Windows as "Local
Disk (X:)" or "Removable Disk (X:)") is stored as "NO NAME ".
Both of these changes match behavior from util-linux.
|
|
Fix memory leaks in regex. Simplify regex check (if we matched, subexpression
had to match). Don't exit() from a command, set exitval and return.
|
|
|
|
|
|
The tests/*.test files shouldn't explicitly exit, because they are
sourced in scripts/test.sh. No tests after sed were being run.
|
|
eliminate syntax_error() function (just call error_exit() directly),
eliminate advance() wrapper, pipe expected error messages in test to /dev/null
|
|
All tests pass now; this fixes the 2 remaining failures, including a
segfault.
The structure of the code has changed a lot -- instead of having a tiny
function per operator, we have eval_op() which does common type coercion
and then evaluates the operator. I tried writing it a couple different
ways, and this was the cleanest.
The OPS table now contains the operator string, precedence level,
signature for type coercion, and operator ID.
|
|
expr now uses the precedence table specified by POSIX, implemented using
the "precedence climbing" algorithm. See the references at the top of
eval_expr().
This fixes 3 of 4 failing tests.
I also added more tests for correct behavior and for syntax errors.
This includes a new test exposing a segfault, related to type coercion.
|
|
|
|
Found by afl-fuzz.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SELinux denials include hex-encoded paths in the log messages; xxd -r -p is
a convenient way to decode them.
The heuristics are a little weird to my mind, but match the documentation
and observed behavior.
|