Blame tests/colors

Packit 33f14e
#!/bin/sh
Packit 33f14e
Packit 33f14e
. "${srcdir=.}/init.sh"; path_prepend_ ../src
Packit 33f14e
Packit 33f14e
TZ=UTC0
Packit 33f14e
export TZ
Packit 33f14e
Packit 33f14e
fail=0
Packit 33f14e
Packit 33f14e
echo a > a
Packit 33f14e
echo b > b
Packit 33f14e
Packit 33f14e
epoch='1970-01-01 00:00:00'
Packit 33f14e
touch -t 197001010000.00 a b
Packit 33f14e
Packit 33f14e
e=$(printf '\033')
Packit 33f14e
tab=$(printf '\t')
Packit 33f14e
Packit 33f14e
gen_exp_u()
Packit 33f14e
{
Packit 33f14e
    local epoch_plus="$epoch.000000000 +0000"
Packit 33f14e
    local rs=$(printf "$e[${rs}m")
Packit 33f14e
    local hd=$(printf "$e[${hd}m")
Packit 33f14e
    local ad=$(printf "$e[${ad}m")
Packit 33f14e
    local de=$(printf "$e[${de}m")
Packit 33f14e
    local ln=$(printf "$e[${ln}m")
Packit 33f14e
    printf '%s' \
Packit 33f14e
"$hd--- a$tab$epoch_plus
Packit 33f14e
+++ b$tab$epoch_plus
Packit 33f14e
$rs${ln}@@ -1 +1 @@$rs
Packit 33f14e
$de-a$rs
Packit 33f14e
$ad+b$rs
Packit 33f14e
"
Packit 33f14e
}
Packit 33f14e
Packit 33f14e
gen_exp_c()
Packit 33f14e
{
Packit 33f14e
    local epoch_posix_1003_1_2001="Thu Jan  1 00:00:00 1970"
Packit 33f14e
    local rs=$(printf "$e[${rs}m")
Packit 33f14e
    local hd=$(printf "$e[${hd}m")
Packit 33f14e
    local ad=$(printf "$e[${ad}m")
Packit 33f14e
    local de=$(printf "$e[${de}m")
Packit 33f14e
    local ln=$(printf "$e[${ln}m")
Packit 33f14e
    printf '%s' \
Packit 33f14e
"$hd*** a$tab$epoch_posix_1003_1_2001
Packit 33f14e
--- b$tab$epoch_posix_1003_1_2001
Packit 33f14e
$rs***************
Packit 33f14e
$ln*** 1 ****$rs
Packit 33f14e
$de! a$rs
Packit 33f14e
$ln--- 1 ----$rs
Packit 33f14e
$ad! b$rs
Packit 33f14e
"
Packit 33f14e
}
Packit 33f14e
Packit 33f14e
gen_exp_default()
Packit 33f14e
{
Packit 33f14e
    printf '%s' \
Packit 33f14e
"1c1
Packit 33f14e
< a
Packit 33f14e
---
Packit 33f14e
> b
Packit 33f14e
"
Packit 33f14e
}
Packit 33f14e
Packit 33f14e
gen_exp_default_colors()
Packit 33f14e
{
Packit 33f14e
    local rs=$(printf "$e[${rs}m")
Packit 33f14e
    local hd=$(printf "$e[${hd}m")
Packit 33f14e
    local ad=$(printf "$e[${ad}m")
Packit 33f14e
    local de=$(printf "$e[${de}m")
Packit 33f14e
    local ln=$(printf "$e[${ln}m")
Packit 33f14e
    printf '%s' \
Packit 33f14e
"${ln}1c1$rs
Packit 33f14e
$de< a$rs
Packit 33f14e
---
Packit 33f14e
$ad> b$rs
Packit 33f14e
"
Packit 33f14e
}
Packit 33f14e
Packit 33f14e
# Compare with some known outputs
Packit 33f14e
Packit 33f14e
rs=0 hd=1 ad=32 de=31 ln=36
Packit 33f14e
Packit 33f14e
returns_ 1 diff --color=auto a b > out || fail=1
Packit 33f14e
gen_exp_default > exp || framework_failure_
Packit 33f14e
compare exp out || fail=1
Packit 33f14e
Packit 33f14e
returns_ 1 env TERM=dumb diff ---presume-output-tty --color=auto a b > out \
Packit 33f14e
  || fail=1
Packit 33f14e
gen_exp_default > exp || framework_failure_
Packit 33f14e
compare exp out || fail=1
Packit 33f14e
Packit 33f14e
returns_ 1 diff --color=never a b > out || fail=1
Packit 33f14e
gen_exp_default > exp || framework_failure_
Packit 33f14e
compare exp out || fail=1
Packit 33f14e
Packit 33f14e
returns_ 1 diff a b > out || fail=1
Packit 33f14e
gen_exp_default > exp || framework_failure_
Packit 33f14e
compare exp out || fail=1
Packit 33f14e
Packit 33f14e
returns_ 1 diff --color=always a b > out || fail=1
Packit 33f14e
gen_exp_default_colors > exp || framework_failure_
Packit 33f14e
compare exp out || fail=1
Packit 33f14e
Packit 33f14e
returns_ 1 diff -u --color=always a b > out || fail=1
Packit 33f14e
gen_exp_u > exp || framework_failure_
Packit 33f14e
compare exp out || fail=1
Packit 33f14e
Packit 33f14e
returns_ 1 diff -c --color=always a b > out || fail=1
Packit 33f14e
gen_exp_c > exp || framework_failure_
Packit 33f14e
compare exp out || fail=1
Packit 33f14e
Packit 33f14e
rs=0 hd=33 ad=34 de=35 ln=36
Packit 33f14e
returns_ 1 diff -u --color=always \
Packit 33f14e
  --palette="rs=0:hd=33:ad=34:de=35:ln=36" a b > out || fail=1
Packit 33f14e
gen_exp_u > exp || framework_failure_
Packit 33f14e
compare exp out || fail=1
Packit 33f14e
Packit 33f14e
# Before the fix in http://debbugs.gnu.org/22067,
Packit 33f14e
# this test would trigger an infinite loop bug.
Packit 33f14e
mkfifo fifo
Packit 33f14e
printf '%*s-a' 1000000 > a
Packit 33f14e
printf '%*s-b' 1000000 > b
Packit 33f14e
head -c 10 < fifo > /dev/null &
Packit 33f14e
diff --color=always ---presume-output-tty a b > fifo
Packit 33f14e
test $? = 141 || fail=1
Packit 33f14e
Packit 33f14e
Exit $fail