Files
linux_system_tuning/test-tmpfs-detection.sh
mindesbunister 548dc1d0d3 Remove overlay filesystem functionality and add detection/removal capability
- Remove unused overlay filesystem configuration and references
- Remove overlayfs sections from all profile JSON files
- Remove OVERLAY_ENABLED/OVERLAY_PROTECT_CONFIGS from config
- Update documentation to focus on tmpfs optimization
- Add overlay detection and removal functionality for cleanup
- Add remove_overlays() function with safe unmounting
- Add overlay status reporting in final optimization summary
- Add test-overlay-detection.sh for testing detection logic
- Simplify codebase by removing complex unused features
- Focus on proven desktop optimizations (tmpfs, zram, kernel)
2025-09-23 12:35:45 +02:00

200 lines
6.1 KiB
Bash
Executable File

#!/bin/bash
# Test script to verify tmpfs detection functionality
# This script can be run without root to test the detection logic
set -euo pipefail
# Colors
BLUE='\033[0;34m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m'
log() {
echo -e "${BLUE}[TEST]${NC} $1"
}
success() {
echo -e "${GREEN}[FOUND]${NC} $1"
}
warn() {
echo -e "${YELLOW}[INFO]${NC} $1"
}
echo "🔍 Testing tmpfs Detection Functionality"
echo "=============================================="
echo ""
# Test the cache directory detection logic
test_cache_detection() {
log "Testing cache directory detection..."
local found_caches=0
# Browser caches
log "Scanning for browser installations..."
# Firefox cache
find /home -path "*/.mozilla/firefox/*/storage" -type d 2>/dev/null | while read firefox_dir; do
local profile_dir=$(dirname "$firefox_dir")
local cache_dir="$profile_dir/storage"
if [[ -d "$cache_dir" ]]; then
local size=$(du -sh "$cache_dir" 2>/dev/null | cut -f1)
success "Firefox cache: $cache_dir ($size)"
((found_caches++))
fi
done
# Chrome/Chromium cache
find /home -path "*/.config/google-chrome/*/storage" -o -path "*/.config/chromium/*/storage" -type d 2>/dev/null | while read chrome_dir; do
if [[ -d "$chrome_dir" ]]; then
local size=$(du -sh "$chrome_dir" 2>/dev/null | cut -f1)
local browser_type=$(echo "$chrome_dir" | grep -o -E "(google-chrome|chromium)")
success "$browser_type cache: $chrome_dir ($size)"
((found_caches++))
fi
done
# VS Code cache
find /home -path "*/.config/Code/CachedData" -type d 2>/dev/null | while read vscode_cache; do
if [[ -d "$vscode_cache" ]]; then
local size=$(du -sh "$vscode_cache" 2>/dev/null | cut -f1)
success "VS Code cache: $vscode_cache ($size)"
((found_caches++))
fi
done
# VS Code extensions
find /home -path "*/.vscode/extensions" -type d 2>/dev/null | while read vscode_ext; do
if [[ -d "$vscode_ext" ]]; then
local size=$(du -sh "$vscode_ext" 2>/dev/null | cut -f1)
success "VS Code extensions: $vscode_ext ($size)"
((found_caches++))
fi
done
# Package manager caches
if [[ -d /var/cache/apt ]]; then
local size=$(du -sh /var/cache/apt 2>/dev/null | cut -f1)
success "APT cache: /var/cache/apt ($size)"
((found_caches++))
fi
if [[ -d /var/cache/pacman ]]; then
local size=$(du -sh /var/cache/pacman 2>/dev/null | cut -f1)
success "Pacman cache: /var/cache/pacman ($size)"
((found_caches++))
fi
# Thumbnail caches
find /home -path "*/.cache/thumbnails" -type d 2>/dev/null | while read thumb_dir; do
if [[ -d "$thumb_dir" ]]; then
local size=$(du -sh "$thumb_dir" 2>/dev/null | cut -f1)
success "Thumbnail cache: $thumb_dir ($size)"
((found_caches++))
fi
done
# General user caches
find /home -maxdepth 3 -type d -name ".cache" 2>/dev/null | while read cache_dir; do
if [[ -d "$cache_dir" ]]; then
local size=$(du -sh "$cache_dir" 2>/dev/null | cut -f1)
success "User cache: $cache_dir ($size)"
((found_caches++))
fi
done
# Node.js projects (for developers)
if command -v node >/dev/null 2>&1; then
log "Node.js detected, scanning for projects..."
find /home -name "node_modules" -type d 2>/dev/null | head -5 | while read node_dir; do
if [[ -d "$node_dir" ]]; then
local size=$(du -sh "$node_dir" 2>/dev/null | cut -f1)
success "Node modules: $node_dir ($size)"
((found_caches++))
fi
done
fi
echo ""
log "Cache detection complete"
}
# Test tmpfs sizing recommendations
test_sizing_recommendations() {
log "Testing tmpfs sizing recommendations..."
local ram_gb=$(free -g | awk '/^Mem:/{print $2}')
log "Detected RAM: ${ram_gb}GB"
# Calculate recommended sizes
local browser_size="1G"
local ide_size="512M"
local packages_size="1G"
local thumbnails_size="256M"
if [[ $ram_gb -ge 16 ]]; then
browser_size="4G"
ide_size="2G"
packages_size="3G"
thumbnails_size="512M"
warn "High-memory system detected - recommending aggressive tmpfs sizes"
elif [[ $ram_gb -ge 8 ]]; then
browser_size="2G"
ide_size="1G"
packages_size="2G"
thumbnails_size="256M"
warn "Medium-memory system detected - recommending moderate tmpfs sizes"
else
warn "Low-memory system detected - recommending conservative tmpfs sizes"
fi
echo " 📦 Recommended sizes:"
echo " Browser cache: $browser_size"
echo " IDE cache: $ide_size"
echo " Package cache: $packages_size"
echo " Thumbnails: $thumbnails_size"
echo " Total tmpfs: ~$((${browser_size%G} + ${ide_size%G} + ${packages_size%G}))GB"
echo ""
}
# Test current tmpfs status
test_current_tmpfs() {
log "Checking current tmpfs status..."
local tmpfs_count=$(mount -t tmpfs | wc -l)
log "Current tmpfs mounts: $tmpfs_count"
if [[ $tmpfs_count -gt 0 ]]; then
echo " Current tmpfs filesystems:"
mount -t tmpfs | while IFS= read -r line; do
echo " $line"
done
fi
# Check for our specific tmpfs-cache directory
if [[ -d /tmp/tmpfs-cache ]]; then
success "tmpfs-cache directory exists"
ls -la /tmp/tmpfs-cache/ 2>/dev/null | tail -n +2 | while read line; do
echo " $line"
done
else
warn "tmpfs-cache directory not found"
fi
echo ""
}
# Main test execution
main() {
test_current_tmpfs
test_cache_detection
test_sizing_recommendations
echo "✅ Detection test complete!"
echo ""
echo "💡 To apply tmpfs optimizations, run:"
echo " sudo ./one-button-optimizer.sh"
}
main "$@"