Anti-sèche

Travailler sur une composition

cd DOSSIER-DE-LA-COMPOSITION
nix develop
nxc build -f FLAVOUR
nxc start
nxc connect ROLE

Lancer les tests

nxc start
# Bien attendre que la machine soit démarrée, puis
nxc driver -t

Accéder à un service en TCP / HTTP

Pour accéder à un service qui tourne dans une VM qemu, on peut faire un tunnel SSH (à la place de faire nxc connect ROLE).

ssh -L PORT:localhost:PORT root@localhost -p 22022

Le port 22022 est à remplacer avec le port SSH de la machine (22022 est le premier, puis on a 22023, etc).

En théorie, on peut aussi ajouter des arguments à QEMU pour qu'il fasse le forwarding, mais en pratique ça ne marche pas :

env QEMU_OPTS="-netdev user,id=n0,hostfwd=tcp::PORT-:PORT" nxc start

Si jamais les VM QEMU ont du mal à tourner, on peut essayer d'activer explicitement KVM avec la variable d'environnement QEMU_OPTS=--enable-kvm. On peut aussi ajouter de la mémoire avec MEM=2048 (en Mio, par défaut il y en 1024).

Une fois qu'un port est « forwardé », on peut y accéder depuis la machine hôte, par exemple en ouvrant http://localhost:PORT dans un navigateur, ou en utilisant curl.