aboutsummaryrefslogtreecommitdiff
path: root/tests/build.sh
AgeCommit message (Collapse)Author
2023-03-08Harden tests' bashJohn Ericson
Use `set -u` and `set -o pipefail` to catch accidental mistakes and failures more strongly. - `set -u` catches the use of undefined variables - `set -o pipefail` catches failures (like `set -e`) earlier in the pipeline. This makes the tests a bit more robust. It is nice to read code not worrying about these spurious success paths (via uncaught) errors undermining the tests. Indeed, I caught some bugs doing this. There are a few tests where we run a command that should fail, and then search its output to make sure the failure message is one that we expect. Before, since the `grep` was the last command in the pipeline the exit code of those failing programs was silently ignored. Now with `set -o pipefail` it won't be, and we have to do something so the expected failure doesn't accidentally fail the test. To do that we use `expect` and a new `expectStderr` to check for the exact failing exit code. See the comments on each for why. `grep -q` is replaced with `grepQuiet`, see the comments on that function for why. `grep -v` when we just want the exit code is replaced with `grepInverse, see the comments on that function for why. `grep -q -v` together is, surprise surprise, replaced with `grepQuietInverse`, which is both combined. Co-authored-by: Robert Hensing <roberth@users.noreply.github.com>
2023-02-10Test `nix build --json` return output paths in floating CA caseJohn Ericson
Adding a test to ensure there is no regression. The tests that are split out of `tests/build.sh` are ones that don't yet work with CA derivation. I have not yet evaluated whether they should or not. This behavior, reported missing in issue #4661, already got fixed in PR #4818, but didn't get a test case then.
2023-01-18Fix indentationEelco Dolstra
2023-01-18Add some tests for illegal output namesEelco Dolstra
2023-01-18OutputSpec: Allow all valid output namesEelco Dolstra
Fixes #7624.
2022-12-12Merge new tests into `build.sh`John Ericson
2022-11-25Merge branch 'master' into indexed-store-path-outputsJohn Ericson
2022-11-14tests: Reproduce #6572Robert Hensing
2022-05-12Merge remote-tracking branch 'upstream/master' into indexed-store-path-outputsJohn Ericson
2022-05-05Make sure that `nix build` works in `--impure` modeThéophane Hufschmitt
Regression test for <https://github.com/NixOS/nix/issues/6488>
2022-05-03Allow selecting derivation outputs using 'installable!outputs'Eelco Dolstra
E.g. 'nixpkgs#glibc^dev,static' or 'nixpkgs#glibc^*'.
2022-04-26nix: Respect meta.outputsToInstall, and use all outputs by defaultEelco Dolstra
'nix profile install' will now install all outputs listed in the package's meta.outputsToInstall attribute, or all outputs if that attribute doesn't exist. This makes it behave consistently with nix-env. Fixes #6385. Furthermore, for consistency, all other 'nix' commands do this as well. E.g. 'nix build' will build and symlink the outputs in meta.outputsToInstall, defaulting to all outputs. Previously, it only built/symlinked the first output. Note that this means that selecting a specific output using attrpath selection (e.g. 'nix build nixpkgs#libxml2.dev') no longer works. A subsequent PR will add a way to specify the desired outputs explicitly.
2022-03-25Merge remote-tracking branch 'upstream' into indexed-store-path-outputsJohn Ericson
Co-Authored-By: Tom Bereknyei <tomberek@gmail.com>
2022-03-24tests/build.sh: Test that 'nix build' only prints wanted outputsEelco Dolstra
2021-09-30Merge remote-tracking branch 'upstream/master' into indexed-store-path-outputsJohn Ericson
2021-06-25tests: Get rid of some result symlinksEelco Dolstra
Fixes error: cannot create symlink '/home/eelco/Dev/nix/tests/result'; already exists
2021-05-05Properly normalize the content-addressed pathsregnat
Make sure that their timestamp are always normalized. Otherwise, strange − and non-deterministic − things might happen, like https://github.com/NixOS/nixpkgs/issues/121813 Fix #4775
2021-04-06New "indexed" installable syntax: `<drvPath>!<outputName>`John Ericson
Being conservative and only doing a single output name for now.
2020-11-11Test nix build --jsonMatthew Kenigsberg