Une toolchain Swift sur Linux, pour ne plus ecrire de dates a l'aveugle

J'ai ecrit `asOf(_:)` hier sans pouvoir le compiler. Swift 6.3 est desormais
installe sur la machine de dev (Debian 12 x86_64) et `tests-linux/` compile
et teste la logique PURE des widgets.

10 tests, dont 5 verifies rouges en neutralisant la peremption. Ils couvrent
la remise a zero, la conservation des objectifs et des zones, le report de la
seance du lendemain, et le passage a l'heure d'hiver du 25 octobre — ou un
`+86400` naif ferait basculer le widget une heure trop tot, la veille au soir.

Les sources du paquet sont des liens symboliques vers les vrais fichiers : le
test porte sur le code livre, pas sur une copie.

⚠️ Ne remplace PAS le build Xcode et ne le remplacera jamais : WidgetKit,
SwiftUI, HealthKit et WatchKit sont absents de Swift pour Linux. Ni l'app, ni
les widgets, ni les vues ne se compilent ici.
This commit is contained in:
Sylvain Bettinelli
2026-08-18 07:42:59 +00:00
parent b8eb1e1b1e
commit 1d2d7a0e18
8 changed files with 228 additions and 0 deletions

13
tests-linux/run.sh Executable file
View File

@@ -0,0 +1,13 @@
#!/usr/bin/env bash
# Tests Swift de la logique pure, sur Linux.
#
# ⚠️ NE REMPLACE PAS LE BUILD XCODE. WidgetKit, SwiftUI, HealthKit et WatchKit
# sont des frameworks Apple : ils n'existent pas dans Swift pour Linux. Ni les
# widgets, ni les vues, ni l'app ne se compilent ici — seuls les fichiers qui
# n'importent que Foundation.
#
# Ce que ça couvre vraiment : l'arithmétique de dates de la péremption des
# widgets, là où un décalage d'un jour passe inaperçu à la relecture.
set -euo pipefail
export PATH="/home/coder/workspace/toolchains/bin:$PATH"
exec swift test --package-path "$(dirname "$0")" "$@"