From 863448c643112ad384a5e8c3d5b3792aa90401de Mon Sep 17 00:00:00 2001 From: Dragoon Dorise Date: Wed, 17 Jan 2024 11:10:09 +0100 Subject: [PATCH] API + tests WIP --- api.sh | 135 ++++++++++++++++++++---- unit-testing.sh | 270 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 383 insertions(+), 22 deletions(-) create mode 100644 unit-testing.sh diff --git a/api.sh b/api.sh index f3a82503..30f01bff 100644 --- a/api.sh +++ b/api.sh @@ -1,71 +1,162 @@ #!/bin/bash +. $HOME/.config/EmuDeck/backend/functions/all.sh + API_pull(){ local branch=$1 - cd ~/.config/EmuDeck/backend && touch ~/emudeck/logs/git.log && script ~/emudeck/logs/git.log -c 'git reset --hard && git clean -fd && git checkout $branch && git pull' && appImageInit + cd ~/.config/EmuDeck/backend && touch ~/emudeck/logs/git.log && git reset --hard && git clean -fd && git checkout $branch && git pull && appImageInit && echo "OK" || echo "KO" >&2 } API_autoSave(){ - RetroArch_autoSave + RetroArch_autoSave 1> /dev/null && echo "OK" || echo "KO" >&2 } API_bezels(){ - RetroArch_setBezels + RetroArch_setBezels 1> /dev/null && echo "OK" || echo "KO" >&2 } API_shaders_LCD(){ - RetroArch_setShadersMAT + RetroArch_setShadersMAT 1> /dev/null && echo "OK" || echo "KO" >&2 } -API_shaders_2D(){ - RetroArch_setShadersCRT +API_shaders_CRT(){ + RetroArch_setShadersCRT 1> /dev/null && echo "OK" || echo "KO" >&2 } API_shaders_3D(){ - RetroArch_setShaders3DCRT + RetroArch_setShaders3DCRT 1> /dev/null && echo "OK" || echo "KO" >&2 } API_ar_snes(){ if [ "$arSnes" == 87 ]; then - RetroArch_snes_ar87 - RetroArch_nes_ar87 + RetroArch_snes_ar87 1> /dev/null && RetroArch_nes_ar87 1> /dev/null && echo "OK" || echo "KO" >&2 else - RetroArch_snes_ar43 - RetroArch_nes_ar43 + RetroArch_snes_ar43 1> /dev/null && RetroArch_nes_ar43 1> /dev/null && echo "OK" || echo "KO" >&2 fi } +API_ar_sega(){ + RetroArch_mastersystem_ar32 1> /dev/null && RetroArch_genesis_ar32 1> /dev/null && RetroArch_segacd_ar32 1> /dev/null && RetroArch_sega32x_ar32 1> /dev/null && echo "OK" || echo "KO" >&2 +} + +API_ar_gamecube(){ + Dolphin_setCustomizations 1> /dev/null && echo "OK" || echo "KO" >&2 +} API_setAR(){ - RetroArch_setCustomizations - Xemu_setCustomizations - DuckStation_setCustomizations - PCSX2QT_setCustomizations - Dolphin_setCustomizations + RetroArch_setCustomizations 1> /dev/null && Xemu_setCustomizations 1> /dev/null && DuckStation_setCustomizations 1> /dev/null && PCSX2QT_setCustomizations 1> /dev/null && Dolphin_setCustomizations 1> /dev/null && echo "OK" || echo "KO" >&2 } API_setCloud(){ if [ $cloud_sync_status == "false" ]; then - setSetting cloud_sync_status "true" > /dev/null + setSetting cloud_sync_status "true" 1> /dev/null && echo "OK" || echo "KO" >&2 else - setSetting cloud_sync_status "false" > /dev/null + setSetting cloud_sync_status "false" 1> /dev/null && echo "OK" || echo "KO" >&2 fi } API_setToken(){ local token=$1 local user=$2 - echo $token > "$HOME/.config/EmuDeck/.rat" && echo $user > "$HOME/.config/EmuDeck/.rau" && RetroArch_retroAchievementsSetLogin && DuckStation_retroAchievementsSetLogin && PCSX2QT_retroAchievementsSetLogin && echo true + echo $token > "$HOME/.config/EmuDeck/.rat" && echo $user > "$HOME/.config/EmuDeck/.rau" && RetroArch_retroAchievementsSetLogin && DuckStation_retroAchievementsSetLogin && PCSX2QT_retroAchievementsSetLogin && echo "OK" || echo "KO" >&2 } API_getToken(){ local escapedUserName=$1 local escapedPass=$2 - curl --location --data-urlencode u='$escapedUserName' --data-urlencode p='$escapedPass' --request POST 'https://retroachievements.org/dorequest.php?r=login' + curl --location --data-urlencode u='$escapedUserName' --data-urlencode p='$escapedPass' --request POST 'https://retroachievements.org/dorequest.php?r=login' && echo "OK" || echo "KO" >&2 } -API_optional_parsers(){ - echo "true" +API_cloudSyncHealth(){ + cloudSyncHealth 1> /dev/null && echo "OK" || echo "KO" >&2 +} + +API_RetroArch_install(){ + RetroArch_install 1> /dev/null && echo "OK" || echo "KO" >&2 +} + +API_Dolphin_install(){ + Dolphin_install 1> /dev/null && echo "OK" || echo "KO" >&2 +} + +API_PrimeHack_install(){ + PrimeHack_install 1> /dev/null && echo "OK" || echo "KO" >&2 +} + +API_PPSSPP_install(){ + PPSSPP_install 1> /dev/null && echo "OK" || echo "KO" >&2 +} + +API_DuckStation_install(){ + DuckStation_install 1> /dev/null && echo "OK" || echo "KO" >&2 +} + +API_melonDS_install(){ + melonDS_install 1> /dev/null && echo "OK" || echo "KO" >&2 +} + +API_Citra_install(){ + Citra_install 1> /dev/null && echo "OK" || echo "KO" >&2 +} + +API_PCSX2_install(){ + PCSX2_install 1> /dev/null && echo "OK" || echo "KO" >&2 +} + +API_RPCS3_install(){ + RPCS3_install 1> /dev/null && echo "OK" || echo "KO" >&2 +} + +API_Yuzu_install(){ + Yuzu_install 1> /dev/null && echo "OK" || echo "KO" >&2 +} + +API_Ryujinx_install(){ + Ryujinx_install 1> /dev/null && echo "OK" || echo "KO" >&2 +} + +API_Xemu_install(){ + Xemu_install 1> /dev/null && echo "OK" || echo "KO" >&2 +} + +API_SRM_install(){ + SRM_install 1> /dev/null && echo "OK" || echo "KO" >&2 +} + +API_RMG_install(){ + RMG_install 1> /dev/null && echo "OK" || echo "KO" >&2 +} + +API_MAME_install(){ + MAME_install 1> /dev/null && echo "OK" || echo "KO" >&2 +} + +API_Vita3K_install(){ + Vita3K_install 1> /dev/null && echo "OK" || echo "KO" >&2 +} + +API_Flycast_install(){ + Flycast_install 1> /dev/null && echo "OK" || echo "KO" >&2 +} + +API_ScummVM_install(){ + ScummVM_install 1> /dev/null && echo "OK" || echo "KO" >&2 } +API_Xenia_install(){ + Xenia_install 1> /dev/null && echo "OK" || echo "KO" >&2 +} + +API_mGBA_install(){ + mGBA_install 1> /dev/null && echo "OK" || echo "KO" >&2 +} + + +API_ESDE_install(){ + ESDE_install 1> /dev/null && echo "OK" || echo "KO" >&2 +} + +API_Pegasus_install(){ + Pegasus_install 1> /dev/null && echo "OK" || echo "KO" >&2 +} \ No newline at end of file diff --git a/unit-testing.sh b/unit-testing.sh new file mode 100644 index 00000000..a112d326 --- /dev/null +++ b/unit-testing.sh @@ -0,0 +1,270 @@ +#!/bin/bash +. $HOME/.config/EmuDeck/backend/functions/all.sh +. ./api.sh + +YELLOW='\033[01;33m' +CYAN='\033[01;36m' +NONE='\033[00m' + +#Red STDERR + +exec 9>&2 +exec 8> >( + while IFS='' read -r line || [ -n "$line" ]; do + echo -e "\033[31m${line}\033[0m" + done +) +function undirect(){ exec 2>&9; } +function redirect(){ exec 2>&8; } +trap "redirect;" DEBUG +PROMPT_COMMAND='undirect;' + +# Git Pull +echo "" && echo -e "${YELLOW}Testing Git Pull...${NONE}" +API_pull 1> /dev/null dev + +# +## Quick Settings +# + +function QuickSettings(){ + + # AutoSave + echo "" && echo -ne "${CYAN}Testing AutoSave...${NONE}" + API_autoSave + + # Bezels + echo "" && echo -ne "${CYAN}Testing Bezels...${NONE}" + API_bezels + + # Sega AR + echo "" && echo -ne "${CYAN}Testing Sega AR...${NONE}" + API_ar_sega + + # Nintendo AR + echo "" && echo -ne "${CYAN}Testing Nintendo AR...${NONE}" + API_ar_snes + + # 3D AR + echo "" && echo -ne "${CYAN}Testing 3D AR...${NONE}" + API_setAR + + # GameCube AR + echo "" && echo -ne "${CYAN}Testing GameCube AR...${NONE}" + API_ar_gamecube + + + # LCD Shader + echo "" && echo -ne "${CYAN}Testing LCD Shader...${NONE}" + API_shaders_LCD + + # CRT Shader + echo "" && echo -ne "${CYAN}Testing CRT Shader...${NONE}" + API_shaders_CRT + + # 3D CRT Shader + echo "" && echo -ne "${CYAN}Testing 3D CRT Shader...${NONE}" + API_shaders_3D + +} + +echo "" && echo -ne "${YELLOW}Testing QuickSettings ON...${NONE}" +echo "" + +RABezels=true +RAautoSave=true +arClassic3D=169 +arDolphin=169 +arSega=32 +arSnes=87 +RAHandClassic2D=true +RAHandClassic3D=true +RAHandHeldShader=true +doSetupSaveSync=true + +QuickSettings + +echo "" +echo "" && echo -ne "${YELLOW}Testing QuickSettings OFF...${NONE}" +echo "" + +RABezels=false +RAautoSave=false +arClassic3D=43 +arDolphin=43 +arSega=43 +arSnes=43 +RAHandClassic2D=false +RAHandClassic3D=false +RAHandHeldShader=false +doSetupSaveSync=false + +QuickSettings + +# +# # Emulators +# + +# RA + +echo "" && echo -ne "${YELLOW}Testing RA...${NONE}" + + #Install + echo "" && echo -ne "${CYAN}Installation...${NONE}" + RetroArch_isInstalled + + #Launcher + echo "" && echo -ne "${CYAN}Launcher...${NONE}" + + + #Game + echo "" && echo -ne "${CYAN}Game...${NONE}" + + + #Uninstall + echo "" && echo -ne "${CYAN}Uninstall...${NONE}" + + + #Resolution + echo "" && echo -ne "${CYAN}Resolution...${NONE}" + + + +# Dolphin + +echo "" && echo -ne "${YELLOW}Testing Dolphin...${NONE}" + + +# PrimeHack + +echo "" && echo -ne "${YELLOW}Testing PrimeHack...${NONE}" + + +# PPSSPP + +echo "" && echo -ne "${YELLOW}Testing PPSSPP...${NONE}" + + +# Duckstation + +echo "" && echo -ne "${YELLOW}Testing Duckstation...${NONE}" + + +# melonDS + +echo "" && echo -ne "${YELLOW}Testing melonDS...${NONE}" + + +# Citra + +echo "" && echo -ne "${YELLOW}Testing Citra...${NONE}" + + +# PCSX2 + +echo "" && echo -ne "${YELLOW}Testing PCSX2...${NONE}" + + +# RPCS3 + +echo "" && echo -ne "${YELLOW}Testing RPCS3...${NONE}" + + +# Yuzu + +echo "" && echo -ne "${YELLOW}Testing Yuzu...${NONE}" + + +# Ryujinx + +echo "" && echo -ne "${YELLOW}Testing Ryujinx...${NONE}" + + +# Xemu + +echo "" && echo -ne "${YELLOW}Testing Xemu...${NONE}" + + +# Cemu + +echo "" && echo -ne "${YELLOW}Testing Cemu...${NONE}" + + +# SRM + +echo "" && echo -ne "${YELLOW}Testing SRM...${NONE}" + + +# RMG + +echo "" && echo -ne "${YELLOW}Testing RMG...${NONE}" + + +# MAME + +echo "" && echo -ne "${YELLOW}Testing MAME...${NONE}" + + +# Vita3K + +echo "" && echo -ne "${YELLOW}Testing Vita3K...${NONE}" + + +# Flycast + +echo "" && echo -ne "${YELLOW}Testing Flycast...${NONE}" + + +# ScummVM + +echo "" && echo -ne "${YELLOW}Testing ScummVM...${NONE}" + + +# Xenia + +echo "" && echo -ne "${YELLOW}Testing Xenia...${NONE}" + + +# mGBA + +echo "" && echo -ne "${YELLOW}Testing mGBA...${NONE}" + + +# ESDE + +echo "" && echo -ne "${YELLOW}Testing ESDE...${NONE}" + + +# Pegasus + +echo "" && echo -ne "${YELLOW}Testing Pegasus...${NONE}" + + + +# +# Others + +echo "" && echo -ne "${YELLOW}Testing Others...${NONE}" +# + + +# CloudSaves + +echo "" && echo -ne "${YELLOW}Testing CloudSaves...${NONE}" + + +# RetroAchievements + +echo "" && echo -ne "${YELLOW}Testing RetroAchievements...${NONE}" + + +# EmuDecky + +echo "" && echo -ne "${YELLOW}Testing EmuDecky...${NONE}" + + +# GyroDSU + +echo "" && echo -ne "${YELLOW}Testing GyroDSU...${NONE}" + +