Files
xxHash/tests/cli-ignore-missing.sh
Takayuki Matsuoka e592478eea add: cli: --ignore-missing
- Add `--ignore-missing` option for `xxhsum`.
- Add test script `tests/cli-ignore-missing.sh` and related `Makefile` entries.
  - Note that we still don't have CLI test entry in our CI.

`xxhsum` returns failure exit code when

- `--ignore-missing` is presented.
- Checksum file is specified.
- But `XSUM_checkFile()` doesn't read actual file (may) due to `--ignore-missing`

If so, `xxhsum` reports `no file was verified` with failure exit code.

<details><summary>`--ignore-missing` related code in `digest.c`</summary>
- 2f1cffe07a/src/digest.c (L190-L191)
- 2f1cffe07a/src/digest.c (L362)
- 2f1cffe07a/src/digest.c (L380)
- 2f1cffe07a/src/digest.c (L506)
- 2f1cffe07a/src/digest.c (L978-L982)
- 2f1cffe07a/src/digest.c (L1236-L1240)
- 2f1cffe07a/src/digest.c (L1325-L1328)
- 2f1cffe07a/src/digest.c (L1429-L1431)
- 2f1cffe07a/src/digest.c (L1558-L1564)
</details>
2023-07-10 17:43:40 +09:00

52 lines
1.1 KiB
Bash

#!/bin/bash
# Exit immediately if any command fails.
# https://stackoverflow.com/a/2871034
set -e -u -x
# Normal
./xxhsum ./Makefile > ./.test.xxh
./xxhsum --check ./.test.xxh
# Missing, expect error
# (1) Create checksum file.
# (2) Remove one of them.
# (3) --check it
# (4) Expect NG (missing file)
cp Makefile .test.makefile
./xxhsum ./.test.makefile > ./.test.xxh
rm ./.test.makefile
! ./xxhsum --check ./.test.xxh # Put '!' for expecting error
# Missing, --ignore-missing
# (1) Create checksum file.
# (2) Remove one of them.
# (3) --check it with --ignore-missing.
# (4) Expect OK
cp Makefile .test.makefile
./xxhsum Makefile ./.test.makefile > ./.test.xxh
rm ./.test.makefile
./xxhsum --check --ignore-missing ./.test.xxh
# Missing, --ignore-missing, expect error
# (1) Create checksum file.
# (2) Remove all of them.
# (3) --check it with --ignore-missing.
# (4) Expect NG (no file was verified).
cp Makefile .test.makefile
./xxhsum ./.test.makefile > ./.test.xxh
rm ./.test.makefile
! ./xxhsum --check --ignore-missing ./.test.xxh # Put '!' for expecting error
# Cleanup
( rm ./.test.* ) || true
echo OK