No description
  • CMake 95.2%
  • Python 2.1%
  • Shell 1.4%
  • C 0.6%
  • HTML 0.5%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-07-08 14:43:52 -06:00
archive Rebuild gpu_burn with glibc 2.34 compat for Jammy support 2026-07-08 10:40:35 -06:00
ascii first commit 2024-06-13 19:49:00 -06:00
bin Update stress-ng 2026-07-08 14:43:52 -06:00
lib Rebuild gpu-burn for CUDA 13.0; update bundled libs 2026-07-08 09:55:20 -06:00
pip setup git lfs 2024-06-13 20:17:46 -06:00
share/cmake-3.22 first commit 2024-06-13 19:49:00 -06:00
stressmon@94126e00d9 Update stressmon submodule to use RAPL domain names; simplify sensors.py wrapper 2026-07-08 14:15:00 -06:00
webui Sensor recording: CSV file output matching test.py pattern 2026-07-08 14:15:00 -06:00
.gitattributes cmake stress-ng don't need to be git-lfs 2024-06-28 17:41:55 -06:00
.gitignore Flask web UI with hardware sensor monitoring and stress test launching 2026-07-08 14:15:00 -06:00
.gitmodules first commit 2024-06-13 19:49:00 -06:00
amddevids first commit 2024-06-13 19:49:00 -06:00
compare.ptx first commit 2024-06-13 19:49:00 -06:00
IGNORE_PATTERNS first commit 2024-06-13 19:49:00 -06:00
inteldevids first commit 2024-06-13 19:49:00 -06:00
menu setup git lfs 2024-06-13 20:17:46 -06:00
PATTERNS first commit 2024-06-13 19:49:00 -06:00
README.md Flask web UI with hardware sensor monitoring and stress test launching 2026-07-08 14:15:00 -06:00
rma-setup.sh first commit 2024-06-13 19:49:00 -06:00
rsync-filter.txt Flask web UI with hardware sensor monitoring and stress test launching 2026-07-08 14:15:00 -06:00
s76-burn-in.sh first commit 2024-06-13 19:49:00 -06:00
s76-check.sh first commit 2024-06-13 19:49:00 -06:00
s76-disable-suspend.sh first commit 2024-06-13 19:49:00 -06:00
s76-gpu-burn.sh Rebuild gpu-burn for CUDA 13.0; update bundled libs 2026-07-08 09:55:20 -06:00
s76-journalctl.sh first commit 2024-06-13 19:49:00 -06:00
s76-kernel-benchmark.sh first commit 2024-06-13 19:49:00 -06:00
s76-llvm-stress.sh introduce a 10 second timeout 2024-09-16 15:04:08 -06:00
s76-setup-testpy.sh check if stressmon has been cloned and clone if not 2024-06-14 15:10:15 -06:00
s76-setup-unigine.sh first commit 2024-06-13 19:49:00 -06:00
s76-stress-ng.sh first commit 2024-06-13 19:49:00 -06:00
s76-stress-tests.sh Fixing command line options and help text 2025-01-22 11:31:47 -07:00
s76-stress.sh Fixing command line options and help text 2025-01-22 11:31:47 -07:00
s76-testguipy.sh packaged test_gui 2024-07-12 10:43:57 -06:00
s76-testpy.sh first commit 2024-06-13 19:49:00 -06:00
s76-unigine-valley.sh first commit 2024-06-13 19:49:00 -06:00
s76-webui.sh Remove deprecated pynvml package check in launcher 2026-07-08 14:15:00 -06:00
s76burnin.py first commit 2024-06-13 19:49:00 -06:00
s76setuptestpy.py first commit 2024-06-13 19:49:00 -06:00
s76utils.py first commit 2024-06-13 19:49:00 -06:00
stress-ng_revert first commit 2024-06-13 19:49:00 -06:00
sudomodule.py first commit 2024-06-13 19:49:00 -06:00
system76_thelio_io_2_default.uf2 add thelio io firmware blob 2024-06-14 15:20:36 -06:00
test.py first commit 2024-06-13 19:49:00 -06:00
test_gui.py write headings to csv file 2025-04-01 14:25:44 -06:00
test_gui.tar.xz update built test_gui with heading fix 2025-04-01 15:23:21 -06:00
trubble-stress-scripts.sh Add tab completion to apt-proxy 2024-09-24 12:36:43 -06:00
valley_1.0.cfg first commit 2024-06-13 19:49:00 -06:00
venids first commit 2024-06-13 19:49:00 -06:00

System76 Stress Test Scripts

This repository contains a collection of Bash scripts designed to stress test various components of your system, such as CPU, GPU, and memory. There is also a Python script included that monitors hardware sensors.

Main Stress Test Script

The main script (s76-stress-tests.sh) is a Bash script that orchestrates the execution of the other scripts based on the provided command-line arguments.

Usage

s76-stress-tests.sh [options]

Options

  • -h Display this message and exit.
  • -g Use glmark2.
  • -c F Use stress-ng conf file F.
  • -i Use integrated graphics.
  • -n Use stress-ng instead of stress.
  • -s Skip the GPU stress tests.
  • -t HH Time to run gpu_burn in hours.
  • -u Skip the NVIDIA check and just run Unigine Valley

Stress Test Scripts

This repository contains the following stress test scripts:

  • s76-testpy.sh: This script sets up and runs the test.py Python script in a new terminal. The test.py script is used for hardware sensor monitoring and logging. Before running test.py, the script executes s76-setup-testpy.sh which installs necessary apt packages and Python packages. The new terminal with test.py running will appear at a specified screen position.
  • s76-setup-gpu-burn.sh: This script sets up the environment for s76-gpu-burn.sh. It checks if the required dependencies (git, gnome-terminal, and NVIDIA CUDA Toolkit) are installed and if not, it installs them. It then clones the GPU-Burn repository from GitHub, fetches the latest updates, and builds the project. If CUDA was not previously installed, it also reboots the system to ensure the changes are properly applied.
  • s76-gpu-burn.sh: This script is designed to stress test your GPU using the GPU-Burn tool. It first checks if the necessary dependencies (git, gnome-terminal, and GPU-Burn tool itself) are installed and if not, it installs them. It then runs GPU-Burn for a specified number of hours (default is 24 hours), opening two new terminals: one for the GPU-Burn tool and another to monitor GPU statistics using nvidia-smi.
  • s76-unigine-valley.sh: This script ...
  • s76-disable-suspend.sh: This script ...
  • s76-htop.sh: This script ...
  • s76-stress.sh: This script ...
  • s76-stress-ng.sh: This script ...
  • s76-glmark2.sh: This script ...

Sensor Monitoring Script sensor_monitor.py: This Python script monitors hardware sensors and reports their readings. ...

(Note: Provide a brief description of what the script does, what sensors it monitors, etc.)

Requirements Linux (tested on Ubuntu 18.04 and 20.04) Bash Python (for the sensor monitoring script) Installation To use these scripts, clone this repository to your local machine:

bash Copy code git clone https://github.com/yourusername/system76-stress-test-scripts.git Running the Tests To run the main stress test script with default settings, navigate to the repository directory and run:

bash Copy code ./s76-stress-tests.sh

Web UI

A Flask-based web UI is available for launching and monitoring stress test profiles from a browser.

Usage

# Install Flask (first time only)
pip3 install flask --user --break-system-packages

# Start the web UI on port 5000
./s76-webui.sh

# Or specify a custom port
./s76-webui.sh 8080

Then open http://localhost:5000 in a browser.

Available Profiles

  • CPU + Memory Stress — stress-ng with configurable runtime and integrated graphics option
  • GPU Burn — NVIDIA GPU stress test via gpu_burn
  • LLVM Stress Test — CPU/memory/I/O stress via LLVM compilation
  • Unigine Valley GPU — OpenGL GPU benchmark
  • Sensor Monitor — Real-time hardware sensor monitoring
  • Full Burn-in Test — (terminal interactive, run via s76burnin.py)

The web UI shows running processes with live log streaming, stop controls, and elapsed time tracking.