view tests/echo.test @ 1563:3d32f9523584 draft

Fix "tail -c 10" segfault spotted by Lukasz Szpakowski. Once we've read through the initial TT.bytes backlog we discard the extra data, meaning we adjust the remaining amount each time so the overflow is zero bytes. We were doing the adjustment right, but not zeroing out the overflow counter after we did so.
author Rob Landley <rob@landley.net>
date Wed, 19 Nov 2014 14:29:53 -0600
parents 8700cbe1cb29
children
line wrap: on
line source

#!/bin/bash

[ -f testing.sh ] && . testing.sh

# This one's tricky both because echo is a shell builtin (so $PATH is
# irrelevant) and because the "result" field is parsed with echo -e.
# To make it work, "$CMD" is an explicit path to the command being tested,
# so "result" keeps using the shell builtin but we test the one in toybox.

CMD="$(which echo)"

#testing "name" "command" "result" "infile" "stdin"

testing "echo" "$CMD && echo yes" "\nyes\n" "" ""
testing "echo 1 2 3" "$CMD one  two	three" "one two three\n" "" ""
testing "echo with spaces" "$CMD 'one  two	three'" \
	"one  two	three\n" "" ""
testing "echo -n" "$CMD -n" "" "" ""
testing "echo -n one" "$CMD -n one" "one" "" ""
testing "echo one -n" "$CMD one -n" "one -n\n" "" ""
testing "echo -en" "$CMD -en 'one\ntwo'" "one\ntwo" "" ""
testing "echo --hello" "$CMD --hello" "--hello\n" "" ""
testing "echo -e all" "$CMD -e '\a\b\c\f\n\r\t\v\\\0123'" \
	"\a\b\c\f\n\r\t\v\\\0123\n" "" ""
testing "echo -nex hello" "$CMD -nex hello" "-nex hello\n" "" ""

# Octal formatting tests
testing "echo -e octal values" \
	"$CMD -ne '\01234 \0060 \060 \0130\0131\0132 \077\012'" \
	"S4 0 0 XYZ ?\n" "" ""

# Hexadecimal value tests
testing "echo -e hexadecimal values" \
	"$CMD -ne '\x534 \x30 \x58\x59\x5a \x3F\x0A'"\
	"S4 0 XYZ ?\n" "" ""

testing "echo -e \p" "$CMD -e '\\p'" "\\p\n" "" ""