Skip to content

Commit

Permalink
Add REQUIRES: shell to Tests Requiring Full Shell Functionality with …
Browse files Browse the repository at this point in the history
…lit Internal Shell (llvm#102988)

This patch adds the `REQUIRES: shell` directive to compiler-rt's fuzzer
tests that require full shell functionality when using the lit internal
shell. These tests depend on features such as background processes,
signal handling, and session management, which are not supported by
lit's internal shell. The addition of this directive ensures that these
tests are only executed in environments that provide the necessary shell
capabilities.

**Details of the Change:**
The following considerations were addressed:
- **Background Processes (`&`):** The tests run commands in the
background using the `&` operator, which allows the shell to execute
commands concurrently without waiting for each one to finish. In a
standard Unix-like shell, this is a common feature that facilitates
multitasking. However, lit's internal shell does not fully support
background job control, which can lead to unpredictable behavior or test
failures. Without proper handling of background processes, subsequent
commands that depend on the status of these processes may not function
correctly.
- **Signal Handling (`kill -SIGUSR1`, `kill -SIGUSR2`, `kill
-SIGINT`):** These tests involve sending specific signals like
`SIGUSR1`, `SIGUSR2`, and `SIGINT` to running processes. These signals
are used to trigger certain behaviors in the processes, such as pausing,
resuming, or terminating. However, lit's internal shell may not handle
these signals properly—it might not send the signal correctly, or the
process might not respond as it should. This could lead to the test
failing, not because the process is incorrect, but because the shell
didn't manage the signals as required.
- **Session Management (`setsid`):** The tests use `setsid` to create
new sessions, detaching processes from their controlling terminal and
isolating them into their own process groups. However, the internal
shell in lit does not support session management features like `setsid`,
this can't correctly isolate and manage processes as required by these
tests.

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)
  • Loading branch information
Harini0924 authored and bwendling committed Aug 15, 2024
1 parent 6248026 commit fd731b3
Show file tree
Hide file tree
Showing 4 changed files with 4 additions and 1 deletion.
1 change: 1 addition & 0 deletions compiler-rt/test/fuzzer/fork-sigusr.test
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# Check that libFuzzer honors SIGUSR1/SIGUSR2
# Disabled on Windows which does not have SIGUSR1/SIGUSR2.
REQUIRES: shell
UNSUPPORTED: darwin, target={{.*windows.*}}, target=aarch64{{.*}}
RUN: rm -rf %t
RUN: mkdir -p %t
Expand Down
1 change: 1 addition & 0 deletions compiler-rt/test/fuzzer/merge-sigusr.test
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# Check that libFuzzer honors SIGUSR1/SIGUSR2
# FIXME: Disabled on Windows for now because of reliance on posix only features
# (eg: export, "&", pkill).
REQUIRES: shell
UNSUPPORTED: darwin, target={{.*windows.*}}
RUN: rm -rf %t
RUN: mkdir -p %t
Expand Down
2 changes: 1 addition & 1 deletion compiler-rt/test/fuzzer/sigint.test
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
REQUIRES: msan
REQUIRES: shell, msan
UNSUPPORTED: target=arm{{.*}}

# Check that libFuzzer exits gracefully under SIGINT with MSan.
Expand Down
1 change: 1 addition & 0 deletions compiler-rt/test/fuzzer/sigusr.test
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# FIXME: Disabled on Windows for now because of reliance on posix only features
# (eg: export, "&", pkill).
REQUIRES: shell
UNSUPPORTED: darwin, target={{.*windows.*}}
# Check that libFuzzer honors SIGUSR1/SIGUSR2
RUN: rm -rf %t
Expand Down

0 comments on commit fd731b3

Please sign in to comment.