summaryrefslogtreecommitdiffstats
path: root/pkgs/build-support/vm/test.nix
blob: de9042ba18c6a0ee2baf81f3f68510786f328979 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
{
  hello,
  patchelf,
  pcmanfm,
  runCommand,
  stdenv,
  vmTools,
}:
let
  inherit (vmTools)
    diskImages
    makeImageTestScript
    runInLinuxImage
    runInLinuxVM
    ;
in

{
  buildPatchelfInVM = runInLinuxVM patchelf;
  buildPatchelfInDebian = runInLinuxImage (
    stdenv.mkDerivation {
      inherit (patchelf) pname version src;

      diskImage = diskImages.debian13x86_64;
      diskImageFormat = "qcow2";
      memSize = 512;
    }
  );

  buildHelloInVM = runInLinuxVM hello;
  buildStructuredAttrsHelloInVM = runInLinuxVM (hello.overrideAttrs { __structuredAttrs = true; });
  buildHelloInFedora = runInLinuxImage (
    stdenv.mkDerivation {
      inherit (hello) pname version src;

      diskImage = diskImages.fedora42x86_64;
      diskImageFormat = "qcow2";
      memSize = 512;
    }
  );

  buildPcmanrmInVM = runInLinuxVM (
    pcmanfm.overrideAttrs (old: {
      # goes out-of-memory with many cores
      enableParallelBuilding = false;
    })
  );

  # Sanity check to ensure the dpkg --install commands have run
  checkPerlInstalledInDebian = runInLinuxImage (
    runCommand "check-perl"
      {
        diskImage = diskImages.debian13x86_64;
        diskImageFormat = "qcow2";
        memSize = 512;
      }
      ''
        echo Check if perl is present
        perl -v
        echo Check if perl is installed
        dpkg -l | grep 'ii *perl'
        mkdir $out
      ''
  );

  # RPM-based distros
  testFedora42Image = makeImageTestScript diskImages.fedora42x86_64;
  testFedora43Image = makeImageTestScript diskImages.fedora43x86_64;
  testRocky9Image = makeImageTestScript diskImages.rocky9x86_64;
  testRocky10Image = makeImageTestScript diskImages.rocky10x86_64;
  testAlma9Image = makeImageTestScript diskImages.alma9x86_64;
  testAlma10Image = makeImageTestScript diskImages.alma10x86_64;
  testOracle9Image = makeImageTestScript diskImages.oracle9x86_64;
  testAmazon2023Image = makeImageTestScript diskImages.amazon2023x86_64;

  # Debian-based distros
  testDebian11i386Image = makeImageTestScript diskImages.debian11i386;
  testDebian11x86_64Image = makeImageTestScript diskImages.debian11x86_64;
  testDebian12i386Image = makeImageTestScript diskImages.debian12i386;
  testDebian12x86_64Image = makeImageTestScript diskImages.debian12x86_64;
  testDebian13i386Image = makeImageTestScript diskImages.debian13i386;
  testDebian13x86_64Image = makeImageTestScript diskImages.debian13x86_64;
  testUbuntu2204i386Image = makeImageTestScript diskImages.ubuntu2204i386;
  testUbuntu2204x86_64Image = makeImageTestScript diskImages.ubuntu2204x86_64;
  testUbuntu2404x86_64Image = makeImageTestScript diskImages.ubuntu2404x86_64;
  testUbuntu2604x86_64Image = makeImageTestScript diskImages.ubuntu2604x86_64;
}