forked from lix-project/lix
ee9c988a1b
With this patch, and this file I called `log.py`: #!/usr/bin/env nix-shell #!nix-shell -i python3 -p python3 --pure import sys from pprint import pprint stack = [] timestack = [] for line in open(sys.argv[1]): components = line.strip().split(" ", 2) if components[0] != "function-trace": continue direction = components[1] components = components[2].rsplit(" ", 2) loc = components[0] _at = components[1] time = int(components[2]) if direction == "entered": stack.append(loc) timestack.append(time) elif direction == "exited": dur = time - timestack.pop() vst = ";".join(stack) print(f"{vst} {dur}") stack.pop() and: nix-instantiate --trace-function-calls -vvvv ../nixpkgs/pkgs/top-level/release.nix -A unstable > log.matthewbauer 2>&1 ./log.py ./log.matthewbauer > log.matthewbauer.folded flamegraph.pl --title matthewbauer-post-pr log.matthewbauer.folded > log.matthewbauer.folded.svg I can make flame graphs like: http://gsc.io/log.matthewbauer.folded.svg --- Includes test cases around function call failures and tryEval. Uses RAII so the finish is always called at the end of the function.
42 lines
1.2 KiB
Makefile
42 lines
1.2 KiB
Makefile
check:
|
|
@echo "Warning: Nix has no 'make check'. Please install Nix and run 'make installcheck' instead."
|
|
|
|
nix_tests = \
|
|
init.sh hash.sh lang.sh add.sh simple.sh dependencies.sh \
|
|
gc.sh \
|
|
gc-concurrent.sh \
|
|
gc-auto.sh \
|
|
referrers.sh user-envs.sh logging.sh nix-build.sh misc.sh fixed.sh \
|
|
gc-runtime.sh check-refs.sh filter-source.sh \
|
|
remote-store.sh export.sh export-graph.sh \
|
|
timeout.sh secure-drv-outputs.sh nix-channel.sh \
|
|
multiple-outputs.sh import-derivation.sh fetchurl.sh optimise-store.sh \
|
|
binary-cache.sh nix-profile.sh repair.sh dump-db.sh case-hack.sh \
|
|
check-reqs.sh pass-as-file.sh tarball.sh restricted.sh \
|
|
placeholders.sh nix-shell.sh \
|
|
linux-sandbox.sh \
|
|
build-dry.sh \
|
|
build-remote.sh \
|
|
nar-access.sh \
|
|
structured-attrs.sh \
|
|
fetchGit.sh \
|
|
fetchMercurial.sh \
|
|
signing.sh \
|
|
run.sh \
|
|
brotli.sh \
|
|
pure-eval.sh \
|
|
check.sh \
|
|
plugins.sh \
|
|
search.sh \
|
|
nix-copy-ssh.sh \
|
|
post-hook.sh \
|
|
function-trace.sh
|
|
# parallel.sh
|
|
|
|
install-tests += $(foreach x, $(nix_tests), tests/$(x))
|
|
|
|
tests-environment = NIX_REMOTE= $(bash) -e
|
|
|
|
clean-files += $(d)/common.sh
|
|
|
|
installcheck: $(d)/common.sh $(d)/plugins/libplugintest.$(SO_EXT)
|