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

gcc: support running the testsuite. #63808

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from
Draft

Conversation

eddyb
Copy link
Contributor

@eddyb eddyb commented Jun 26, 2019

Motivation for this change

I needed to submit a patch to GCC and they want confirmation of no regressions in the testsuite, and so I ended up using this expression with nix-build (parts specific to GCC trunk & my own patches omitted):

with import <nixpkgs>{};
gcc9.cc.overrideAttrs (gcc: {
    nativeBuildInputs = (gcc.nativeBuildInputs or []) ++ [ expect dejagnu ];
    builder = ./builder.sh; # with the changes in this PR
    doCheck = true;
    checkFlags = "-k";
})

Sadly, not all tests pass (it's unclear to me how many of those are broken upstream), so doCheck = true can't be turned on by default yet, but:

  • expect and dejagnu dependencies are needed to run the test suite in the first place
  • the builder.sh change allows crt{1,i}.o to be found for linking executable tests

Overall, this did work well enough for me to be able to confirm the lack of regressions (by building GCC trunk and GCC trunk + my patch, and comparing the .sum files in the resulting build dirs).

Things done
  • Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
  • Built on platform(s)
    • NixOS
    • macOS
    • other Linux distributions
  • Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
  • Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
  • Tested execution of all binary files (usually in ./result/bin/)
  • Determined the impact on package closure size (by running nix path-info -S before and after)
  • Assured whether relevant documentation is up to date
  • Fits CONTRIBUTING.md.

++ (optional (perl != null) perl);
++ (optional (perl != null) perl)
++ (optional (expect != null) expect)
++ (optional (expect != null) dejagnu);
Copy link
Member

Choose a reason for hiding this comment

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

should be dejagnu instead of expect. Maybe you could include them only when doCheck = true instead ? or add an assert to make sure expect/dejagnu are not null when doCheck is true.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Heh, copy & paste fail. I would prefer if it was gated on doCheck, although I'm worried that if I just do that then afterwards use .override({...}: { doCheck = true; }) it won't add those dependencies after the fact (I'm not sure how lazy these fields are tbh).

Copy link
Member

Choose a reason for hiding this comment

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

as @teto suggested, add asserts and check against doCheck to append.

++ (optional (perl != null) perl);
++ (optional (perl != null) perl)
++ (optional (expect != null) expect)
++ (optional (expect != null) dejagnu);
Copy link
Member

Choose a reason for hiding this comment

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

as @teto suggested, add asserts and check against doCheck to append.

@stale
Copy link

stale bot commented Jun 1, 2020

Thank you for your contributions.
This has been automatically marked as stale because it has had no activity for 180 days.
If this is still important to you, we ask that you leave a comment below. Your comment can be as simple as "still important to me". This lets people see that at least one person still cares about this. Someone will have to do this at most twice a year if there is no other activity.
Here are suggestions that might help resolve this more quickly:

  1. Search for maintainers and people that previously touched the
    related code and @ mention them in a comment.
  2. Ask on the NixOS Discourse. 3. Ask on the #nixos channel on
    irc.freenode.net.

@stale stale bot added the 2.status: stale https://github.com/NixOS/nixpkgs/blob/master/.github/STALE-BOT.md label Jun 1, 2020
@stale stale bot removed the 2.status: stale https://github.com/NixOS/nixpkgs/blob/master/.github/STALE-BOT.md label Oct 3, 2020
@stale
Copy link

stale bot commented Jun 5, 2021

I marked this as stale due to inactivity. → More info

@stale stale bot added the 2.status: stale https://github.com/NixOS/nixpkgs/blob/master/.github/STALE-BOT.md label Jun 5, 2021
@Mindavi
Copy link
Contributor

Mindavi commented Nov 22, 2022

Interesting! This still seems useful.

@stale stale bot removed the 2.status: stale https://github.com/NixOS/nixpkgs/blob/master/.github/STALE-BOT.md label Nov 22, 2022
@stale stale bot added the 2.status: stale https://github.com/NixOS/nixpkgs/blob/master/.github/STALE-BOT.md label May 21, 2023
@wegank wegank marked this pull request as draft March 20, 2024 15:07
@stale stale bot removed the 2.status: stale https://github.com/NixOS/nixpkgs/blob/master/.github/STALE-BOT.md label Mar 20, 2024
@wegank wegank added the 2.status: stale https://github.com/NixOS/nixpkgs/blob/master/.github/STALE-BOT.md label Mar 20, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Staging
  
WIP
Development

Successfully merging this pull request may close these issues.

None yet

6 participants