API + tests WIP

This commit is contained in:
Dragoon Dorise 2024-01-17 11:10:09 +01:00
parent a124feb769
commit 863448c643
2 changed files with 383 additions and 22 deletions

135
api.sh
View file

@ -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
}

270
unit-testing.sh Normal file
View file

@ -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}"