diff --git a/default.nix b/default.nix index c4cb29b..ca03843 100644 --- a/default.nix +++ b/default.nix @@ -170,6 +170,7 @@ in rec { pkgs.busybox pkgs.yq-go pkgs.jq + pkgs.dig ]} export SHELL=${pkgs.bash}/bin/bash exec ${pkgs.bash}/bin/bash ${./tests}/entrypoint.sh "$@" diff --git a/tests.sh b/tests.sh index 2cebb42..2faabb2 100755 --- a/tests.sh +++ b/tests.sh @@ -8,8 +8,9 @@ this_user="$(whoami)" echo "Requesting sudo in order to set thread capabilities, will drop back down to user '$this_user' immediately" sudo -E capsh \ - --caps="cap_net_admin+eip cap_setpcap,cap_setuid,cap_setgid+ep" \ + --caps="cap_net_admin,cap_net_bind_service+eip cap_setpcap,cap_setuid,cap_setgid+ep" \ --keep=1 \ --user="$this_user" \ --addamb=cap_net_admin \ + --addamb=cap_net_bind_service \ -- "$entrypoint" "$@" diff --git a/tests/NOTES.txt b/tests/NOTES.txt new file mode 100644 index 0000000..cdb0c96 --- /dev/null +++ b/tests/NOTES.txt @@ -0,0 +1,3 @@ +Ctrl+A X -> exits + +qemu-system-aarch64 -M virt -nographic -cdrom tests/alpine-virt-3.17.3-aarch64.iso diff --git a/tests/cases/dnsmasq/00-hosts.sh b/tests/cases/dnsmasq/00-hosts.sh new file mode 100644 index 0000000..2f07ded --- /dev/null +++ b/tests/cases/dnsmasq/00-hosts.sh @@ -0,0 +1,20 @@ +# shellcheck source=../../utils/with-1-data-1-empty-node-cluster.sh +source "$UTILS"/with-1-data-1-empty-node-cluster.sh + +function assert_a { + want_ip="$1" + hostname="$2" + r="$(dig @"$current_ip" +noall +answer "$hostname")" + echo "$r" | grep -q "$want_ip" +} + +as_primus +assert_a "$primus_ip" primus.hosts.shared.test + +# TODO This doesn't work at present, there would need to be some mechanism to +# block the test until secondus' bootstrap info can propagate to primus. +#assert_a "$secondus_ip" secondus.hosts.shared.test + +as_secondus +assert_a "$primus_ip" primus.hosts.shared.test +assert_a "$secondus_ip" secondus.hosts.shared.test diff --git a/tests/utils/with-1-data-1-empty-node-cluster.sh b/tests/utils/with-1-data-1-empty-node-cluster.sh index 5458067..11d874e 100644 --- a/tests/utils/with-1-data-1-empty-node-cluster.sh +++ b/tests/utils/with-1-data-1-empty-node-cluster.sh @@ -1,14 +1,20 @@ set -e base="shared/1-data-1-empty" + primus_base="$base/primus" +primus_ip="10.6.9.1" + secondus_base="$base/secondus" +secondus_ip="10.6.9.2" function as_primus { + current_ip="$primus_ip" eval "$($SHELL "$UTILS/shared-daemon-env.sh" "$primus_base")" } function as_secondus { + current_ip="$secondus_ip" eval "$($SHELL "$UTILS/shared-daemon-env.sh" "$secondus_base")" } @@ -48,7 +54,7 @@ EOF --config-path daemon.yml \ --domain shared.test \ --hostname primus \ - --ip-net "10.6.9.1/24" \ + --ip-net "$current_ip/24" \ --name "testing" \ > admin.yml @@ -64,7 +70,7 @@ EOF isle admin create-bootstrap \ --admin-path admin.yml \ --hostname secondus \ - --ip 10.6.9.2 \ + --ip "$secondus_ip" \ > "$secondus_bootstrap" (