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

Test against all of nixpkgs for tool crashes #77

Open
rmcgibbo opened this issue Feb 25, 2021 · 1 comment
Open

Test against all of nixpkgs for tool crashes #77

rmcgibbo opened this issue Feb 25, 2021 · 1 comment
Labels
enhancement New feature or request

Comments

@rmcgibbo
Copy link
Collaborator

I'd be nice to automatically test against all of nixpkgs for crashes in the nixpkgs-hammer tool.

I've started doing this with some hacked-up python based on this approach:
https://en.wikipedia.org/wiki/Group_testing#Generalised_binary-splitting_algorithm

It appears that there's a fair amount of academic literature on this topic, but unfortunately in a little bit of googling I was unable to find any available implementations of the algorithms described.

I am currently running this code: https://gist.github.com/rmcgibbo/bd1bc08eda3de57394df1be44b91228f, but I (a) don't know how long it will take and (b) am not 100% sure I implemented the testing correctly. It's close enough to correct that I'm getting useful results though.

Assuming this takes a reasonable amount of time, it seems like something we might be able to run on github actions in the integration tests.

@jtojnar jtojnar added the enhancement New feature or request label Feb 25, 2021
@rmcgibbo
Copy link
Collaborator Author

This is the result of testing 32,776 attrs in nixpkgs and screening for crashes of the nixpkgs-hammer tool after the merge of #67. These incorporate the errors in #73 and #63.

I may file a PR to add this as integration testing, but in the mean time here are the current results.

acl	anonymous function at /home/mcgibbon/projects/nixpkgs/pkgs/build-support/fetchurl/boot.nix:5:1 called with unexpected argument 'hash'
apostrophe	infinite recursion encountered
attr	anonymous function at /home/mcgibbon/projects/nixpkgs/pkgs/build-support/fetchurl/boot.nix:5:1 called with unexpected argument 'hash'
bash	anonymous function at /home/mcgibbon/projects/nixpkgs/pkgs/build-support/fetchurl/boot.nix:5:1 called with unexpected argument 'hash'
binutils-unwrapped	anonymous function at /home/mcgibbon/projects/nixpkgs/pkgs/build-support/fetchurl/boot.nix:5:1 called with unexpected argument 'hash'
bzip2	anonymous function at /home/mcgibbon/projects/nixpkgs/pkgs/build-support/fetchurl/boot.nix:5:1 called with unexpected argument 'hash'
coreutils	anonymous function at /home/mcgibbon/projects/nixpkgs/pkgs/build-support/fetchurl/boot.nix:5:1 called with unexpected argument 'hash'
coreutils-full	anonymous function at /home/mcgibbon/projects/nixpkgs/pkgs/build-support/fetchurl/boot.nix:5:1 called with unexpected argument 'hash'
coreutils-prefixed	anonymous function at /home/mcgibbon/projects/nixpkgs/pkgs/build-support/fetchurl/boot.nix:5:1 called with unexpected argument 'hash'
datadog-agent	error: stack overflow (possible infinite recursion)
diffutils	anonymous function at /home/mcgibbon/projects/nixpkgs/pkgs/build-support/fetchurl/boot.nix:5:1 called with unexpected argument 'hash'
findutils	anonymous function at /home/mcgibbon/projects/nixpkgs/pkgs/build-support/fetchurl/boot.nix:5:1 called with unexpected argument 'recursiveHash'
gawkInteractive	anonymous function at /home/mcgibbon/projects/nixpkgs/pkgs/build-support/fetchurl/boot.nix:5:1 called with unexpected argument 'hash'
gcc-unwrapped	anonymous function at /home/mcgibbon/projects/nixpkgs/pkgs/build-support/fetchurl/boot.nix:5:1 called with unexpected argument 'hash'
glibc	anonymous function at /home/mcgibbon/projects/nixpkgs/pkgs/build-support/fetchurl/boot.nix:5:1 called with unexpected argument 'hash'
gnugrep	anonymous function at /home/mcgibbon/projects/nixpkgs/pkgs/build-support/fetchurl/boot.nix:5:1 called with unexpected argument 'hash'
gnupatch	anonymous function at /home/mcgibbon/projects/nixpkgs/pkgs/build-support/fetchurl/boot.nix:5:1 called with unexpected argument 'hash'
gnused	anonymous function at /home/mcgibbon/projects/nixpkgs/pkgs/build-support/fetchurl/boot.nix:5:1 called with unexpected argument 'hash'
gnutar	anonymous function at /home/mcgibbon/projects/nixpkgs/pkgs/build-support/fetchurl/boot.nix:5:1 called with unexpected argument 'recursiveHash'
gromacsDoubleMpi	anonymous function at /home/mcgibbon/projects/nixpkgs/pkgs/applications/science/molecular-dynamics/gromacs/default.nix:1:1 called with unexpected argument 'openmpi'
gromacsMpi	anonymous function at /home/mcgibbon/projects/nixpkgs/pkgs/applications/science/molecular-dynamics/gromacs/default.nix:1:1 called with unexpected argument 'openmpi'
gzip	anonymous function at /home/mcgibbon/projects/nixpkgs/pkgs/build-support/fetchurl/boot.nix:5:1 called with unexpected argument 'hash'
holochain-go	error: stack overflow (possible infinite recursion)
javaPackages.junit_4_12	error: stack overflow (possible infinite recursion)
javaPackages.mavenHello_1_0	error: stack overflow (possible infinite recursion)
javaPackages.mavenHello_1_1	error: stack overflow (possible infinite recursion)
libgccjit	anonymous function at /home/mcgibbon/projects/nixpkgs/pkgs/build-support/fetchurl/boot.nix:5:1 called with unexpected argument 'hash'
mosdepth	infinite recursion encountered
ne	infinite recursion encountered
nim	infinite recursion encountered
nim-unwrapped	infinite recursion encountered
nimble-unwrapped	infinite recursion encountered
nimlsp	infinite recursion encountered
nimmm	infinite recursion encountered
nrpl	infinite recursion encountered
nuweb	infinite recursion encountered
uberwriter	infinite recursion encountered
vimPlugins.fruzzy	infinite recursion encountered
zfsbackup	error: stack overflow (possible infinite recursion)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants