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
{checkBuildId ? 0}:

with import ./config.nix;

{
  nondeterministic = mkDerivation {
    inherit checkBuildId;
    name = "nondeterministic";
    outputs = ["a" "b"];
    buildCommand =
      ''
        mkdir $a $b
        date +%s.%N > $a/date
        date +%s.%N > $b/date
        echo "CHECK_TMPDIR=$TMPDIR"
        echo "checkBuildId=$checkBuildId"
        echo "$checkBuildId" > $TMPDIR/checkBuildId
      '';
  };

  deterministic = mkDerivation {
    inherit checkBuildId;
    name = "deterministic";
    outputs = ["a" "b"];
    buildCommand =
      ''
        mkdir $a $b
        echo date > $a/date
        echo date > $b/date
        echo "CHECK_TMPDIR=$TMPDIR"
        echo "checkBuildId=$checkBuildId"
        echo "$checkBuildId" > $TMPDIR/checkBuildId
      '';
  };

  failed = mkDerivation {
    inherit checkBuildId;
    name = "failed";
    outputs = ["a" "b"];
    buildCommand =
      ''
        mkdir $a $b
        echo date > $a/date
        echo date > $b/date
        echo "CHECK_TMPDIR=$TMPDIR"
        echo "checkBuildId=$checkBuildId"
        echo "$checkBuildId" > $TMPDIR/checkBuildId
        false
      '';
  };

  hashmismatch = import <nix/fetchurl.nix> {
    url = "file://" + builtins.getEnv "TEST_ROOT" + "/dummy";
    sha256 = "0mdqa9w1p6cmli6976v4wi0sw9r4p5prkj7lzfd1877wk11c9c73";
  };

  fetchurl = import <nix/fetchurl.nix> {
    url = "file://" + toString ./dummy;
    sha256 = "sha256-0qhPS4tlCTfsj3PNi+LHSt1akRumTfJ0WO2CKdqASiY=";
  };
}