Selftest environment interdependency graph

Jamie McClymont jamiemcclymont at catalyst.net.nz
Mon Jan 8 06:16:17 UTC 2018


Hi all,

I've been having a look at parallelisation of the testing process. To
that end, I have, through the Perl-parsing power of regex(!), created a
graph of dependencies between envs, including the time used running
suites for each env in one run on the catalyst cloud. This is attached
as svg for your viewing pleasure.



The tooling used to create it is also attached - let me know if you have
any issues with it (I started writing it with gawk then switched to ruby
for the second half, so I wouldn't be surprised if you do!).


Thanks,
- Jamie
-------------- next part --------------
A non-text attachment was scrubbed...
Name: samba_env_dependencies.svg
Type: image/svg+xml
Size: 17283 bytes
Desc: not available
URL: <http://lists.samba.org/pipermail/samba-technical/attachments/20180108/69c42ce7/samba_env_dependencies-0001.svg>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: envtimes.rb
Type: application/x-ruby
Size: 713 bytes
Desc: not available
URL: <http://lists.samba.org/pipermail/samba-technical/attachments/20180108/69c42ce7/envtimes-0001.rb>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: depgraph.sh
Type: application/x-shellscript
Size: 448 bytes
Desc: not available
URL: <http://lists.samba.org/pipermail/samba-technical/attachments/20180108/69c42ce7/depgraph-0001.bin>
-------------- next part --------------
BEGIN {
    print "subgraph cluster_samba" ARGV[2] " {";
}

/sub setup_env/ {
    started = 1;
}

started && match($0, /if \(.envname eq "(.*)"\) {/, mtch) {
    current_env = mtch[1]
    print mtch[1], "XXX";
}

started && match($0, /if \(not defined\(.self->{vars}->{(.*)}/, mtch) {
    print current_env " -> " mtch[1];
}

started && /} else {/ {
    print "}";
    exit;
}


More information about the samba-technical mailing list