Skip to content

Commit

Permalink
nixos/tests/virtualbox: Fix @shell@ expansion
Browse files Browse the repository at this point in the history
This has surfaced since f803270.

The commit bumped bash to version 4.4, which caused to change the order
of --subst-var flags in substituteAll, which this test was relying on,
because it added a @shell@ to boot.initrd.postMountCommands.

Our substituter is currently working a bit like this:

original.replace('@var1@', 'val1').replace('@var2@', 'val2')...

Unfortunately, this means that if @var2@ occurs within @var1@ it is
replaced by the new value, so the order of the substvars actually
matter. I highly doubt that we want a behaviour like this and I'm
wondering why it didn't occur to me as a problem while writing the
initial implementation of the VirtualBox tests.

Whether to get rid of this and disallowing substitution of substvars
within substvars is another topic which I think needs discussion in a
different place.

As for now, I'm using stdenv.shell, because the closure size of this
should fit within the initrd, so it's fine especially because it's just
a test.

Tested with the net-hostonlyif and systemd-detect-virt tests and they
both succeed with this change.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
Reported-by: @globin on IRC
  • Loading branch information
aszlig committed Mar 27, 2017
1 parent c46600d commit ee39d4b
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion nixos/tests/virtualbox.nix
Expand Up @@ -65,7 +65,7 @@ let
touch /mnt-root/boot-done
hostname "${vmName}"
mkdir -p /nix/store
unshare -m "@shell@" -c '
unshare -m ${escapeShellArg pkgs.stdenv.shell} -c '
mount -t vboxsf nixstore /nix/store
exec "$stage2Init"
'
Expand Down

1 comment on commit ee39d4b

@globin
Copy link
Member

@globin globin commented on ee39d4b Mar 27, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

Please sign in to comment.