
This patch adds the `REQUIRES: shell` directive to the BOLT permission test to ensure it only runs in environments with a full-featured Unix-like shell. This change is necessary because the test relies on advanced shell capabilities that are not supported by lit's internal shell. **Reasoning:** The BOLT permission test uses features like running commands in the background with `&`, performing arithmetic operations, and handling special number formats (octal). These features require a more capable shell than what lit's internal shell provides. Without a proper shell, the test could fail or behave unpredictably. This change is relevant for enabling the lit internal shell by default, as outlined in [[RFC] Enabling the Lit Internal Shell by Default](https://discourse.llvm.org/t/rfc-enabling-the-lit-internal-shell-by-default/80179)
14 lines
481 B
Plaintext
14 lines
481 B
Plaintext
# Ensure that the permissions of the optimized binary file comply with the
|
|
# system's umask.
|
|
|
|
# This test performs a logical AND operation on the results of the `stat -c %a
|
|
# %t.bolt` and `umask` commands (both results are displayed in octal), and
|
|
# checks whether the result is equal to 0.
|
|
REQUIRES: shell, system-linux
|
|
|
|
RUN: %clang %cflags %p/Inputs/hello.c -o %t -Wl,-q
|
|
RUN: llvm-bolt %t -o %t.bolt
|
|
RUN: echo $(( 8#$(stat -c %a %t.bolt) & 8#$(umask) )) | FileCheck %s
|
|
|
|
CHECK: 0
|