mirror of
https://github.com/tailscale/tailscale.git
synced 2025-04-20 21:51:42 +00:00
tstest/integration/vms: test on stable nixos (21.11)
I would like to do some more customized integration tests in the future, (specifically, bringing up a mitm proxy and testing tailscaled through that) so hoping to bring back the nixos wiring to support that. Signed-off-by: Tom DNetto <tom@tailscale.com>
This commit is contained in:
parent
8226f1482c
commit
8f6d8cf979
@ -35,7 +35,7 @@ If you are using [Nix](https://nixos.org), you can run all of the tests with the
|
|||||||
correct command line tools using this command:
|
correct command line tools using this command:
|
||||||
|
|
||||||
```console
|
```console
|
||||||
$ nix-shell -p openssh -p go -p qemu -p cdrkit --run "go test . --run-vm-tests --v --timeout 30m --no-s3"
|
$ nix-shell -p nixos-generators -p openssh -p go -p qemu -p cdrkit --run "go test . --run-vm-tests --v --timeout 30m --no-s3"
|
||||||
```
|
```
|
||||||
|
|
||||||
Keep the timeout high for the first run, especially if you are not downloading
|
Keep the timeout high for the first run, especially if you are not downloading
|
||||||
|
@ -20,6 +20,7 @@ type Distro struct {
|
|||||||
MemoryMegs int // VM memory in megabytes
|
MemoryMegs int // VM memory in megabytes
|
||||||
PackageManager string // yum/apt/dnf/zypper
|
PackageManager string // yum/apt/dnf/zypper
|
||||||
InitSystem string // systemd/openrc
|
InitSystem string // systemd/openrc
|
||||||
|
HostGenerated bool // generated image rather than downloaded
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *Distro) InstallPre() string {
|
func (d *Distro) InstallPre() string {
|
||||||
|
@ -27,4 +27,13 @@
|
|||||||
"PackageManager": "apt",
|
"PackageManager": "apt",
|
||||||
"InitSystem": "systemd"
|
"InitSystem": "systemd"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"Name": "nixos-21-11",
|
||||||
|
"URL": "channel:nixos-21.11",
|
||||||
|
"SHA256Sum": "lolfakesha",
|
||||||
|
"MemoryMegs": 512,
|
||||||
|
"PackageManager": "nix",
|
||||||
|
"InitSystem": "systemd",
|
||||||
|
"HostGenerated": true
|
||||||
|
},
|
||||||
]
|
]
|
||||||
|
@ -18,3 +18,9 @@ func TestRunUbuntu2004(t *testing.T) {
|
|||||||
setupTests(t)
|
setupTests(t)
|
||||||
testOneDistribution(t, 1, Distros[1])
|
testOneDistribution(t, 1, Distros[1])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestRunNixos2111(t *testing.T) {
|
||||||
|
t.Parallel()
|
||||||
|
setupTests(t)
|
||||||
|
testOneDistribution(t, 2, Distros[2])
|
||||||
|
}
|
@ -49,6 +49,13 @@ func (vm *vmInstance) running() bool {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (h *Harness) makeImage(t *testing.T, d Distro, cdir string) string {
|
||||||
|
if !strings.HasPrefix(d.Name, "nixos") {
|
||||||
|
t.Fatal("image generation for non-nixos is not implemented")
|
||||||
|
}
|
||||||
|
return h.makeNixOSImage(t, d, cdir)
|
||||||
|
}
|
||||||
|
|
||||||
// mkVM makes a KVM-accelerated virtual machine and prepares it for introduction
|
// mkVM makes a KVM-accelerated virtual machine and prepares it for introduction
|
||||||
// to the testcontrol server. The function it returns is for killing the virtual
|
// to the testcontrol server. The function it returns is for killing the virtual
|
||||||
// machine when it is time for it to die.
|
// machine when it is time for it to die.
|
||||||
@ -67,7 +74,14 @@ func (h *Harness) mkVM(t *testing.T, n int, d Distro, sshKey, hostURL, tdir stri
|
|||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
mkLayeredQcow(t, tdir, d, fetchDistro(t, d))
|
var qcowPath string
|
||||||
|
if d.HostGenerated {
|
||||||
|
qcowPath = h.makeImage(t, d, cdir)
|
||||||
|
} else {
|
||||||
|
qcowPath = fetchDistro(t, d)
|
||||||
|
}
|
||||||
|
|
||||||
|
mkLayeredQcow(t, tdir, d, qcowPath)
|
||||||
mkSeed(t, d, sshKey, hostURL, tdir, port)
|
mkSeed(t, d, sshKey, hostURL, tdir, port)
|
||||||
|
|
||||||
driveArg := fmt.Sprintf("file=%s,if=virtio", filepath.Join(tdir, d.Name+".qcow2"))
|
driveArg := fmt.Sprintf("file=%s,if=virtio", filepath.Join(tdir, d.Name+".qcow2"))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user