Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

tests.trivial-builders.references: refactor and move expressions into trivial-builders/test/references #204462

Merged
merged 5 commits into from
Dec 9, 2023

Conversation

ShamrockLee
Copy link
Contributor

@ShamrockLee ShamrockLee commented Dec 4, 2022

Description of changes

Make a testScriptBin that contains the substituted test script.

  • Add an installCheckPhase to check the result script with ShellCheck.
  • Passthru as references.testScriptBin to run the (substituted) test script directly (without VM).
  • Drop the logic in build script that detects if it is run in the Nix sandbox.
  • Inline sample application; drop invoke-*.nix.

Format expressions.

  • Format with nixpkgs-fmt.
  • Use multi-line style of set patterns.

Call the samples with callPackage.

  • Rename sample to samples.
  • Take individual packages / build helpers directly from the set pattern.
  • Define cleanSamples to filter out overriders such as <pkg>.override added by callPackage.

Passthru samples and invocation results for easier debugging.

  • Passthru samples, references and directReferences

Move all the related files into directory trivial-builders/test/reference

  • Make the trivial-builders/test directory cleaner, and samples.nix not ambiguous.
  • Call it with callPackage ./references { } instead of callPackaeg ./references.nix in trivial-builders/test/default.nix.
  • Pass it into tests.trivial-builders.writeStringReferencesToFile

Cc: @roberth

Things done
  • Built on platform(s)
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
  • Tested, as applicable:
  • Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
  • Tested basic functionality of all binary files (usually in ./result/bin/)
  • 23.05 Release Notes (or backporting 22.11 Release notes)
    • (Package updates) Added a release notes entry if the change is major or breaking
    • (Module updates) Added a release notes entry if the change is significant
    • (Module addition) Added a release notes entry if adding a new NixOS module
    • (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes
  • Fits CONTRIBUTING.md.

@ofborg ofborg bot added 10.rebuild-darwin: 0 This PR does not cause any packages to rebuild on Darwin 10.rebuild-linux: 1-10 10.rebuild-linux: 1 labels Dec 4, 2022
@stale stale bot added the 2.status: stale https://github.com/NixOS/nixpkgs/blob/master/.github/STALE-BOT.md label Jun 18, 2023
@stale stale bot removed the 2.status: stale https://github.com/NixOS/nixpkgs/blob/master/.github/STALE-BOT.md label Jul 13, 2023
@ShamrockLee ShamrockLee marked this pull request as ready for review July 13, 2023 21:37
@ShamrockLee
Copy link
Contributor Author

Rebase onto the master branch.

@ShamrockLee ShamrockLee changed the title tests.trivial-builders.references: tidy up and seperate lib from pkgs tests.trivial-builders.references: refactor and move expressions into trivial-builders/test/references Nov 30, 2023
Define package `testScriptBin` that contains the substituted test script.
* Add an `installCheckPhase` to check the result script with ShellCheck.
* Passthru as `references.testScriptBin` to run the
  (substituted) test script directly (without VM).
* Drop the logic in build script that detects if
  it is run in the Nix sandbox.
* Inline sample application; drop invoke-*.nix.

Format expressions.
* Format with `nixpkgs-fmt`.
* Use multi-line style of set patterns.

Call the samples with `callPackage`.
* Rename `sample` -> `samples`.
* Take individual packages / build helpers directly from the
  set pattern.
* Define `cleanSamples` to filter out overriders such as `<pkg>.override`.
  added by `callPackage`.

Passthru samples and invocation results for easier debugging.
* Passthru samples, references, directReferences
* Provide tests.trivial-builders.writeStringReferencesToFile with such
  samples argument.
Copy link
Member

@roberth roberth left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks alright!

…ll on non-Linux


Please Nix CI (OfBorg) with empty set instead of null on non-linux platforms,
where NixOS tests are not supported.

Co-authored-by: Robert Hensing <roberth@users.noreply.github.com>
@ShamrockLee ShamrockLee requested a review from roberth December 9, 2023 10:11
@roberth
Copy link
Member

roberth commented Dec 9, 2023

It works. Thanks!

@roberth roberth merged commit 6ac78f1 into NixOS:master Dec 9, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
10.rebuild-darwin: 0 This PR does not cause any packages to rebuild on Darwin 10.rebuild-linux: 1-10
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants