llvm-project/llvm/test/tools/llvm-ranlib/help-message.test
Fangrui Song 7e4883f888
[llvm-ranlib] Change -v (alias for --version) to -V
-V prints the version information in both BSD and GNU ar/ranlib.

BSD ranlib rejects -v while -v enables verbose output in GNU ar but is
another alias for --version in GNU ranlib. The GNU ranlib behavior is
inconsistent: `ranlib -v` is different from `ar -sv`. But it's not a
major concern in practice:

* Users typically use ranlib solely for creating archive symbol tables,
  and they don't need verbose output.
* Verbose output in ranlib seems a no-op.
* GNU ar creates an archive symbol table by default. Many ranlib uses
  have been eliminated.
* Modern linkers like lld/ELF (since version 14) and mold don't rely on
  archive symbol tables anymore.

https://reviews.llvm.org/D71554 introduced -v. This patch removes it so
that `llvm-ranlib -v` and `llvm-ranlib -version` lead to errors (GNU
ranlib rejects `-version` as well). -V is added as an alias for
--version.

Close #87654

Pull Request: https://github.com/llvm/llvm-project/pull/87661
2024-04-05 09:24:13 -07:00

27 lines
1.1 KiB
Plaintext

## Show that the help message for llvm-ranlib can be printed with either the
## long flag -help.
# RUN: llvm-ranlib -h | FileCheck %s --check-prefix=HELP
# RUN: llvm-ranlib -help | FileCheck %s --check-prefix=HELP
# RUN: llvm-ranlib --help | FileCheck %s --check-prefix=HELP
# RUN: llvm-ranlib --version | FileCheck %s --check-prefix=VERSION
# RUN: llvm-ranlib -V | FileCheck %s --check-prefix=VERSION
## Also check combined options (first -h/-v flag wins)
# RUN: llvm-ranlib -Dh | FileCheck %s --check-prefix=HELP
# RUN: llvm-ranlib -DVh | FileCheck %s --check-prefix=VERSION
# RUN: llvm-ranlib -DhV | FileCheck %s --check-prefix=HELP
# HELP: USAGE: llvm-ranlib
# VERSION: version
## -v enables verbose output in BSD ranlib and GNU ar but is another alias
## for --version in GNU ranlib. Reject -v.
# RUN: not llvm-ranlib -v 2>&1 | FileCheck %s --check-prefix=ERR1
# RUN: not llvm-ranlib -version 2>&1 | FileCheck %s --check-prefix=ERR2
# RUN: not llvm-ranlib -Dvh 2>&1 | FileCheck %s --check-prefix=ERR3
# ERR1: error: Invalid option: '-v'
# ERR2: error: Invalid option: '-version'
# ERR3: error: Invalid option: '-vh'