aboutsummaryrefslogtreecommitdiff
path: root/tests
AgeCommit message (Collapse)Author
2023-04-24Merge remote-tracking branch 'origin/master' into source-pathEelco Dolstra
2023-04-19Move `test/recursive.sh` nix expr to fileJohn Ericson
I found it hard to read as a big string literal.
2023-04-17Gate experimental features in `DerivationOutput::fromJSON`John Ericson
This is an entry point for outside data, so we need to check enabled experimental features here.
2023-04-17Merge pull request #8230 from obsidiansystems/daemon-trust-overrideRobert Hensing
Experimentally allow forcing `nix-daemon` trust; use this to test
2023-04-17Experimentally allow forcing `nix-daemon` trust; use this to testJohn Ericson
We finally test the status quo of remote build trust in a number of ways. We create a new experimental feature on `nix-daemon` to do so. PR #3921, which improves the situation with trustless remote building, will build upon these changes. This code / tests was pull out of there to make this, so everything is easier to review, and in particular we test before and after so the new behavior in that PR is readily apparent from the testsuite diff alone.
2023-04-17Fix some issues with experimental config settingsJohn Ericson
Issues: 1. Features gated on disabled experimental settings should warn and be ignored, not silently succeed. 2. Experimental settings in the same config "batch" (file or env var) as the enabling of the experimental feature should work. 3. For (2), the order should not matter. These are analogous to the issues @roberth caught with my changes for arg handling, but they are instead for config handling. Co-authored-by: Robert Hensing <roberth@users.noreply.github.com>
2023-04-17Merge remote-tracking branch 'upstream/master' into source-pathRobert Hensing
2023-04-17Merge pull request #8193 from hercules-ci/dry-stringsRobert Hensing
Deduplicate string literal rendering, fix 4909
2023-04-11Do not gate or hide experimental settingsJohn Ericson
This is somewhat hacky fix just for 2.15. I unintentionally hid them from the manual, when no one wanted to hide them that (including myself). I also required the experimental feature to be enabled in an order-dependent way, which is not good. The simplest fix for this immanent release is just to always show them, and always allow them to be set. Effectively undoes some changes from aa663b7e89d3d02248d37ee9f68b52770b247018
2023-04-11Merge pull request #8158 from tweag/harden-profiles-testEelco Dolstra
Fix the flaky `nix-profile` test
2023-04-09Deduplicate string literal rendering, fix 4909Robert Hensing
2023-04-07Create `nix derivation add` commandJohn Ericson
Also refine `nix derivation show`'s docs very slightly.
2023-04-07`nix show-derivation` -> `nix derivation show`John Ericson
2023-04-06Add `Store::isTrustedClient()`matthewcroughan
This function returns true or false depending on whether the Nix client is trusted or not. Mostly relevant when speaking to a remote store with a daemon. We include this information in `nix ping store` and `nix doctor` Co-Authored-By: John Ericson <John.Ericson@Obsidian.Systems>
2023-04-06Backport SourcePath from the lazy-trees branchEelco Dolstra
This introduces the SourcePath type from lazy-trees as an abstraction for accessing files from inputs that may not be materialized in the real filesystem (e.g. Git repositories). Currently, however, it's just a wrapper around CanonPath, so it shouldn't change any behaviour. (On lazy-trees, SourcePath is a <InputAccessor, CanonPath> tuple.)
2023-04-03Fix the flaky `nix-profile` testThéophane Hufschmitt
Exclude the `error (ignored)` from the message that is checked by the install conflict test. Fix https://github.com/NixOS/nix/issues/8140
2023-04-03Merge pull request #8042 from lheckemann/alt-lockfilesEelco Dolstra
Allow specifying alternative paths for reading/writing flake locks
2023-04-03Stuctured command stabilityJohn Ericson
Prior to this, there was an ad-hoc whitelist in `main.cc`. Now, every command states its stability. In a future PR, we will adjust the manual to take advantage of this new information in the JSON. (It will be easier to do that once we have some experimental feature docs to link too; see #5930 and #7798.)
2023-04-03Merge pull request #8148 from ↵Robert Hensing
hercules-ci/fix-issue-8119-printValue-tBlackhole-abort eval: Fix crash on missing printValue tBlackhole case
2023-04-03eval: Fix crash on missing printValue tBlackhole caseRobert Hensing
Fixes #8119
2023-04-03Merge pull request #7610 from obsidiansystems/gate-default-settingsThéophane Hufschmitt
Punt on improper global flags for now
2023-03-31test: Make the installer work on old rhel versionsThéophane Hufschmitt
`scp -r` doesn't seem to behave properly there, so tarpipe ftw!
2023-03-31test: Don't add a channel for the force-no-daemon installer variantThéophane Hufschmitt
Was probably an overlook of when the tests were first added, but that now messes-up with the `nix-channel --update` that happens down the line (and can't access the network since we're inside a Nix build)
2023-03-31Merge pull request #8018 from tweag/ssh-password-promptThéophane Hufschmitt
SSH: don't erase password prompt if it is displayed
2023-03-27Merge pull request #8084 from edolstra/store-docsEelco Dolstra
Auto-generate store documentation
2023-03-27Merge pull request #8073 from tweag/fix-root-channels-locationJohn Ericson
Fix root channels location
2023-03-27Punt on improper global flags for nowJohn Ericson
See the note in the test. We don't want these flags showing up for commands where they are irrelevant. Eventually, this needs a proper fix, but it need not be a blocker for stabilize: for a quick-n-dirty punt, just put these flags behind the `nix-command` unstable feature. This is fine because they are only relevant for commands which we don't need to stabilize for a while.
2023-03-27Merge pull request #7609 from obsidiansystems/hide-experimental-settingsJohn Ericson
Hide experimental settings
2023-03-27tests/flakes/show.sh: Broaden requirement commentRobert Hensing
2023-03-26Catch eval errors in `hasContent`oxalica
`legacyPackages` of nixpkgs trigger eval errors in `hasContent`, causing the whole `legacyPackages` being skipped. We should treat it as has-content in that case.
2023-03-23Test the installation of a simple package in the install testsThéophane Hufschmitt
2023-03-22Add a test for nix copy over sshAlexander Bantyev
Check that nix copy can copy stuff, refuses to copy unsigned paths by default, and doesn't hide the ssh password prompt.
2023-03-21nix describe-stores: RemoveEelco Dolstra
This command was intended for docs generation, but it was never used for that and we don't need it.
2023-03-20Write test, will fail until rest of PRJohn Ericson
2023-03-19Create test lockfiles in TEST_ROOTLinus Heckemann
2023-03-19Add tests for alternate lockfile path functionalityLinus Heckemann
2023-03-18tests/flake-in-submodule: Remove unnecessary rm -rfRobert Hensing
2023-03-17Add a test with flake.nix in a submoduleJosef Kemetmüller
I noticed a regression in the lazy-trees branch, which I'm trying to capture with this test. While the tests succeeds in master, the lazy-trees branch gives the following error message: error: access to path '/build/nix-test/tests/flakes/flake-in-submodule/rootRepo/submodule/flake.nix' is forbidden because it is not under Git control; maybe you should 'git add' it to the repository '/build/nix-test/tests/flakes/flake-in-submodule/rootRepo'?
2023-03-16Cleanup test skippingJohn Ericson
- Try not to put cryptic "99" in many places Factor out `exit 99` into `skipTest` function - Alows make sure skipping a test is done with a reason `skipTest` takes a mandatory argument - Separate pure conditionals vs side-effectful test skipping. "require daemon" already had this, but "sandbox support" did not.
2023-03-16nix-hash: support base-64 and SRI formatYueh-Shun Li
Add the --base64 and --sri flags for the Base64 and SRI format output. Add the --base16 flag to explicitly specify the hexadecimal format. Add the --to-base64 and --to-sri flag to convert a hash to the above mentioned format.
2023-03-16test/hash.sh: add to-base32 test for nix hashYueh-Shun Li
2023-03-16tests/hash.sh: try: Use FORMAT_FLAG instead of EXTRAYueh-Shun Li
Do not rely on the "multiple format flag specified" behavior. Explicitly test without the format flag / with the --base16 flag.
2023-03-13Merge pull request #8033 from lbodor/stop-adding-dot-to-nix-dev-env-pathRobert Hensing
`print-dev-env`: stop inadvertently adding `.` to `PATH`
2023-03-14Use $TEST_ROOTlbodor
2023-03-13make clean: Delete vars-and-functions.shEelco Dolstra
2023-03-13print-dev-env: test the case when PATH is emptylbodor
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-03-07Fix `nix-collect-garbage -d` with the new profile locationThéophane Hufschmitt
Low-hanging fix for https://github.com/NixOS/nix/pull/5226#issuecomment-1454669399
2023-03-01Remove needless `--experimental-feature` in a CA drvs testJohn Ericson
This is already blanket enabled for these tests
2023-03-01Merge pull request #7788 from ↵Valentin Gagarin
bobvanderlinden/pr-improve-nix-profile-install-error Improve error on conflict for nix profile install