mirror of
https://github.com/bryanthaboi/gen1recomp.git
synced 2026-08-12 08:21:02 +02:00
Update build scripts and tests for ports/switch OTA paths.
Point launcher, fused build, docs, and gitignore at the relocated Switch port tree.
This commit is contained in:
+16
-16
@@ -37,22 +37,22 @@ mobile/ios/build/
|
|||||||
# Final packaged build artifacts (mac/win/web/android/ios/switch) — see scripts/build.sh
|
# Final packaged build artifacts (mac/win/web/android/ios/switch) — see scripts/build.sh
|
||||||
/dist/
|
/dist/
|
||||||
|
|
||||||
# Native Switch OTA launcher build outputs
|
# Switch OTA launcher build outputs
|
||||||
native/switch-ota-launcher/build/
|
ports/switch/ota-launcher/build/
|
||||||
native/switch-ota-launcher/build-host/
|
ports/switch/ota-launcher/build-host/
|
||||||
native/switch-ota-launcher/*.nro
|
ports/switch/ota-launcher/*.nro
|
||||||
native/switch-ota-launcher/*.nacp
|
ports/switch/ota-launcher/*.nacp
|
||||||
native/switch-ota-launcher/*.elf
|
ports/switch/ota-launcher/*.elf
|
||||||
native/switch-ota-launcher/*.map
|
ports/switch/ota-launcher/*.map
|
||||||
native/switch-ota-launcher/romfs/logo.rgba
|
ports/switch/ota-launcher/romfs/logo.rgba
|
||||||
native/switch-ota-launcher/romfs/logo.png
|
ports/switch/ota-launcher/romfs/logo.png
|
||||||
native/switch-ota-launcher/romfs/cacert.pem
|
ports/switch/ota-launcher/romfs/cacert.pem
|
||||||
native/switch-ota-launcher/romfs/ota-bootstrap.nro
|
ports/switch/ota-launcher/romfs/ota-bootstrap.nro
|
||||||
native/switch-ota-bootstrap/build/
|
ports/switch/ota-bootstrap/build/
|
||||||
native/switch-ota-bootstrap/*.nro
|
ports/switch/ota-bootstrap/*.nro
|
||||||
native/switch-ota-bootstrap/*.nacp
|
ports/switch/ota-bootstrap/*.nacp
|
||||||
native/switch-ota-bootstrap/*.elf
|
ports/switch/ota-bootstrap/*.elf
|
||||||
native/switch-ota-bootstrap/*.map
|
ports/switch/ota-bootstrap/*.map
|
||||||
|
|
||||||
# Legacy manual convenience-copy location (superseded by /dist/android/)
|
# Legacy manual convenience-copy location (superseded by /dist/android/)
|
||||||
mobile/dist/
|
mobile/dist/
|
||||||
|
|||||||
@@ -41,10 +41,10 @@ Fused game builds can also use Docker when native `nacptool`/`elf2nro` are absen
|
|||||||
|
|
||||||
In-console OTA uses a **separate DEVKITPRO NRO** (not LÖVE). The LÖVE
|
In-console OTA uses a **separate DEVKITPRO NRO** (not LÖVE). The LÖVE
|
||||||
self-updater (`Check.lua`) is disabled on NX. Source:
|
self-updater (`Check.lua`) is disabled on NX. Source:
|
||||||
`native/switch-ota-launcher/`. Host protocol tests (no toolchain):
|
`ports/switch/ota-launcher/`. Host protocol tests (no toolchain):
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
make -C native/switch-ota-launcher host-test
|
make -C ports/switch/ota-launcher host-test
|
||||||
# or
|
# or
|
||||||
scripts/switch/build_ota_launcher.sh # host-test first; NRO needs DEVKITPRO/Docker
|
scripts/switch/build_ota_launcher.sh # host-test first; NRO needs DEVKITPRO/Docker
|
||||||
```
|
```
|
||||||
@@ -59,7 +59,7 @@ Release-like build from repo root:
|
|||||||
scripts/build_switch.sh --fetch --fused --version X.Y.Z
|
scripts/build_switch.sh --fetch --fused --version X.Y.Z
|
||||||
```
|
```
|
||||||
|
|
||||||
See `native/switch-ota-launcher/README.md` and
|
See `ports/switch/ota-launcher/README.md` and
|
||||||
`scripts/switch/ota_launcher.manifest`.
|
`scripts/switch/ota_launcher.manifest`.
|
||||||
|
|
||||||
### Windows (Git Bash / MSYS2 / WSL)
|
### Windows (Git Bash / MSYS2 / WSL)
|
||||||
|
|||||||
@@ -45,8 +45,8 @@ APP_AUTHOR := bryanthaboi, port by andrewqsantos
|
|||||||
APP_VERSION ?= 0.0.0
|
APP_VERSION ?= 0.0.0
|
||||||
|
|
||||||
# Prefer project Switch icon if present
|
# Prefer project Switch icon if present
|
||||||
ICON := $(TOPDIR)/../../assets/switch/icon.jpg
|
ICON := $(TOPDIR)/../assets/icon.jpg
|
||||||
LOGO_RGBA_SRC := $(TOPDIR)/assets/logo.rgba
|
LOGO_RGBA_SRC := $(TOPDIR)/../assets/logo.rgba
|
||||||
LOGO_ROMFS := $(CURDIR)/$(ROMFS)/logo.rgba
|
LOGO_ROMFS := $(CURDIR)/$(ROMFS)/logo.rgba
|
||||||
|
|
||||||
#---------------------------------------------------------------------------------
|
#---------------------------------------------------------------------------------
|
||||||
@@ -131,7 +131,7 @@ ifneq ($(ROMFS),)
|
|||||||
export NROFLAGS += --romfsdir=$(CURDIR)/$(ROMFS)
|
export NROFLAGS += --romfsdir=$(CURDIR)/$(ROMFS)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
BOOTSTRAP_DIR := $(TOPDIR)/../switch-ota-bootstrap
|
BOOTSTRAP_DIR := $(TOPDIR)/../ota-bootstrap
|
||||||
BOOTSTRAP_ROMFS := $(CURDIR)/$(ROMFS)/ota-bootstrap.nro
|
BOOTSTRAP_ROMFS := $(CURDIR)/$(ROMFS)/ota-bootstrap.nro
|
||||||
|
|
||||||
.PHONY: $(BUILD) clean all host-test sync-romfs bootstrap-romfs
|
.PHONY: $(BUILD) clean all host-test sync-romfs bootstrap-romfs
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ with `envSetNextLoad`.
|
|||||||
|
|
||||||
The LÖVE self-updater (`src/update/Check.lua`) stays **disabled** on NX.
|
The LÖVE self-updater (`src/update/Check.lua`) stays **disabled** on NX.
|
||||||
Wire format (also in Lua): `src/update/SwitchOta.lua`.
|
Wire format (also in Lua): `src/update/SwitchOta.lua`.
|
||||||
NACP icon: `assets/switch/icon.jpg`.
|
NACP icon: `ports/switch/assets/icon.jpg`.
|
||||||
|
|
||||||
## Layout on microSD
|
## Layout on microSD
|
||||||
|
|
||||||
@@ -25,7 +25,7 @@ sdmc:/switch/gen1recomp/pokemon-love2d/ <- saves (never touched by OTA)
|
|||||||
## Host tests (no DEVKITPRO)
|
## Host tests (no DEVKITPRO)
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd native/switch-ota-launcher
|
cd ports/switch/ota-launcher
|
||||||
make host-test
|
make host-test
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -40,7 +40,7 @@ Needs `DEVKITPRO` with packages roughly:
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
export DEVKITPRO=/opt/devkitpro # typical
|
export DEVKITPRO=/opt/devkitpro # typical
|
||||||
cd native/switch-ota-launcher
|
cd ports/switch/ota-launcher
|
||||||
make
|
make
|
||||||
# -> gen1recomp.nro
|
# -> gen1recomp.nro
|
||||||
```
|
```
|
||||||
@@ -62,7 +62,7 @@ Docker fallback uses the same pin as fused builds (`scripts/switch/dkp-docker.im
|
|||||||
## OTA logo asset
|
## OTA logo asset
|
||||||
|
|
||||||
The launcher draws a pre-scaled logo from `romfs:/logo.rgba` (no PNG decoder in
|
The launcher draws a pre-scaled logo from `romfs:/logo.rgba` (no PNG decoder in
|
||||||
the NRO). The baked blob lives at `assets/logo.rgba` and is copied into romfs at
|
the NRO). The baked blob lives at `../assets/logo.rgba` and is copied into romfs at
|
||||||
build time. After changing `assets/logo/logo.png`, regenerate:
|
build time. After changing `assets/logo/logo.png`, regenerate:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ from pathlib import Path
|
|||||||
|
|
||||||
ROOT = Path(__file__).resolve().parents[2]
|
ROOT = Path(__file__).resolve().parents[2]
|
||||||
DEFAULT_SRC = ROOT / "assets/logo/logo.png"
|
DEFAULT_SRC = ROOT / "assets/logo/logo.png"
|
||||||
DEFAULT_OUT = ROOT / "native/switch-ota-launcher/assets/logo.rgba"
|
DEFAULT_OUT = ROOT / "ports/switch/assets/logo.rgba"
|
||||||
DEFAULT_MAX_W = 320
|
DEFAULT_MAX_W = 320
|
||||||
DEFAULT_MAX_H = 90
|
DEFAULT_MAX_H = 90
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|||||||
LOVE_NX_TAG="11.5-nx1"
|
LOVE_NX_TAG="11.5-nx1"
|
||||||
LOVE_NX_DIR="$ROOT/.bazinga/love-nx/$LOVE_NX_TAG"
|
LOVE_NX_DIR="$ROOT/.bazinga/love-nx/$LOVE_NX_TAG"
|
||||||
LOVE_ELF="$LOVE_NX_DIR/love.elf"
|
LOVE_ELF="$LOVE_NX_DIR/love.elf"
|
||||||
ICON="$ROOT/assets/switch/icon.jpg"
|
ICON="$ROOT/ports/switch/assets/icon.jpg"
|
||||||
APP_NAME="gen1recomp"
|
APP_NAME="gen1recomp"
|
||||||
APP_AUTHOR="bryanthaboi, port by andrewqsantos"
|
APP_AUTHOR="bryanthaboi, port by andrewqsantos"
|
||||||
DKP_IMAGE_FILE="$ROOT/scripts/switch/dkp-docker.image"
|
DKP_IMAGE_FILE="$ROOT/scripts/switch/dkp-docker.image"
|
||||||
@@ -93,7 +93,7 @@ run_fused_docker() {
|
|||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
nacptool --create '$APP_NAME' '$APP_AUTHOR' '$VERSION' /work/control.nacp
|
nacptool --create '$APP_NAME' '$APP_AUTHOR' '$VERSION' /work/control.nacp
|
||||||
elf2nro /src/.bazinga/love-nx/$LOVE_NX_TAG/love.elf /out/$out_base \
|
elf2nro /src/.bazinga/love-nx/$LOVE_NX_TAG/love.elf /out/$out_base \
|
||||||
--icon=/src/assets/switch/icon.jpg \
|
--icon=/src/ports/switch/assets/icon.jpg \
|
||||||
--nacp=/work/control.nacp \
|
--nacp=/work/control.nacp \
|
||||||
--romfsdir=/work/romfs
|
--romfsdir=/work/romfs
|
||||||
"
|
"
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|||||||
# shellcheck source=common.sh
|
# shellcheck source=common.sh
|
||||||
. "$SCRIPT_DIR/common.sh"
|
. "$SCRIPT_DIR/common.sh"
|
||||||
|
|
||||||
LAUNCHER_DIR="$ROOT/native/switch-ota-launcher"
|
LAUNCHER_DIR="$ROOT/ports/switch/ota-launcher"
|
||||||
OUT_NRO="${1:-$ROOT/dist/switch/gen1recomp-launcher.nro}"
|
OUT_NRO="${1:-$ROOT/dist/switch/gen1recomp-launcher.nro}"
|
||||||
APP_VERSION="${2:-${GEN1_LAUNCHER_VERSION:-0.0.0}}"
|
APP_VERSION="${2:-${GEN1_LAUNCHER_VERSION:-0.0.0}}"
|
||||||
DKP_IMAGE_FILE="$ROOT/scripts/switch/dkp-docker.image"
|
DKP_IMAGE_FILE="$ROOT/scripts/switch/dkp-docker.image"
|
||||||
@@ -59,7 +59,7 @@ if command -v docker >/dev/null 2>&1; then
|
|||||||
say "building launcher NRO via Docker ($image, NACP $APP_VERSION)"
|
say "building launcher NRO via Docker ($image, NACP $APP_VERSION)"
|
||||||
if ! docker run --rm \
|
if ! docker run --rm \
|
||||||
-v "$ROOT:/work" \
|
-v "$ROOT:/work" \
|
||||||
-w /work/native/switch-ota-launcher \
|
-w /work/ports/switch/ota-launcher \
|
||||||
-e "APP_VERSION=$APP_VERSION" \
|
-e "APP_VERSION=$APP_VERSION" \
|
||||||
"$image" \
|
"$image" \
|
||||||
bash -lc 'pacman -Sy --noconfirm switch-curl switch-mbedtls switch-zlib switch-zziplib >/dev/null 2>&1 || true; make clean; make all APP_VERSION="$APP_VERSION"'; then
|
bash -lc 'pacman -Sy --noconfirm switch-curl switch-mbedtls switch-zlib switch-zziplib >/dev/null 2>&1 || true; make clean; make all APP_VERSION="$APP_VERSION"'; then
|
||||||
|
|||||||
@@ -102,7 +102,7 @@ Pick one:
|
|||||||
|
|
||||||
Then re-run: scripts/build_switch.sh --fetch --fused
|
Then re-run: scripts/build_switch.sh --fetch --fused
|
||||||
|
|
||||||
See docs/switch-build.md and native/switch-ota-launcher/README.md.
|
See docs/switch-build.md and ports/switch/ota-launcher/README.md.
|
||||||
EOF
|
EOF
|
||||||
)"
|
)"
|
||||||
}
|
}
|
||||||
@@ -121,7 +121,7 @@ Re-run with a clean tree:
|
|||||||
If packages look wrong, reinstall:
|
If packages look wrong, reinstall:
|
||||||
bash scripts/switch/install_devkitpro_deps.sh
|
bash scripts/switch/install_devkitpro_deps.sh
|
||||||
|
|
||||||
See native/switch-ota-launcher/README.md.
|
See ports/switch/ota-launcher/README.md.
|
||||||
EOF
|
EOF
|
||||||
)"
|
)"
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -395,7 +395,7 @@ if [ -f "$ROOT/scripts/switch/build_ota_launcher.sh" ] \
|
|||||||
&& grep -q 'ota_launcher_deps_ready' "$ROOT/scripts/switch/build_ota_launcher.sh" \
|
&& grep -q 'ota_launcher_deps_ready' "$ROOT/scripts/switch/build_ota_launcher.sh" \
|
||||||
&& grep -q 'fail_missing_devkitpro' "$ROOT/scripts/switch/build_ota_launcher.sh" \
|
&& grep -q 'fail_missing_devkitpro' "$ROOT/scripts/switch/build_ota_launcher.sh" \
|
||||||
&& grep -q 'preflight_fused_build' "$ROOT/scripts/build_switch.sh" \
|
&& grep -q 'preflight_fused_build' "$ROOT/scripts/build_switch.sh" \
|
||||||
&& [ -f "$ROOT/native/switch-ota-launcher/Makefile" ]
|
&& [ -f "$ROOT/ports/switch/ota-launcher/Makefile" ]
|
||||||
then
|
then
|
||||||
ok "native OTA launcher sources + build_ota_launcher.sh present"
|
ok "native OTA launcher sources + build_ota_launcher.sh present"
|
||||||
else
|
else
|
||||||
@@ -415,20 +415,20 @@ else
|
|||||||
bad "legacy separate OTA-only packer / asset still present"
|
bad "legacy separate OTA-only packer / asset still present"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if grep -q 'ota_ui_prompt_update' "$ROOT/native/switch-ota-launcher/src/main.c" \
|
if grep -q 'ota_ui_prompt_update' "$ROOT/ports/switch/ota-launcher/src/main.c" \
|
||||||
&& grep -q 'ota_net_init' "$ROOT/native/switch-ota-launcher/src/main.c" \
|
&& grep -q 'ota_net_init' "$ROOT/ports/switch/ota-launcher/src/main.c" \
|
||||||
&& grep -q 'framebufferCreate\|COL_RAIL' "$ROOT/native/switch-ota-launcher/src/ota_ui.c" \
|
&& grep -q 'framebufferCreate\|COL_RAIL' "$ROOT/ports/switch/ota-launcher/src/ota_ui.c" \
|
||||||
&& grep -q '^ROMFS' "$ROOT/native/switch-ota-launcher/Makefile" \
|
&& grep -q '^ROMFS' "$ROOT/ports/switch/ota-launcher/Makefile" \
|
||||||
&& grep -q 'cacert.pem' "$ROOT/native/switch-ota-launcher/Makefile"
|
&& grep -q 'cacert.pem' "$ROOT/ports/switch/ota-launcher/Makefile"
|
||||||
then
|
then
|
||||||
ok "launcher UI uses framebuffer (no prompt when up to date)"
|
ok "launcher UI uses framebuffer (no prompt when up to date)"
|
||||||
else
|
else
|
||||||
bad "launcher missing branded ota_ui / ROMFS"
|
bad "launcher missing branded ota_ui / ROMFS"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -f "$ROOT/native/switch-ota-launcher/src/ota_unzip.c" ] \
|
if [ -f "$ROOT/ports/switch/ota-launcher/src/ota_unzip.c" ] \
|
||||||
&& grep -q 'zzip/zzip.h' "$ROOT/native/switch-ota-launcher/src/ota_unzip.c" \
|
&& grep -q 'zzip/zzip.h' "$ROOT/ports/switch/ota-launcher/src/ota_unzip.c" \
|
||||||
&& grep -q 'ota_unzip_extract_file' "$ROOT/native/switch-ota-launcher/src/main.c"
|
&& grep -q 'ota_unzip_extract_file' "$ROOT/ports/switch/ota-launcher/src/main.c"
|
||||||
then
|
then
|
||||||
ok "launcher wires zziplib ota_unzip_extract_file"
|
ok "launcher wires zziplib ota_unzip_extract_file"
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -457,8 +457,8 @@ test('AC-008: Gates de regressão anti-“erro invisível” @spec:AC-008', () =
|
|||||||
});
|
});
|
||||||
|
|
||||||
test('AC-009: Protocolo C host-testável espelha SwitchOta.lua @spec:AC-009', () => {
|
test('AC-009: Protocolo C host-testável espelha SwitchOta.lua @spec:AC-009', () => {
|
||||||
const proto = read('native/switch-ota-launcher/src/ota_protocol.c');
|
const proto = read('ports/switch/ota-launcher/src/ota_protocol.c');
|
||||||
const header = read('native/switch-ota-launcher/include/ota_protocol.h');
|
const header = read('ports/switch/ota-launcher/include/ota_protocol.h');
|
||||||
assert.match(header, /OTA_CHECK_TIMEOUT_SEC\s+6/);
|
assert.match(header, /OTA_CHECK_TIMEOUT_SEC\s+6/);
|
||||||
assert.match(header, /ota_compare_semver/);
|
assert.match(header, /ota_compare_semver/);
|
||||||
assert.match(header, /ota_parse_release/);
|
assert.match(header, /ota_parse_release/);
|
||||||
@@ -476,7 +476,7 @@ test('AC-009: Protocolo C host-testável espelha SwitchOta.lua @spec:AC-009', ()
|
|||||||
// Compile + run C host tests (gcc)
|
// Compile + run C host tests (gcc)
|
||||||
const r = spawnSync(
|
const r = spawnSync(
|
||||||
'make',
|
'make',
|
||||||
['-C', path.join(root, 'native/switch-ota-launcher'), 'host-test'],
|
['-C', path.join(root, 'ports/switch/ota-launcher'), 'host-test'],
|
||||||
{ encoding: 'utf8' }
|
{ encoding: 'utf8' }
|
||||||
);
|
);
|
||||||
assert.equal(r.status, 0, `host-test failed:\n${r.stdout}\n${r.stderr}`);
|
assert.equal(r.status, 0, `host-test failed:\n${r.stdout}\n${r.stderr}`);
|
||||||
@@ -485,17 +485,17 @@ test('AC-009: Protocolo C host-testável espelha SwitchOta.lua @spec:AC-009', ()
|
|||||||
|
|
||||||
test('AC-010: Fonte do launcher e Makefile DEVKITPRO existem @spec:AC-010', () => {
|
test('AC-010: Fonte do launcher e Makefile DEVKITPRO existem @spec:AC-010', () => {
|
||||||
for (const rel of [
|
for (const rel of [
|
||||||
'native/switch-ota-launcher/Makefile',
|
'ports/switch/ota-launcher/Makefile',
|
||||||
'native/switch-ota-launcher/README.md',
|
'ports/switch/ota-launcher/README.md',
|
||||||
'native/switch-ota-launcher/src/main.c',
|
'ports/switch/ota-launcher/src/main.c',
|
||||||
'native/switch-ota-launcher/src/ota_net.c',
|
'ports/switch/ota-launcher/src/ota_net.c',
|
||||||
'native/switch-ota-launcher/src/ota_fs.c',
|
'ports/switch/ota-launcher/src/ota_fs.c',
|
||||||
'scripts/switch/build_ota_launcher.sh',
|
'scripts/switch/build_ota_launcher.sh',
|
||||||
'docs/switch-build.md',
|
'docs/switch-build.md',
|
||||||
]) {
|
]) {
|
||||||
assert.ok(fs.existsSync(path.join(root, rel)), `missing ${rel}`);
|
assert.ok(fs.existsSync(path.join(root, rel)), `missing ${rel}`);
|
||||||
}
|
}
|
||||||
const main = read('native/switch-ota-launcher/src/main.c');
|
const main = read('ports/switch/ota-launcher/src/main.c');
|
||||||
assert.match(main, /envSetNextLoad|ota_fs_handoff_to_game/);
|
assert.match(main, /envSetNextLoad|ota_fs_handoff_to_game/);
|
||||||
assert.match(main, /gen1recomp-game\.nro|OTA_GAME_NRO_NAME/);
|
assert.match(main, /gen1recomp-game\.nro|OTA_GAME_NRO_NAME/);
|
||||||
assert.match(main, /Quiet by default|stays quiet|LÖVE self-updater stays off|self-updater stays off/i);
|
assert.match(main, /Quiet by default|stays quiet|LÖVE self-updater stays off|self-updater stays off/i);
|
||||||
@@ -505,13 +505,13 @@ test('AC-010: Fonte do launcher e Makefile DEVKITPRO existem @spec:AC-010', () =
|
|||||||
assert.doesNotMatch(main, /\u2026/, 'OTA UI strings must be ASCII (no Unicode ellipsis)');
|
assert.doesNotMatch(main, /\u2026/, 'OTA UI strings must be ASCII (no Unicode ellipsis)');
|
||||||
assert.doesNotMatch(main, /ota_ui_alert\([^)]*Install failed/, 'generic install alert removed');
|
assert.doesNotMatch(main, /ota_ui_alert\([^)]*Install failed/, 'generic install alert removed');
|
||||||
assert.doesNotMatch(main, /consoleInit/, 'no terminal console UI');
|
assert.doesNotMatch(main, /consoleInit/, 'no terminal console UI');
|
||||||
assert.ok(fs.existsSync(path.join(root, 'native/switch-ota-launcher/src/ota_ui.c')));
|
assert.ok(fs.existsSync(path.join(root, 'ports/switch/ota-launcher/src/ota_ui.c')));
|
||||||
const otaUi = read('native/switch-ota-launcher/src/ota_ui.c');
|
const otaUi = read('ports/switch/ota-launcher/src/ota_ui.c');
|
||||||
assert.match(otaUi, /COL_RAIL_R|rail|FFD600|255,\s*214/);
|
assert.match(otaUi, /COL_RAIL_R|rail|FFD600|255,\s*214/);
|
||||||
assert.match(otaUi, /logo\.rgba/);
|
assert.match(otaUi, /logo\.rgba/);
|
||||||
assert.doesNotMatch(otaUi, /stb_image/);
|
assert.doesNotMatch(otaUi, /stb_image/);
|
||||||
assert.ok(
|
assert.ok(
|
||||||
fs.existsSync(path.join(root, 'native/switch-ota-launcher/assets/logo.rgba')),
|
fs.existsSync(path.join(root, 'ports/switch/assets/logo.rgba')),
|
||||||
'pre-baked OTA logo asset'
|
'pre-baked OTA logo asset'
|
||||||
);
|
);
|
||||||
assert.ok(
|
assert.ok(
|
||||||
@@ -521,44 +521,44 @@ test('AC-010: Fonte do launcher e Makefile DEVKITPRO existem @spec:AC-010', () =
|
|||||||
assert.match(otaUi, /ota_ui_sanitize_ascii/);
|
assert.match(otaUi, /ota_ui_sanitize_ascii/);
|
||||||
assert.match(otaUi, /draw_text_wrapped_centered/);
|
assert.match(otaUi, /draw_text_wrapped_centered/);
|
||||||
assert.match(otaUi, /ota_ui_alert_error/);
|
assert.match(otaUi, /ota_ui_alert_error/);
|
||||||
assert.match(read('native/switch-ota-launcher/src/ota_net.c'), /ota_net_init/);
|
assert.match(read('ports/switch/ota-launcher/src/ota_net.c'), /ota_net_init/);
|
||||||
assert.match(read('native/switch-ota-launcher/src/main.c'), /ota_net_init/);
|
assert.match(read('ports/switch/ota-launcher/src/main.c'), /ota_net_init/);
|
||||||
assert.match(read('native/switch-ota-launcher/src/ota_net.c'), /CURLOPT_SSL_VERIFYPEER,\s*1L/);
|
assert.match(read('ports/switch/ota-launcher/src/ota_net.c'), /CURLOPT_SSL_VERIFYPEER,\s*1L/);
|
||||||
assert.match(read('native/switch-ota-launcher/src/ota_net.c'), /romfs:\/cacert\.pem/);
|
assert.match(read('ports/switch/ota-launcher/src/ota_net.c'), /romfs:\/cacert\.pem/);
|
||||||
assert.doesNotMatch(read('native/switch-ota-launcher/src/ota_net.c'), /CURLOPT_SSL_VERIFYPEER,\s*0L/);
|
assert.doesNotMatch(read('ports/switch/ota-launcher/src/ota_net.c'), /CURLOPT_SSL_VERIFYPEER,\s*0L/);
|
||||||
assert.match(read('native/switch-ota-launcher/Makefile'), /^ROMFS\s*:=/m);
|
assert.match(read('ports/switch/ota-launcher/Makefile'), /^ROMFS\s*:=/m);
|
||||||
assert.match(read('native/switch-ota-launcher/Makefile'), /cacert\.pem/);
|
assert.match(read('ports/switch/ota-launcher/Makefile'), /cacert\.pem/);
|
||||||
assert.match(read('native/switch-ota-launcher/Makefile'), /logo\.rgba/);
|
assert.match(read('ports/switch/ota-launcher/Makefile'), /logo\.rgba/);
|
||||||
|
|
||||||
const mk = read('native/switch-ota-launcher/Makefile');
|
const mk = read('ports/switch/ota-launcher/Makefile');
|
||||||
assert.match(mk, /libnx\/switch_rules|DEVKITPRO/);
|
assert.match(mk, /libnx\/switch_rules|DEVKITPRO/);
|
||||||
assert.match(mk, /-lcurl/);
|
assert.match(mk, /-lcurl/);
|
||||||
assert.match(mk, /-lzzip/);
|
assert.match(mk, /-lzzip/);
|
||||||
assert.match(mk, /assets\/switch\/icon\.jpg/, 'uses project Switch icon');
|
assert.match(mk, /ports\/switch\/assets\/icon\.jpg|assets\/icon\.jpg/, 'uses project Switch icon');
|
||||||
|
|
||||||
assert.ok(fs.existsSync(path.join(root, 'native/switch-ota-launcher/src/ota_unzip.c')));
|
assert.ok(fs.existsSync(path.join(root, 'ports/switch/ota-launcher/src/ota_unzip.c')));
|
||||||
assert.match(read('native/switch-ota-launcher/src/ota_unzip.c'), /zzip\/zzip\.h/);
|
assert.match(read('ports/switch/ota-launcher/src/ota_unzip.c'), /zzip\/zzip\.h/);
|
||||||
assert.match(read('native/switch-ota-launcher/src/main.c'), /ota_unzip_extract_file/);
|
assert.match(read('ports/switch/ota-launcher/src/main.c'), /ota_unzip_extract_file/);
|
||||||
assert.match(read('native/switch-ota-launcher/src/main.c'), /GAME_MEMBER_IN_ZIP|switch\/gen1recomp\//);
|
assert.match(read('ports/switch/ota-launcher/src/main.c'), /GAME_MEMBER_IN_ZIP|switch\/gen1recomp\//);
|
||||||
assert.match(read('native/switch-ota-launcher/src/main.c'), /LAUNCHER_MEMBER_IN_ZIP|ota_fs_stage_launcher_bootstrap/);
|
assert.match(read('ports/switch/ota-launcher/src/main.c'), /LAUNCHER_MEMBER_IN_ZIP|ota_fs_stage_launcher_bootstrap/);
|
||||||
assert.match(read('native/switch-ota-launcher/src/main.c'), /ota_fs_stage_launcher_bootstrap\([\s\S]*\) != 0/);
|
assert.match(read('ports/switch/ota-launcher/src/main.c'), /ota_fs_stage_launcher_bootstrap\([\s\S]*\) != 0/);
|
||||||
assert.match(read('native/switch-ota-launcher/src/main.c'), /return 2.*bootstrap|bootstrap.*return 2/i);
|
assert.match(read('ports/switch/ota-launcher/src/main.c'), /return 2.*bootstrap|bootstrap.*return 2/i);
|
||||||
assert.match(read('native/switch-ota-launcher/src/ota_fs.c'), /ota_fs_atomic_replace_nro/);
|
assert.match(read('ports/switch/ota-launcher/src/ota_fs.c'), /ota_fs_atomic_replace_nro/);
|
||||||
assert.match(read('native/switch-ota-launcher/src/ota_fs.c'), /remove\(dest\)/);
|
assert.match(read('ports/switch/ota-launcher/src/ota_fs.c'), /remove\(dest\)/);
|
||||||
assert.doesNotMatch(read('native/switch-ota-launcher/src/ota_fs.c'), /#ifdef _WIN32[\s\S]*remove\(dest\)/);
|
assert.doesNotMatch(read('ports/switch/ota-launcher/src/ota_fs.c'), /#ifdef _WIN32[\s\S]*remove\(dest\)/);
|
||||||
assert.doesNotMatch(read('scripts/switch/install_devkitpro_deps.sh'), /switch-minizip/);
|
assert.doesNotMatch(read('scripts/switch/install_devkitpro_deps.sh'), /switch-minizip/);
|
||||||
assert.match(read('scripts/switch/install_devkitpro_deps.sh'), /switch-zziplib/);
|
assert.match(read('scripts/switch/install_devkitpro_deps.sh'), /switch-zziplib/);
|
||||||
assert.match(read('scripts/switch/install_devkitpro_deps.sh'), /switch-dev/);
|
assert.match(read('scripts/switch/install_devkitpro_deps.sh'), /switch-dev/);
|
||||||
|
|
||||||
const buildDoc = read('docs/switch-build.md');
|
const buildDoc = read('docs/switch-build.md');
|
||||||
assert.match(buildDoc, /native\/switch-ota-launcher|build_ota_launcher/);
|
assert.match(buildDoc, /ports\/switch\/ota-launcher|build_ota_launcher/);
|
||||||
assert.match(buildDoc, /native packages.*or.*Docker|native or Docker/i);
|
assert.match(buildDoc, /native packages.*or.*Docker|native or Docker/i);
|
||||||
assert.match(buildDoc, /--fused|install_devkitpro_deps/);
|
assert.match(buildDoc, /--fused|install_devkitpro_deps/);
|
||||||
assert.match(buildDoc, /Requires DEVKITPRO|DEVKITPRO is[\s\S]*required/i);
|
assert.match(buildDoc, /Requires DEVKITPRO|DEVKITPRO is[\s\S]*required/i);
|
||||||
assert.doesNotMatch(buildDoc, /switch-ota\.zip/);
|
assert.doesNotMatch(buildDoc, /switch-ota\.zip/);
|
||||||
assert.doesNotMatch(buildDoc, /--ota\b/);
|
assert.doesNotMatch(buildDoc, /--ota\b/);
|
||||||
|
|
||||||
const readme = read('native/switch-ota-launcher/README.md');
|
const readme = read('ports/switch/ota-launcher/README.md');
|
||||||
assert.match(readme, /DEVKITPRO|devkitPro/i);
|
assert.match(readme, /DEVKITPRO|devkitPro/i);
|
||||||
assert.match(readme, /Docker|devkita64/i);
|
assert.match(readme, /Docker|devkita64/i);
|
||||||
assert.match(readme, /Quiet|quiet|silen/i);
|
assert.match(readme, /Quiet|quiet|silen/i);
|
||||||
|
|||||||
Reference in New Issue
Block a user