#!/bin/bash # test.sh - Script de test rapide pour l'extension Pilot Control set -e echo "================================================" echo " Pilot Control Extension - Tests" echo "================================================" echo "" # Couleurs pour l'affichage GREEN='\033[0;32m' RED='\033[0;31m' YELLOW='\033[1;33m' NC='\033[0m' # No Color # Fonction pour afficher un test réussi pass() { echo -e "${GREEN}✓${NC} $1" } # Fonction pour afficher un test échoué fail() { echo -e "${RED}✗${NC} $1" } # Fonction pour afficher un warning warn() { echo -e "${YELLOW}⚠${NC} $1" } # Test 1: Vérifier que GNOME Shell est installé echo "Test 1: GNOME Shell installation" if command -v gnome-shell &> /dev/null; then VERSION=$(gnome-shell --version) pass "GNOME Shell is installed: $VERSION" else fail "GNOME Shell is not installed" exit 1 fi echo "" # Test 2: Vérifier la version de GNOME Shell echo "Test 2: GNOME Shell version" GNOME_VERSION=$(gnome-shell --version | grep -oP '\d+' | head -1) if [ "$GNOME_VERSION" -ge 45 ]; then pass "GNOME Shell version is compatible: $GNOME_VERSION" else warn "GNOME Shell version may not be compatible: $GNOME_VERSION (requires 45+)" fi echo "" # Test 3: Vérifier que l'extension est installée echo "Test 3: Extension installation" EXTENSION_UUID="pilot-control@gnome-shell-extensions" EXTENSION_DIR="$HOME/.local/share/gnome-shell/extensions/$EXTENSION_UUID" if [ -d "$EXTENSION_DIR" ]; then pass "Extension directory exists: $EXTENSION_DIR" else fail "Extension is not installed" echo " Run: ./install.sh" exit 1 fi echo "" # Test 4: Vérifier les fichiers essentiels echo "Test 4: Essential files" ESSENTIAL_FILES=("metadata.json" "extension.js" "yamlConfig.js" "serviceManager.js") for file in "${ESSENTIAL_FILES[@]}"; do if [ -f "$EXTENSION_DIR/$file" ]; then pass "$file exists" else fail "$file is missing" fi done echo "" # Test 5: Vérifier que l'extension est activée echo "Test 5: Extension activation" if gnome-extensions list --enabled 2>/dev/null | grep -q "$EXTENSION_UUID"; then pass "Extension is enabled" else warn "Extension is not enabled" echo " Run: gnome-extensions enable $EXTENSION_UUID" fi echo "" # Test 6: Vérifier que le fichier config.yaml existe echo "Test 6: Pilot V2 configuration" CONFIG_PATHS=( "$HOME/app/pilot/pilot-v2/config.yaml" "$HOME/.config/pilot/config.yaml" "/etc/pilot/config.yaml" ) CONFIG_FOUND=false for config_path in "${CONFIG_PATHS[@]}"; do if [ -f "$config_path" ]; then pass "Config file found: $config_path" CONFIG_FOUND=true CONFIG_PATH="$config_path" break fi done if [ "$CONFIG_FOUND" = false ]; then warn "Config file not found in standard locations" echo " Checked:" for config_path in "${CONFIG_PATHS[@]}"; do echo " - $config_path" done fi echo "" # Test 7: Vérifier que le service systemd existe echo "Test 7: Systemd service" SERVICE_NAME="mqtt_pilot.service" if systemctl --user list-unit-files 2>/dev/null | grep -q "$SERVICE_NAME"; then pass "Service exists: $SERVICE_NAME" # Vérifier le statut if systemctl --user is-active --quiet "$SERVICE_NAME"; then pass "Service is running" else warn "Service is not running" echo " Run: systemctl --user start $SERVICE_NAME" fi # Vérifier si enabled if systemctl --user is-enabled --quiet "$SERVICE_NAME" 2>/dev/null; then pass "Service is enabled (auto-start)" else warn "Service is not enabled" echo " Run: systemctl --user enable $SERVICE_NAME" fi else warn "Service not found: $SERVICE_NAME" echo " Make sure Pilot V2 is installed and configured" fi echo "" # Test 8: Vérifier les permissions du config.yaml if [ "$CONFIG_FOUND" = true ]; then echo "Test 8: Configuration file permissions" if [ -r "$CONFIG_PATH" ]; then pass "Config file is readable" else fail "Config file is not readable" fi if [ -w "$CONFIG_PATH" ]; then pass "Config file is writable" else warn "Config file is not writable (extension won't be able to save changes)" fi echo "" fi # Test 9: Vérifier les backups existants if [ "$CONFIG_FOUND" = true ]; then echo "Test 9: Configuration backups" BACKUP_DIR=$(dirname "$CONFIG_PATH") BACKUP_COUNT=$(ls -1 "$BACKUP_DIR"/config.yaml.backup_* 2>/dev/null | wc -l) if [ "$BACKUP_COUNT" -gt 0 ]; then pass "Found $BACKUP_COUNT backup(s)" echo " Latest: $(ls -1t "$BACKUP_DIR"/config.yaml.backup_* 2>/dev/null | head -1)" else warn "No backups found (will be created when you save)" fi echo "" fi # Test 10: Vérifier les logs GNOME Shell (optionnel) echo "Test 10: GNOME Shell logs (checking for errors)" if journalctl -b -o cat /usr/bin/gnome-shell 2>/dev/null | grep -i "pilot.*error" | tail -5 | grep -q "pilot"; then warn "Found potential errors in GNOME Shell logs" echo " Check logs with: journalctl -f -o cat /usr/bin/gnome-shell | grep -i pilot" else pass "No recent errors in GNOME Shell logs" fi echo "" # Résumé echo "================================================" echo " Test Summary" echo "================================================" echo "" # Compter les tests réussis PASSED_COUNT=0 TOTAL_TESTS=10 # Note: Cette approche simplifiée compte manuellement # Dans un vrai script de test, on utiliserait des variables echo "Tests completed!" echo "" echo "Next steps:" echo "1. If extension is not enabled, run:" echo " gnome-extensions enable $EXTENSION_UUID" echo "" echo "2. Restart GNOME Shell:" echo " - On X11: Alt+F2, type 'r', press Enter" echo " - On Wayland: Log out and log back in" echo "" echo "3. Look for the Pilot Control icon in the top panel" echo "" echo "4. Check logs for any errors:" echo " journalctl -f -o cat /usr/bin/gnome-shell | grep -i pilot" echo "" # Test interactif optionnel read -p "Would you like to view the last 20 lines of GNOME Shell logs? (y/N) " -n 1 -r echo if [[ $REPLY =~ ^[Yy]$ ]]; then echo "" echo "Last 20 lines of GNOME Shell logs (filtering for 'pilot'):" echo "-----------------------------------------------------------" journalctl -b -o cat /usr/bin/gnome-shell 2>/dev/null | grep -i pilot | tail -20 || echo "No logs found" fi echo "" echo "================================================"