xref: /netbsd-src/external/bsd/zstd/dist/tests/gzip/keep.sh (revision 3117ece4fc4a4ca4489ba793710b60b0d26bab6c)
1*3117ece4Schristos#!/bin/sh
2*3117ece4Schristos# Exercise the --keep option.
3*3117ece4Schristos
4*3117ece4Schristos# Copyright (C) 2013-2016 Free Software Foundation, Inc.
5*3117ece4Schristos
6*3117ece4Schristos# This program is free software: you can redistribute it and/or modify
7*3117ece4Schristos# it under the terms of the GNU General Public License as published by
8*3117ece4Schristos# the Free Software Foundation, either version 3 of the License, or
9*3117ece4Schristos# (at your option) any later version.
10*3117ece4Schristos
11*3117ece4Schristos# This program is distributed in the hope that it will be useful,
12*3117ece4Schristos# but WITHOUT ANY WARRANTY; without even the implied warranty of
13*3117ece4Schristos# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14*3117ece4Schristos# GNU General Public License for more details.
15*3117ece4Schristos
16*3117ece4Schristos# You should have received a copy of the GNU General Public License
17*3117ece4Schristos# along with this program.  If not, see <https://www.gnu.org/licenses/>.
18*3117ece4Schristos# limit so don't run it by default.
19*3117ece4Schristos
20*3117ece4Schristos. "${srcdir=.}/init.sh"; path_prepend_ .
21*3117ece4Schristos
22*3117ece4Schristosecho fooooooooo > in || framework_failure_
23*3117ece4Schristoscp in orig || framework_failure_
24*3117ece4Schristos
25*3117ece4Schristosfail=0
26*3117ece4Schristos
27*3117ece4Schristos# Compress and decompress both with and without --keep.
28*3117ece4Schristosfor k in --keep ''; do
29*3117ece4Schristos  # With --keep, the source must be retained, otherwise, it must be removed.
30*3117ece4Schristos  case $k in --keep) op='||' ;; *) op='&&' ;; esac
31*3117ece4Schristos
32*3117ece4Schristos  gzip $k in || fail=1
33*3117ece4Schristos  eval "test -f in $op fail=1"
34*3117ece4Schristos  test -f in.gz || fail=1
35*3117ece4Schristos  rm -f in || fail=1
36*3117ece4Schristos
37*3117ece4Schristos  gzip -d $k in.gz || fail=1
38*3117ece4Schristos  eval "test -f in.gz $op fail=1"
39*3117ece4Schristos  test -f in || fail=1
40*3117ece4Schristos  compare in orig || fail=1
41*3117ece4Schristos  rm -f in.gz || fail=1
42*3117ece4Schristosdone
43*3117ece4Schristos
44*3117ece4Schristoscp orig in || framework_failure_
45*3117ece4Schristoslog=$(gzip -kv in 2>&1) || fail=1
46*3117ece4Schristoscase $log in
47*3117ece4Schristos  *'created in.gz'*) ;;
48*3117ece4Schristos  *) fail=1;;
49*3117ece4Schristosesac
50*3117ece4Schristos
51*3117ece4SchristosExit $fail
52