about summary refs log tree commit diff
path: root/tests
AgeCommit message (Collapse)AuthorFilesLines
2014-08-21 Fix testsEelco Dolstra9-26/+20
So all these years I was totally deluded about the meaning of "set -e". You might think that it causes statements like "false && true" or "! true" to fail, but it doesn't...
2014-08-20 Use proper quotes everywhereEelco Dolstra2-2/+2
2014-08-20 Reduce test verbosityEelco Dolstra1-2/+2
2014-08-13 Remove log2html.xsl and friendsEelco Dolstra2-10/+0
It's part of Hydra now.
2014-07-30 Rename nixPath to __nixPathEelco Dolstra1-4/+4
The name ‘nixPath’ breaks existing code.
2014-07-24 tests/remote-builds.nix: Test failing buildEelco Dolstra1-1/+4
2014-07-24 tests/remote-builds.nix: Don't try cache.nixos.orgEelco Dolstra1-0/+1
2014-07-16 Handle case collisions on case-insensitive systemsEelco Dolstra3-1/+20
When running NixOps under Mac OS X, we need to be able to import store paths built on Linux into the local Nix store. However, HFS+ is usually case-insensitive, so if there are directories with file names that differ only in case, then importing will fail. The solution is to add a suffix ("~nix~case~hack~<integer>") to colliding files. For instance, if we have a directory containing xt_CONNMARK.h and xt_connmark.h, then the latter will be renamed to "xt_connmark.h~nix~case~hack~1". If a store path is dumped as a NAR, the suffixes are removed. Thus, importing and exporting via a case-insensitive Nix store is round-tripping. So when NixOps calls nix-copy-closure to copy the path to a Linux machine, you get the original file names back. Closes #119.
2014-07-14 build-remote.pl: Fix building multiple output derivationsEelco Dolstra1-2/+3
We were importing paths without sorting them topologically, leading to "path is not valid" errors. See e.g. http://hydra.nixos.org/build/12451761
2014-07-11 Fix testEelco Dolstra1-1/+1
2014-07-10 Add a test for the SSH substituterEelco Dolstra1-2/+11
2014-07-04 Add builtin function ‘fromJSON’Eelco Dolstra2-0/+33
Fixes #294.
2014-06-10 == operator: Ignore string contextEelco Dolstra1-1/+1
There really is no case I can think of where taking the context into account is useful. Mostly it's just very inconvenient.
2014-05-29 Fix testEelco Dolstra2-2/+2
2014-05-26 Make the Nix search path declarativeEelco Dolstra2-1/+2
Nix search path lookups like <nixpkgs> are now desugared to ‘findFile nixPath <nixpkgs>’, where ‘findFile’ is a new primop. Thus you can override the search path simply by saying let nixPath = [ { prefix = "nixpkgs"; path = "/my-nixpkgs"; } ]; in ... <nixpkgs> ... In conjunction with ‘scopedImport’ (commit c273c15cb13bb86420dda1e5341a4e19517532b5), the Nix search path can be propagated across imports, e.g. let overrides = { nixPath = [ ... ] ++ builtins.nixPath; import = fn: scopedImport overrides fn; scopedImport = attrs: fn: scopedImport (overrides // attrs) fn; builtins = builtins // overrides; }; in scopedImport overrides ./nixos
2014-05-26 Ensure that -I flags get included in nixPathEelco Dolstra1-1/+1
Also fixes #261.
2014-05-26 Add constant ‘nixPath’Eelco Dolstra2-2/+9
It contains the Nix expression search path as a list of { prefix, path } sets, e.g. [ { path = "/nix/var/nix/profiles/per-user/root/channels/nixos"; prefix = ""; } { path = "/etc/nixos/configuration.nix"; prefix = "nixos-config"; } { path = "/home/eelco/Dev/nix/inst/share/nix/corepkgs"; prefix = "nix"; } ]
2014-05-26 Add primop ‘scopedImport’Eelco Dolstra4-0/+16
‘scopedImport’ works like ‘import’, except that it takes a set of attributes to be added to the lexical scope of the expression, essentially extending or overriding the builtin variables. For instance, the expression scopedImport { x = 1; } ./foo.nix where foo.nix contains ‘x’, will evaluate to 1. This has a few applications: * It allows getting rid of function argument specifications in package expressions. For instance, a package expression like: { stdenv, fetchurl, libfoo }: stdenv.mkDerivation { ... buildInputs = [ libfoo ]; } can now we written as just stdenv.mkDerivation { ... buildInputs = [ libfoo ]; } and imported in all-packages.nix as: bar = scopedImport pkgs ./bar.nix; So whereas we once had dependencies listed in three places (buildInputs, the function, and the call site), they now only need to appear in one place. * It allows overriding builtin functions. For instance, to trace all calls to ‘map’: let overrides = { map = f: xs: builtins.trace "map called!" (map f xs); # Ensure that our override gets propagated by calls to # import/scopedImport. import = fn: scopedImport overrides fn; scopedImport = attrs: fn: scopedImport (overrides // attrs) fn; # Also update ‘builtins’. builtins = builtins // overrides; }; in scopedImport overrides ./bla.nix * Similarly, it allows extending the set of builtin functions. For instance, during Nixpkgs/NixOS evaluation, the Nixpkgs library functions could be added to the default scope. There is a downside: calls to scopedImport are not memoized, unlike import. So importing a file multiple times leads to multiple parsings / evaluations. It would be possible to construct the AST only once, but that would require careful handling of variables/environments.
2014-05-22 Disable parallel.sh testEelco Dolstra1-1/+2
It breaks randomly: http://hydra.nixos.org/build/11152871
2014-05-02 Fix Debian testsEelco Dolstra1-0/+1
These actually run as root in a VM, so they get confused. http://hydra.nixos.org/build/10775854
2014-04-15 Fix test evaluationEelco Dolstra2-5/+5
2014-03-10 If a dynamic attribute name evaluates to null, remove it from the setShea Levy2-0/+2
2014-02-26 DohEelco Dolstra1-1/+1
2014-02-26 Test trace and addErrorContextEelco Dolstra1-0/+4
2014-02-26 Test some more primopsEelco Dolstra9-7/+24
2014-02-26 Test executables in NARsEelco Dolstra2-0/+6
2014-02-26 Test nix-env --switch-generationEelco Dolstra1-0/+6
2014-02-26 Test nix-env --setEelco Dolstra1-0/+6
2014-02-26 Test the -b and -s flags of nix-store -qEelco Dolstra1-0/+12
2014-02-26 Test ~/.nix-defexprEelco Dolstra1-14/+17
2014-02-26 Test nix-store --switch-profile and more daemon actionsEelco Dolstra2-51/+70
2014-02-26 Test nix-store -q --rootsEelco Dolstra1-0/+2
2014-02-26 Test nix-store -lEelco Dolstra1-1/+11
2014-02-26 Test nix-store --optimiseEelco Dolstra1-0/+17
2014-02-26 Add a test for nix-store --dump-db / --load-dbEelco Dolstra2-1/+21
2014-02-19 nix-instantiate: Rename --eval-only to --eval, --parse-only to --parseEelco Dolstra2-6/+6
2014-02-17 Test nix-store --verify-path and --repair-pathEelco Dolstra1-0/+18
2014-02-17 Add a test for repairing pathsEelco Dolstra5-8/+56
2014-02-06 Clean up a test warningEelco Dolstra1-1/+1
2014-02-06 Drop dependency on ‘expr’Eelco Dolstra1-2/+2
http://hydra.nixos.org/build/8715639 Not sure why this causes a failure now.
2014-02-01 Fix logging testEelco Dolstra2-2/+1
2014-02-01 Fix the nix-profile testEelco Dolstra2-3/+2
2014-02-01 Remove AutomakefilesEelco Dolstra1-52/+0
2014-02-01 Update Makefile variable namesEelco Dolstra1-3/+3
2014-01-30 Rename Makefile -> local.mkEelco Dolstra1-0/+0
2014-01-21 Merge branch 'master' into makeEelco Dolstra10-0/+67
Conflicts: src/libexpr/eval.cc
2014-01-14 Allow "bare" dynamic attrsShea Levy2-0/+18
Now, in addition to a."${b}".c, you can write a.${b}.c (applicable wherever dynamic attributes are valid). Signed-off-by: Shea Levy <shea@shealevy.com>
2014-01-08 Fix signed-binary-caches testEelco Dolstra1-1/+4
2014-01-08 Test whether Nix correctly checks the hash of downloaded NARsEelco Dolstra1-0/+14
2014-01-08 Support cryptographically signed binary cachesEelco Dolstra1-0/+8
NAR info files in binary caches can now have a cryptographic signature that Nix will verify before using the corresponding NAR file. To create a private/public key pair for signing and verifying a binary cache, do: $ openssl genrsa -out ./cache-key.sec 2048 $ openssl rsa -in ./cache-key.sec -pubout > ./cache-key.pub You should also come up with a symbolic name for the key, such as "cache.example.org-1". This will be used by clients to look up the public key. (It's a good idea to number keys, in case you ever need to revoke/replace one.) To create a binary cache signed with the private key: $ nix-push --dest /path/to/binary-cache --key ./cache-key.sec --key-name cache.example.org-1 The public key (cache-key.pub) should be distributed to the clients. They should have a nix.conf should contain something like: signed-binary-caches = * binary-cache-public-key-cache.example.org-1 = /path/to/cache-key.pub If all works well, then if Nix fetches something from the signed binary cache, you will see a message like: *** Downloading ‘http://cache.example.org/nar/7dppcj5sc1nda7l54rjc0g5l1hamj09j-subversion-1.7.11’ (signed by ‘cache.example.org-1’) to ‘/nix/store/7dppcj5sc1nda7l54rjc0g5l1hamj09j-subversion-1.7.11’... On the other hand, if the signature is wrong, you get a message like NAR info file `http://cache.example.org/7dppcj5sc1nda7l54rjc0g5l1hamj09j.narinfo' has an invalid signature; ignoring Signatures are implemented as a single line appended to the NAR info file, which looks like this: Signature: 1;cache.example.org-1;HQ9Xzyanq9iV...muQ== Thus the signature has 3 fields: a version (currently "1"), the ID of key, and the base64-encoded signature of the SHA-256 hash of the contents of the NAR info file up to but not including the Signature line. Issue #75.