diff options
author | Nico Williams <nico@cryptonector.com> | 2017-04-29 13:00:52 -0500 |
---|---|---|
committer | William Langford <wlangfor@gmail.com> | 2017-04-29 14:00:52 -0400 |
commit | 6d89e297febdbcbad4ecf201e56fc8ec99f67137 (patch) | |
tree | cc70c53bf330c65c8cabe10152c89ce9805c5e12 /tests | |
parent | 32d8f2000a80c3702b04f3423180ebfeaa503eb7 (diff) | |
download | jq-6d89e297febdbcbad4ecf201e56fc8ec99f67137.tar.gz |
Add JQ_COLORS env var for color config (fix #1252)
Diffstat (limited to 'tests')
-rwxr-xr-x | tests/shtest | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/tests/shtest b/tests/shtest index cec1fc5..af1b159 100755 --- a/tests/shtest +++ b/tests/shtest @@ -244,4 +244,58 @@ if [ "`$VALGRIND $Q $JQ -n '"xyz\n"|halt_error(1)' 2>&1`" != xyz ]; then exit 1 fi +# Check $JQ_COLORS +$JQ -Ccn . > $d/color +printf '\033[1;30mnull\033[0m\n' > $d/expect +cmp $d/color $d/expect +JQ_COLORS='4;31' $JQ -Ccn . > $d/color +printf '\033[4;31mnull\033[0m\n' > $d/expect +cmp $d/color $d/expect +JQ_COLORS='1;30:0;31:0;32:0;33:0;34:1;35:1;36' \ + $JQ -Ccn '[{"a":true,"b":false},123,null]' > $d/color +( +printf '\033[1;35m[\033[1;36m{' +printf '\033[0m\033[34;1m"a"\033[' +printf '0m\033[1;36m:\033[0m\033[' +printf '0;32mtrue\033[0m\033[1' +printf ';36m,\033[0m\033[34;1m' +printf '"b"\033[0m\033[1;36m:\033' +printf '[0m\033[0;31mfalse\033' +printf '[0m\033[1;36m\033[1;36' +printf 'm}\033[0m\033[1;35m,\033[' +printf '0;33m123\033[0m\033[1;' +printf '35m,\033[1;30mnull\033' +printf '[0m\033[1;35m\033[1;35' +printf 'm]\033[0m\n' +) > $d/expect +cmp $d/color $d/expect + +# Check garbage in JQ_COLORS. We write each color sequence into a 16 +# char buffer that needs to hold ESC [ <color> m NUL, so each color +# sequence can be no more than 12 chars (bytes). These emit a warning +# on stderr. +set -vx +echo 'Failed to set $JQ_COLORS' > $d/expect_warning +$JQ -Ccn '[{"a":true,"b":false},123,null]' > $d/expect +JQ_COLORS='garbage;30:*;31:,;3^:0;$%:0;34:1;35:1;36' \ + $JQ -Ccn '[{"a":true,"b":false},123,null]' > $d/color 2>$d/warning +cmp $d/color $d/expect +cmp $d/warning $d/expect_warning +JQ_COLORS='1234567890123456789;30:0;31:0;32:0;33:0;34:1;35:1;36' \ + $JQ -Ccn '[{"a":true,"b":false},123,null]' > $d/color 2>$d/warning +cmp $d/color $d/expect +cmp $d/warning $d/expect_warning +JQ_COLORS='1;31234567890123456789:0;31:0;32:0;33:0;34:1;35:1;36' \ + $JQ -Ccn '[{"a":true,"b":false},123,null]' > $d/color 2>$d/warning +cmp $d/color $d/expect +cmp $d/warning $d/expect_warning +JQ_COLORS='1234567890123456;1234567890123456:1234567890123456;1234567890123456:1234567890123456;1234567890123456:1234567890123456;1234567890123456:1234567890123456;1234567890123456:1234567890123456;1234567890123456:1234567890123456;1234567890123456' \ + $JQ -Ccn '[{"a":true,"b":false},123,null]' > $d/color 2>$d/warning +cmp $d/color $d/expect +cmp $d/warning $d/expect_warning +JQ_COLORS="0123456789123:0123456789123:0123456789123:0123456789123:0123456789123:0123456789123:0123456789123:0123456789123:" \ + $JQ -Ccn '[{"a":true,"b":false},123,null]' > $d/color 2>$d/warning +cmp $d/color $d/expect +cmp $d/warning $d/expect_warning + exit 0 |