about summary refs log tree commit diff
path: root/tests
AgeCommit message (Collapse)AuthorFilesLines
2010-02-18 * Implemented queryValidPaths() and verifyStore().Eelco Dolstra1-2/+1
2010-02-04 * Grmbl. Timing-sensitive tests are evil.Eelco Dolstra1-1/+1
2009-11-13 * In nix-pull/nix-channel, create the manifests directory if itEelco Dolstra1-6/+0
doesn't exist. The Debian packages don't include the manifests directory, so nix-channel would silently skip doing a nix-pull, resulting in everything being built from source. Thanks to Juan Pedro Bolívar Puente.
2009-09-15 * Two primops: builtins.intersectAttrs and builtins.functionArgs.Eelco Dolstra2-0/+95
intersectAttrs returns the (right-biased) intersection between two attribute sets, e.g. every attribute from the second set that also exists in the first. functionArgs returns the set of attributes expected by a function. The main goal of these is to allow the elimination of most of all-packages.nix. Most package instantiations in all-packages.nix have this form: foo = import ./foo.nix { inherit a b c; }; With intersectAttrs and functionArgs, this can be written as: foo = callPackage (import ./foo.nix) { }; where callPackage = f: args: f ((builtins.intersectAttrs (builtins.functionArgs f) pkgs) // args); I.e., foo.nix is called with all attributes from "pkgs" that it actually needs (e.g., pkgs.a, pkgs.b and pkgs.c). (callPackage can do any other generic package-level stuff we might want, such as applying makeOverridable.) Of course, the automatically supplied arguments can be overriden if needed, e.g. foo = callPackage (import ./foo.nix) { c = c_version_2; }; but for the vast majority of packages, this won't be needed. The advantages are to reduce the amount of typing needed to add a dependency (from three sites to two), and to reduce the number of trivial commits to all-packages.nix. For the former, there have been two previous attempts: - Use "args: with args;" in the package's function definition. This however obscures the actual expected arguments of a function, which is very bad. - Use "{ arg1, arg2, ... }:" in the package's function definition (i.e. use the ellipis "..." to allow arbitrary additional arguments), and then call the function with all of "pkgs" as an argument. But this inhibits error detection if you call it with an misspelled (or obsolete) argument.
2009-05-15 * Change the scoping of "inherit (e) ..." in recs so that theEelco Dolstra2-0/+7
attributes of the rec are in scope of `e'. This is useful in expressions such as rec { lib = import ./lib; inherit (lib) concatStrings; } It does change the semantics of expressions such as let x = {y = 1;}; in rec { x = {y = 2;}; inherit (x) y; }.y This now returns 2 instead of 1. However, no code in Nixpkgs or NixOS seems to rely on the old behaviour.
2009-05-15 * Some syntactic sugar for attribute sets: allow {x.y.z = ...;} as aEelco Dolstra5-0/+35
shorthand for {x = {y = {z = ...;};};}. This is especially useful for NixOS configuration files, e.g. { services = { sshd = { enable = true; port = 2022; }; }; } can now be written as { services.sshd.enable = true; services.sshd.port = 2022; } However, it is currently not permitted to write { services.sshd = {enable = true;}; services.sshd.port = 2022; } as this is considered a duplicate definition of `services.sshd'.
2009-03-31 * Do a substitution even if --max-jobs == 0.Eelco Dolstra1-1/+1
2009-03-30 * Make the poll interval configurable.Eelco Dolstra1-1/+1
2009-03-28 * Simplify communication with the hook a bit (don't use fileEelco Dolstra1-3/+3
descriptors 3/4, just use stdin/stderr).
2009-03-27 * Argh, stupid timing sensitive tests...Eelco Dolstra1-4/+4
2009-03-25 * Negative caching, i.e. caching of build failures. Disabled byEelco Dolstra3-1/+45
default. This is mostly useful for Hydra.
2009-03-25 * Removed the locking.sh test; it's redundant because of the extendedEelco Dolstra5-45/+11
parallel.sh test. Also, don't call multiple nix-builds in parallel, since they can race creating .nix-build-tmp-derivation.
2009-03-25 * Use bash in the tests.Eelco Dolstra2-1/+2
2009-03-23 * Make this test a bit more robust. It's still timing dependentEelco Dolstra3-10/+14
though.
2009-03-22 * Test case (currently fails): multiple Nix builds shouldn't blockEelco Dolstra1-2/+34
waiting on the same lock when there are other builds that can be done.
2009-03-18 * Unify exportReferencesGraph and exportBuildReferencesGraph, and makeEelco Dolstra1-2/+3
sure that it works as expected when you pass it a derivation. That is, we have to make sure that all build-time dependencies are built, and that they are all in the input closure (otherwise remote builds might fail, for example). This is ensured at instantiation time by adding all derivations and their sources to inputDrvs and inputSrcs.
2009-03-18 * Improve the test.Eelco Dolstra1-2/+6
2009-03-18 * Better cleanup after tests.Eelco Dolstra1-5/+8
2009-03-18 * Missing file.Eelco Dolstra1-0/+1
2009-03-18 * Acquire the locks on the output paths before trying to run the buildEelco Dolstra3-5/+7
hook. This fixes a problem with log files being partially or completely filled with 0's because another nix-store process truncates the log file. It should also be more efficient.
2009-03-18 * Clean up some tests (use nix-build where appropriate).Eelco Dolstra6-33/+17
2009-03-17 * Regression test for exportBuildReferencesGraph. It currently fails.Eelco Dolstra3-6/+34
2009-03-17 * Refactoring: renamed *.nix.in to *.nix.Eelco Dolstra22-264/+209
2009-03-17 * Regression test for the `exportReferencesGraph'Eelco Dolstra8-33/+69
derivation attribute.
2008-12-12 * Simplify deleting .lock files in /nix/store: just don't delete themEelco Dolstra2-3/+19
if they belong a path that's currently being built. This gets rid of some Cygwin-specific code.
2008-12-12 * Some hackery to make "make check" succeed on Cygwin.Eelco Dolstra1-0/+4
2008-12-04 * Be sure to clean up the daemon if the test fails.Eelco Dolstra1-0/+2
2008-12-03 (no commit message)Eelco Dolstra2-1/+2
2008-12-03 * Unify the treatment of sources copied to the store, and recursiveEelco Dolstra3-7/+51
SHA-256 outputs of fixed-output derivations. I.e. they now produce the same store path: $ nix-store --add x /nix/store/j2fq9qxvvxgqymvpszhs773ncci45xsj-x $ nix-store --add-fixed --recursive sha256 x /nix/store/j2fq9qxvvxgqymvpszhs773ncci45xsj-x the latter being the same as the path that a derivation derivation { name = "x"; outputHashAlgo = "sha256"; outputHashMode = "recursive"; outputHash = "..."; ... }; produces. This does change the output path for such fixed-output derivations. Fortunately they are quite rare. The most common use is fetchsvn calls with SHA-256 hashes. (There are a handful of those is Nixpkgs, mostly unstable development packages.) * Documented the computation of store paths (in store-api.cc).
2008-11-20 * Urgh.Eelco Dolstra1-0/+2
2008-11-20 * Blindly doing a replacement of occurences of $bindir (when runningEelco Dolstra1-1/+0
the tests) is a bad idea when $bindir = /usr and some programs (like perl) live there. Fortunately it doesn't seem to be needed anymore.
2008-11-20 * Don't set the prefix to /nix by default, rather use the AutoconfEelco Dolstra1-2/+2
default of /usr/local. However, localstatedir and storedir are set to /nix/var/nix and /nix/store respectively unless they're explicitly overriden.
2008-08-14 * Added an experimental feature suggested by Andres: ellipses ("...")Eelco Dolstra7-5/+20
in attribute set pattern matches. This allows defining a function that takes *at least* the listed attributes, while ignoring additional attributes. For instance, {stdenv, fetchurl, fuse, ...}: stdenv.mkDerivation { ... }; defines a function that requires an attribute set that contains the specified attributes but ignores others. The main advantage is that we can then write in all-packages.nix aefs = import ../bla/aefs pkgs; instead of aefs = import ../bla/aefs { inherit stdenv fetchurl fuse; }; This saves a lot of typing (not to mention not having to update all-packages.nix with purely mechanical changes). It saves as much typing as the "args: with args;" style, but has the advantage that the function arguments are properly declared (not implicit in what the body of the "with" uses).
2008-08-14 * @-patterns as in Haskell. For instance, in a function definitionEelco Dolstra5-0/+32
f = args @ {x, y, z}: ...; `args' refers to the argument as a whole, which is further pattern-matched against the attribute set pattern {x, y, z}.
2008-08-14 * Refactoring: combine functions that take an attribute set andEelco Dolstra5-10/+16
functions that take a single argument (plain lambdas) into one AST node (Function) that contains a Pattern node describing the arguments. Current patterns are single lazy arguments (VarPat) and matching against an attribute set (AttrsPat). This refactoring allows other kinds of patterns to be added easily, such as Haskell-style @-patterns, or list pattern matching.
2008-08-14 * Increase the sleep periods a bit to make the test less likely toEelco Dolstra3-12/+17
fail on slow machines. Of course it would be better if this test wasn't timing dependent...
2008-08-11 * Removed the "valid values" feature. Nobody uses it anyway.Eelco Dolstra8-34/+4
2008-08-04 * Fix the tests.Eelco Dolstra2-0/+2
2008-08-02 * Make nix-env --dry-run print the paths to be substituted correctlyEelco Dolstra2-16/+37
again. (After the previous substituter mechanism refactoring I didn't update the code that obtains the references of substitutable paths.) This required some refactoring: the substituter programs are now kept running and receive/respond to info requests via stdin/stdout.
2008-07-18 * Fix the tests.Eelco Dolstra1-0/+6
2008-07-11 * Generalised the dependencyClosure primop to builtins.genericClosure,Eelco Dolstra3-0/+380
which is hopefully more useful. * New primops: length, mul, div.
2008-07-01 * Export the nix-env derivation name parsing and version comparisonEelco Dolstra3-0/+43
logic through the `parseDrvName' and `compareVersions' primops. This will allow expressions to easily check whether some dependency is a specific needed version or falls in some version range. See tests/lang/eval-okay-versions.nix for examples.
2008-06-15 * Test instrumentation.Eelco Dolstra1-0/+1
2008-06-10 * Fixed compatibility with old versions of "wc" that print whitespaceEelco Dolstra1-2/+2
before the count.
2008-06-09 * Merged the no-bdb branch (-r10900:HEADEelco Dolstra5-8/+78
https://svn.nixos.org/repos/nix/nix/branches/no-bdb).
2008-02-05 * Doh.Eelco Dolstra1-1/+1
2008-02-05 * Regression test.Eelco Dolstra2-2/+9
2008-01-04 * New primop `unsafeDiscardStringContext' to get rid of stringEelco Dolstra2-0/+7
contexts. Needed to prevent unnecessary dependencies when building the NixOS manual.
2007-12-31 (no commit message)Eelco Dolstra2-1/+1
2007-12-30 * Fix the hashDerivationModulo test. I should really investigateEelco Dolstra1-2/+4
*why* the test failed...