Diff of the two buildlogs: -- --- b1/build.log 2025-11-04 22:08:35.910685281 +0000 +++ b2/build.log 2025-11-04 22:09:17.598736443 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Mon Dec 7 16:28:28 -12 2026 -I: pbuilder-time-stamp: 1796704108 +I: Current time: Wed Nov 5 12:08:37 +14 2025 +I: pbuilder-time-stamp: 1762294117 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/forky-reproducible-base.tgz] I: copying local configuration @@ -27,53 +27,85 @@ dpkg-source: info: applying doxygen-1.9.8.patch I: Not using root during the build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/1410117/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/4118774/tmp/hooks/D01_modify_environment starting +debug: Running on codethink04-arm64. +I: Changing host+domainname to test build reproducibility +I: Adding a custom variable just for the fun of it... +I: Changing /bin/sh to bash +'/bin/sh' -> '/bin/bash' +lrwxrwxrwx 1 root root 9 Nov 4 22:08 /bin/sh -> /bin/bash +I: Setting pbuilder2's login shell to /bin/bash +I: Setting pbuilder2's GECOS to second user,second room,second work-phone,second home-phone,second other +I: user script /srv/workspace/pbuilder/4118774/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/4118774/tmp/hooks/D02_print_environment starting I: set - BUILDDIR='/build/reproducible-path' - BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other' - BUILDUSERNAME='pbuilder1' - BUILD_ARCH='arm64' - DEBIAN_FRONTEND='noninteractive' - DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=12 ' - DISTRIBUTION='forky' - HOME='/root' - HOST_ARCH='arm64' + BASH=/bin/sh + BASHOPTS=checkwinsize:cmdhist:complete_fullquote:extquote:force_fignore:globasciiranges:globskipdots:hostcomplete:interactive_comments:patsub_replacement:progcomp:promptvars:sourcepath + BASH_ALIASES=() + BASH_ARGC=() + BASH_ARGV=() + BASH_CMDS=() + BASH_LINENO=([0]="12" [1]="0") + BASH_LOADABLES_PATH=/usr/local/lib/bash:/usr/lib/bash:/opt/local/lib/bash:/usr/pkg/lib/bash:/opt/pkg/lib/bash:. + BASH_SOURCE=([0]="/tmp/hooks/D02_print_environment" [1]="/tmp/hooks/D02_print_environment") + BASH_VERSINFO=([0]="5" [1]="3" [2]="3" [3]="1" [4]="release" [5]="aarch64-unknown-linux-gnu") + BASH_VERSION='5.3.3(1)-release' + BUILDDIR=/build/reproducible-path + BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other' + BUILDUSERNAME=pbuilder2 + BUILD_ARCH=arm64 + DEBIAN_FRONTEND=noninteractive + DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=12 nocheck' + DIRSTACK=() + DISTRIBUTION=forky + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=aarch64 + HOST_ARCH=arm64 IFS=' ' - INVOCATION_ID='b4b5c8a780264fe9bddd1fda65fe8499' - LANG='C' - LANGUAGE='en_US:en' - LC_ALL='C' - MAIL='/var/mail/root' - OPTIND='1' - PATH='/usr/sbin:/usr/bin:/sbin:/bin:/usr/games' - PBCURRENTCOMMANDLINEOPERATION='build' - PBUILDER_OPERATION='build' - PBUILDER_PKGDATADIR='/usr/share/pbuilder' - PBUILDER_PKGLIBDIR='/usr/lib/pbuilder' - PBUILDER_SYSCONFDIR='/etc' - PPID='1410117' - PS1='# ' - PS2='> ' + INVOCATION_ID=e3e2ea8bc9fe4eb0a63935c22eee855e + LANG=C + LANGUAGE=nl_BE:nl + LC_ALL=C + MACHTYPE=aarch64-unknown-linux-gnu + MAIL=/var/mail/root + OPTERR=1 + OPTIND=1 + OSTYPE=linux-gnu + PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path + PBCURRENTCOMMANDLINEOPERATION=build + PBUILDER_OPERATION=build + PBUILDER_PKGDATADIR=/usr/share/pbuilder + PBUILDER_PKGLIBDIR=/usr/lib/pbuilder + PBUILDER_SYSCONFDIR=/etc + PIPESTATUS=([0]="0") + POSIXLY_CORRECT=y + PPID=4118774 PS4='+ ' - PWD='/' - SHELL='/bin/bash' - SHLVL='2' - SUDO_COMMAND='/usr/bin/timeout -k 18.1h 18h /usr/bin/ionice -c 3 /usr/bin/nice /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.6m3R9mHl/pbuilderrc_94I4 --distribution forky --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/forky-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.6m3R9mHl/b1 --logfile b1/build.log analizo_1.25.5-1.dsc' - SUDO_GID='109' - SUDO_HOME='/var/lib/jenkins' - SUDO_UID='104' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' - http_proxy='http://192.168.101.4:3128' + PWD=/ + SHELL=/bin/bash + SHELLOPTS=braceexpand:errexit:hashall:interactive-comments:posix + SHLVL=3 + SUDO_COMMAND='/usr/bin/timeout -k 24.1h 24h /usr/bin/ionice -c 3 /usr/bin/nice -n 11 /usr/bin/unshare --uts -- /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.6m3R9mHl/pbuilderrc_72qX --distribution forky --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/forky-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.6m3R9mHl/b2 --logfile b2/build.log analizo_1.25.5-1.dsc' + SUDO_GID=109 + SUDO_HOME=/var/lib/jenkins + SUDO_UID=104 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' + http_proxy=http://192.168.101.4:3128 I: uname -a - Linux codethink03-arm64 6.12.48+deb13-cloud-arm64 #1 SMP Debian 6.12.48-1 (2025-09-20) aarch64 GNU/Linux + Linux i-capture-the-hostname 6.12.48+deb13-cloud-arm64 #1 SMP Debian 6.12.48-1 (2025-09-20) aarch64 GNU/Linux I: ls -l /bin - lrwxrwxrwx 1 root root 7 Aug 10 2025 /bin -> usr/bin -I: user script /srv/workspace/pbuilder/1410117/tmp/hooks/D02_print_environment finished + lrwxrwxrwx 1 root root 7 Aug 10 12:30 /bin -> usr/bin +I: user script /srv/workspace/pbuilder/4118774/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -405,7 +437,7 @@ Get: 228 http://deb.debian.org/debian forky/main arm64 libzmq5 arm64 4.3.5-1+b3 [253 kB] Get: 229 http://deb.debian.org/debian forky/main arm64 libzmq3-dev arm64 4.3.5-1+b3 [490 kB] Get: 230 http://deb.debian.org/debian forky/main arm64 libzmq-ffi-perl all 1.19-1 [31.5 kB] -Fetched 95.2 MB in 1s (175 MB/s) +Fetched 95.2 MB in 1s (166 MB/s) Preconfiguring packages ... Selecting previously unselected package libexpat1:arm64. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 19964 files and directories currently installed.) @@ -1347,7 +1379,11 @@ Building tag database... -> Finished parsing the build-deps I: Building the package -I: Running cd /build/reproducible-path/analizo-1.25.5/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-genchanges -S > ../analizo_1.25.5-1_source.changes +I: user script /srv/workspace/pbuilder/4118774/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for forky +I: user script /srv/workspace/pbuilder/4118774/tmp/hooks/A99_set_merged_usr finished +hostname: Name or service not known +I: Running cd /build/reproducible-path/analizo-1.25.5/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-genchanges -S > ../analizo_1.25.5-1_source.changes dpkg-buildpackage: info: source package analizo dpkg-buildpackage: info: source version 1.25.5-1 dpkg-buildpackage: info: source distribution unstable @@ -1374,3859 +1410,68 @@ dh_auto_build make -j12 make[1]: Entering directory '/build/reproducible-path/analizo-1.25.5' -cp lib/Analizo/Command.pm blib/lib/Analizo/Command.pm -cp lib/Analizo/Metric/AfferentConnections.pm blib/lib/Analizo/Metric/AfferentConnections.pm -cp lib/Analizo/Batch/Runner.pm blib/lib/Analizo/Batch/Runner.pm +cp share/README blib/lib/auto/share/dist/Analizo/README +cp share/bash-completion/analizo blib/lib/auto/share/dist/Analizo/bash-completion/analizo +cp lib/Analizo/GlobalMetrics.pm blib/lib/Analizo/GlobalMetrics.pm +cp lib/Analizo/Metric/AverageNumberOfParameters.pm blib/lib/Analizo/Metric/AverageNumberOfParameters.pm +cp lib/Analizo/Batch/Git.pm blib/lib/Analizo/Batch/Git.pm +cp lib/Analizo/Batch/Output/DB.pm blib/lib/Analizo/Batch/Output/DB.pm cp lib/Analizo.pm blib/lib/Analizo.pm +cp lib/Analizo/Command/files_graph.pm blib/lib/Analizo/Command/files_graph.pm +cp lib/Analizo/Batch/Output.pm blib/lib/Analizo/Batch/Output.pm +cp lib/Analizo/Batch.pm blib/lib/Analizo/Batch.pm +cp lib/Analizo/Metric/AverageMethodLinesOfCode.pm blib/lib/Analizo/Metric/AverageMethodLinesOfCode.pm +cp lib/Analizo/Command/metrics.pm blib/lib/Analizo/Command/metrics.pm +cp lib/Analizo/Command/metrics_batch.pm blib/lib/Analizo/Command/metrics_batch.pm cp lib/Analizo/GlobalMetric/ChangeCost.pm blib/lib/Analizo/GlobalMetric/ChangeCost.pm -cp lib/Analizo/Batch/Job/Directories.pm blib/lib/Analizo/Batch/Job/Directories.pm cp lib/Analizo/Batch/Runner/Parallel.pm blib/lib/Analizo/Batch/Runner/Parallel.pm -cp lib/Analizo/Metric/AverageCycloComplexity.pm blib/lib/Analizo/Metric/AverageCycloComplexity.pm -cp lib/Analizo/Batch/Job.pm blib/lib/Analizo/Batch/Job.pm -cp lib/Analizo/Command/help.pm blib/lib/Analizo/Command/help.pm cp lib/Analizo/Batch/Job/Git.pm blib/lib/Analizo/Batch/Job/Git.pm -cp lib/Analizo/Batch/Git.pm blib/lib/Analizo/Batch/Git.pm -cp lib/Analizo/Batch/Output/CSV.pm blib/lib/Analizo/Batch/Output/CSV.pm -cp lib/Analizo/Batch/Runner/Sequential.pm blib/lib/Analizo/Batch/Runner/Sequential.pm -cp lib/Analizo/Batch/Output.pm blib/lib/Analizo/Batch/Output.pm -cp lib/Analizo/Metric/AverageMethodLinesOfCode.pm blib/lib/Analizo/Metric/AverageMethodLinesOfCode.pm -cp lib/Analizo/Metric/AverageNumberOfParameters.pm blib/lib/Analizo/Metric/AverageNumberOfParameters.pm -cp lib/Analizo/GlobalMetrics.pm blib/lib/Analizo/GlobalMetrics.pm +cp lib/Analizo/Metric/AverageCycloComplexity.pm blib/lib/Analizo/Metric/AverageCycloComplexity.pm +cp lib/Analizo/Extractor/Doxyparse.pm blib/lib/Analizo/Extractor/Doxyparse.pm cp lib/Analizo/Command/tree_evolution.pm blib/lib/Analizo/Command/tree_evolution.pm +cp lib/Analizo/Batch/Job.pm blib/lib/Analizo/Batch/Job.pm cp lib/Analizo/Filter/Client.pm blib/lib/Analizo/Filter/Client.pm -cp lib/Analizo/Batch.pm blib/lib/Analizo/Batch.pm -cp lib/Analizo/Command/metrics_batch.pm blib/lib/Analizo/Command/metrics_batch.pm -cp lib/Analizo/Extractor/Doxyparse.pm blib/lib/Analizo/Extractor/Doxyparse.pm -cp lib/Analizo/Batch/Directories.pm blib/lib/Analizo/Batch/Directories.pm -cp lib/Analizo/Command/metrics_history.pm blib/lib/Analizo/Command/metrics_history.pm -cp lib/Analizo/Command/metrics.pm blib/lib/Analizo/Command/metrics.pm -cp lib/Analizo/Batch/Output/DB.pm blib/lib/Analizo/Batch/Output/DB.pm -cp lib/Analizo/GlobalMetric/TotalAbstractClasses.pm blib/lib/Analizo/GlobalMetric/TotalAbstractClasses.pm cp lib/Analizo/Command/graph.pm blib/lib/Analizo/Command/graph.pm +cp lib/Analizo/Metric/AfferentConnections.pm blib/lib/Analizo/Metric/AfferentConnections.pm +cp lib/Analizo/Batch/Directories.pm blib/lib/Analizo/Batch/Directories.pm +cp lib/Analizo/Batch/Runner/Sequential.pm blib/lib/Analizo/Batch/Runner/Sequential.pm +cp lib/Analizo/Batch/Output/CSV.pm blib/lib/Analizo/Batch/Output/CSV.pm cp lib/Analizo/LanguageFilter.pm blib/lib/Analizo/LanguageFilter.pm cp lib/Analizo/FilenameFilter.pm blib/lib/Analizo/FilenameFilter.pm -cp lib/Analizo/GlobalMetric/MethodsPerAbstractClass.pm blib/lib/Analizo/GlobalMetric/MethodsPerAbstractClass.pm cp lib/Analizo/Extractor.pm blib/lib/Analizo/Extractor.pm -cp lib/Analizo/Command/files_graph.pm blib/lib/Analizo/Command/files_graph.pm -cp share/bash-completion/analizo blib/lib/auto/share/dist/Analizo/bash-completion/analizo -cp share/README blib/lib/auto/share/dist/Analizo/README +cp lib/Analizo/Command.pm blib/lib/Analizo/Command.pm +cp lib/Analizo/Command/metrics_history.pm blib/lib/Analizo/Command/metrics_history.pm +cp lib/Analizo/Command/help.pm blib/lib/Analizo/Command/help.pm +cp lib/Analizo/GlobalMetric/MethodsPerAbstractClass.pm blib/lib/Analizo/GlobalMetric/MethodsPerAbstractClass.pm +cp lib/Analizo/Batch/Runner.pm blib/lib/Analizo/Batch/Runner.pm +cp lib/Analizo/Batch/Job/Directories.pm blib/lib/Analizo/Batch/Job/Directories.pm +cp lib/Analizo/GlobalMetric/TotalAbstractClasses.pm blib/lib/Analizo/GlobalMetric/TotalAbstractClasses.pm +cp lib/Analizo/Metric/NumberOfPublicAttributes.pm blib/lib/Analizo/Metric/NumberOfPublicAttributes.pm +cp lib/Test/Analizo/Git.pm blib/lib/Test/Analizo/Git.pm +cp lib/Test/Analizo/BDD/Cucumber/Extension.pm blib/lib/Test/Analizo/BDD/Cucumber/Extension.pm +cp lib/Analizo/Metric/DepthOfInheritanceTree.pm blib/lib/Analizo/Metric/DepthOfInheritanceTree.pm +cp lib/Analizo/Metric/StructuralComplexity.pm blib/lib/Analizo/Metric/StructuralComplexity.pm +cp lib/Test/Analizo/Class.pm blib/lib/Test/Analizo/Class.pm +cp lib/Analizo/Metrics.pm blib/lib/Analizo/Metrics.pm +cp lib/Test/Analizo.pm blib/lib/Test/Analizo.pm cp lib/Analizo/Metric/ResponseForClass.pm blib/lib/Analizo/Metric/ResponseForClass.pm cp lib/Analizo/Metric/MaximumMethodLinesOfCode.pm blib/lib/Analizo/Metric/MaximumMethodLinesOfCode.pm -cp lib/Analizo/Metrics.pm blib/lib/Analizo/Metrics.pm -cp lib/Analizo/Metric/DepthOfInheritanceTree.pm blib/lib/Analizo/Metric/DepthOfInheritanceTree.pm +cp lib/Analizo/Model.pm blib/lib/Analizo/Model.pm +cp lib/Analizo/ModuleMetric.pm blib/lib/Analizo/ModuleMetric.pm cp lib/Analizo/Metric/NumberOfChildren.pm blib/lib/Analizo/Metric/NumberOfChildren.pm cp lib/Analizo/Metric/LinesOfCode.pm blib/lib/Analizo/Metric/LinesOfCode.pm -cp lib/Analizo/Metric/NumberOfMethods.pm blib/lib/Analizo/Metric/NumberOfMethods.pm -cp lib/Test/Analizo/Class.pm blib/lib/Test/Analizo/Class.pm cp lib/Analizo/Metric/NumberOfAttributes.pm blib/lib/Analizo/Metric/NumberOfAttributes.pm -cp lib/Test/Analizo/Git.pm blib/lib/Test/Analizo/Git.pm -cp lib/Analizo/Metric/StructuralComplexity.pm blib/lib/Analizo/Metric/StructuralComplexity.pm -cp lib/Analizo/Metric/NumberOfPublicMethods.pm blib/lib/Analizo/Metric/NumberOfPublicMethods.pm -cp lib/Test/Analizo/BDD/Cucumber/Extension.pm blib/lib/Test/Analizo/BDD/Cucumber/Extension.pm -cp lib/Analizo/Metric/LackOfCohesionOfMethods.pm blib/lib/Analizo/Metric/LackOfCohesionOfMethods.pm -cp lib/Analizo/Metric/NumberOfPublicAttributes.pm blib/lib/Analizo/Metric/NumberOfPublicAttributes.pm cp lib/Analizo/ModuleMetrics.pm blib/lib/Analizo/ModuleMetrics.pm -cp profile.pl blib/lib/profile.pl -cp lib/Test/Analizo.pm blib/lib/Test/Analizo.pm -cp lib/Analizo/ModuleMetric.pm blib/lib/Analizo/ModuleMetric.pm +cp lib/Analizo/Metric/NumberOfPublicMethods.pm blib/lib/Analizo/Metric/NumberOfPublicMethods.pm cp lib/Analizo/Metric/CouplingBetweenObjects.pm blib/lib/Analizo/Metric/CouplingBetweenObjects.pm -cp lib/Analizo/Model.pm blib/lib/Analizo/Model.pm +cp profile.pl blib/lib/profile.pl +cp lib/Analizo/Metric/NumberOfMethods.pm blib/lib/Analizo/Metric/NumberOfMethods.pm +cp lib/Analizo/Metric/LackOfCohesionOfMethods.pm blib/lib/Analizo/Metric/LackOfCohesionOfMethods.pm cp bin/analizo blib/script/analizo "/usr/bin/perl" -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/analizo Manifying 26 pod documents make[1]: Leaving directory '/build/reproducible-path/analizo-1.25.5' - dh_auto_test - make -j12 test TEST_VERBOSE=1 -make[1]: Entering directory '/build/reproducible-path/analizo-1.25.5' -Skip blib/lib/auto/share/dist/Analizo/README (unchanged) -Skip blib/lib/auto/share/dist/Analizo/bash-completion/analizo (unchanged) -PERL_DL_NONLAZY=1 "/usr/bin/perl" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(1, 'blib/lib', 'blib/arch')" t/*.t t/Analizo/*.t t/Analizo/Batch/*.t t/Analizo/Batch/Job/*.t t/Analizo/Batch/Output/*.t t/Analizo/Batch/Runner/*.t t/Analizo/Command/*.t t/Analizo/Extractor/*.t t/Analizo/GlobalMetric/*.t t/Analizo/Metric/*.t t/Analizo/Metric/AfferentConnections/*.t -# -# t::Analizo->constructor -# -# t::Analizo->empty_array_for_command_with_no_options -# -# t::Analizo->empty_hash_when_no_config_file -# -# t::Analizo->load_command_options -# -# t::Analizo->load_config_file -t/Analizo.t .............................................................. -ok 1 - use Analizo; -ok 2 - An object of class 'Analizo' isa 'Analizo' -ok 3 - An object of class 'Analizo' isa 'App::Cmd' -ok 4 - empty array for command with no options -ok 5 - empty hash when no config file -ok 6 - load command options -ok 7 - load config file -1..7 -ok -# -# t::Analizo::Batch->constructor -# -# t::Analizo::Batch->count -# -# t::Analizo::Batch->next -# -# t::Analizo::Batch->pass_filters_forward -t/Analizo/Batch.t ........................................................ -ok 1 - An object of class 'Analizo::Batch' isa 'Analizo::Batch' -ok 2 - Analizo::Batch->can('count') -ok 3 - Analizo::Batch->can('next') -ok 4 - next -ok 5 - must pass filters into job -1..5 -ok -# -# t::Analizo::Batch::Directories->count -# -# t::Analizo::Batch::Directories->create_with_arguments -# -# t::Analizo::Batch::Directories->create_with_bad_arguments -# -# t::Analizo::Batch::Directories->create_with_no_arguments -# -# t::Analizo::Batch::Directories->deliver_jobs -# -# t::Analizo::Batch::Directories->expose_list_of_dirs -t/Analizo/Batch/Directories.t ............................................ -ok 1 - count -ok 2 - create with arguments -ok 3 - create with bad arguments -ok 4 - create with no arguments -ok 5 - deliver jobs -ok 6 - deliver jobs -ok 7 - deliver jobs -ok 8 - Analizo::Batch::Directories->can('directories') -1..8 -ok -# -# t::Analizo::Batch::Git->constructor -# -# t::Analizo::Batch::Git->count -# -# t::Analizo::Batch::Git->create_with_and_without_args -# -# t::Analizo::Batch::Git->default_filter -# -# t::Analizo::Batch::Git->find_commit -# -# t::Analizo::Batch::Git->traverse_repository -t/Analizo/Batch/Git.t .................................................... -ok 1 - An object of class 'Analizo::Batch::Git' isa 'Analizo::Batch::Git' -ok 2 - count -ok 3 - create with and without args -ok 4 - create with and without args -ok 5 - create with and without args -ok 6 - create with and without args -ok 7 - must not analyze commit containing only (input.cc) -ok 8 - must not analyze commit containing only (prog.cc) -ok 9 - must not analyze commit containing only (prog.cc) -ok 10 - must not analyze commit containing only (prog.cc) -ok 11 - must not analyze commit containing only (prog.cc,output.h,output.cc) -ok 12 - must not analyze commit containing only (input.h,prog.cc,input.cc) -ok 13 - must not analyze commit containing only (prog.cc) -ok 14 - find commit -ok 15 - An object of class 'Analizo::Batch::Job::Git' isa 'Analizo::Batch::Job::Git' -ok 16 - find commit -ok 17 - main commit must be listed -ok 18 - intermediate relevant commit must be listed -ok 19 - intermediate IRRELEVANT commit must not be listed -1..19 -ok -# -# t::Analizo::Batch::Job->before_execute -# -# t::Analizo::Batch::Job->cache_of_model_and_metrics -# -# t::Analizo::Batch::Job->constructor -# -# t::Analizo::Batch::Job->empty_metadata_by_default -# -# t::Analizo::Batch::Job->execute -# -# t::Analizo::Batch::Job->exposed_interface -# -# t::Analizo::Batch::Job->invalidates_cache_after_upgrade_version -# -# t::Analizo::Batch::Job->metadata_as_hash -# -# t::Analizo::Batch::Job->pass_filters_to_extractor -# -# t::Analizo::Batch::Job->project_name -# -# t::Analizo::Batch::Job->stores_cache_on_distinct_dirs_for_each_version -# -# t::Analizo::Batch::Job->tree_id -t/Analizo/Batch/Job.t .................................................... -ok 1 - before execute -ok 2 - before execute -ok 3 - use cache for model -ok 4 - use cache for metrics -ok 5 - cached model is the same -ok 6 - cached metrics is the same -ok 7 - An object of class 'Analizo::Batch::Job' isa 'Analizo::Batch::Job' -ok 8 - empty metadata by default -ok 9 - must call prepare() and cleanup() on execute -ok 10 - An object of class 'Analizo::Model' isa 'Analizo::Model' -ok 11 - An object of class 'Analizo::Metrics' isa 'Analizo::Metrics' -ok 12 - An object of class 'Analizo::Model' isa 'Analizo::Model' -ok 13 - must force metrics calculation during execute() bu calling $metrics->data() -ok 14 - Analizo::Batch::Job->can(...) -ok 15 - metrics values sucessfully retrievied from the cache -ok 16 - values for metrics found on cache for same analizo version -ok 17 - values for metrics should not found for other analizo version -ok 18 - metadata as hash -ok 19 - metadata as hash -ok 20 - metadata as hash -ok 21 - must pass filters to extractor object -ok 22 - project name -ok 23 - project name -ok 24 - stores cache on distinct dirs for each version -ok 25 - stores cache on distinct dirs for each version -ok 26 - tree id -1..26 -ok -# -# t::Analizo::Batch::Job::Directories->constructor -# -# t::Analizo::Batch::Job::Directories->prepare_and_cleanup -t/Analizo/Batch/Job/Directories.t ........................................ -ok 1 - An object of class 'Analizo::Batch::Job::Directories' isa 'Analizo::Batch::Job::Directories' -ok 2 - constructor -ok 3 - constructor -ok 4 - must change dir in prepare() -ok 5 - must change back dir in cleanup() -1..5 -ok -# -# t::Analizo::Batch::Job::Git->changed_files -# -# t::Analizo::Batch::Job::Git->constructor -# -# t::Analizo::Batch::Job::Git->constructor_with_arguments -# -# t::Analizo::Batch::Job::Git->git_checkout_should_actually_checkout -# -# t::Analizo::Batch::Job::Git->merge_and_first_commit_detection -# -# t::Analizo::Batch::Job::Git->metadata -# -# t::Analizo::Batch::Job::Git->must_NOT_keep_a_reference_to_batch -# -# t::Analizo::Batch::Job::Git->parallelism_support -# -# t::Analizo::Batch::Job::Git->prepare_and_cleanup -# -# t::Analizo::Batch::Job::Git->previous_relevant -# -# t::Analizo::Batch::Job::Git->previous_relevant_with_parent_without_previous_relevant -# -# t::Analizo::Batch::Job::Git->previous_wanted -# -# t::Analizo::Batch::Job::Git->relevant_merge -t/Analizo/Batch/Job/Git.t ................................................ -ok 1 - changed files -ok 2 - changed files -ok 3 - changed files -ok 4 - changed files -ok 5 - An object of class 'Analizo::Batch::Job::Git' isa 'Analizo::Batch::Job::Git' -ok 6 - constructor with arguments -ok 7 - constructor with arguments -ok 8 - constructor with arguments -ok 9 - git checkout should actually checkout -ok 10 - git checkout should actually checkout -ok 11 - git checkout should actually checkout -ok 12 - git checkout should actually checkout -ok 13 - merge and first commit detection -ok 14 - merge and first commit detection -ok 15 - merge and first commit detection -ok 16 - merge and first commit detection -ok 17 - author name -ok 18 - author name -ok 19 - author name -ok 20 - author email -ok 21 - author email -ok 22 - author email -ok 23 - author date -ok 24 - author date -ok 25 - author date -ok 26 - previous commit -ok 27 - previous commit -ok 28 - previous commit -ok 29 - changed files -ok 30 - changed files -ok 31 - changed files -ok 32 - metadata -ok 33 - metadata -ok 34 - metadata -ok 35 - metadata -ok 36 - metadata -ok 37 - must not include non-code files in tree -ok 38 - unexisting commit id -ok 39 - unexisting commit id -ok 40 - unexisting commit id -ok 41 - must NOT keep a reference to batch -ok 42 - parallelism support -ok 43 - different work directory must be created -ok 44 - content must be copied -ok 45 - different work directory must be removed when parallel_cleanup is called. -ok 46 - parallelism support must not mess with project name -ok 47 - prepare must change dir -ok 48 - cleanup must change cwd back -ok 49 - cleanup must checkout given commit and go back to previous one -ok 50 - previous relevant -ok 51 - previous relevant -ok 52 - previous relevant -ok 53 - must return undef as previous_relevant when parent is a merge commit without any previous relevant commits -ok 54 - previous wanted -ok 55 - previous wanted -ok 56 - relevant merge -1..56 -ok -# -# t::Analizo::Batch::Output->constructor -# -# t::Analizo::Batch::Output->exposed_interface -# -# t::Analizo::Batch::Output->must_write_to_stdout_when_no_file_is_given -# -# t::Analizo::Batch::Output->not_require_metrics_by_default -# -# t::Analizo::Batch::Output->should_write_to_output_file -t/Analizo/Batch/Output.t ................................................. -ok 1 - An object of class 'Analizo::Batch::Output' isa 'Analizo::Batch::Output' -ok 2 - Analizo::Batch::Output->can(...) -ok 3 - must write to stdout when no file is given -ok 4 - not require metrics by default -ok 5 - output must be written to file -ok 6 - must delegate actualy writing to subclasses -1..6 -ok -# -# t::Analizo::Batch::Output::CSV->constructor -# -# t::Analizo::Batch::Output::CSV->job_metadata -# -# t::Analizo::Batch::Output::CSV->must_return_short_names_of_metrics -# -# t::Analizo::Batch::Output::CSV->must_write_hash_data_as_string -# -# t::Analizo::Batch::Output::CSV->must_write_list_data_as_string -# -# t::Analizo::Batch::Output::CSV->writing_data -t/Analizo/Batch/Output/CSV.t ............................................. -ok 1 - An object of class 'T::MO::E::a' isa 'Analizo::Batch::Output::CSV' -ok 2 - must list metadata fields -ok 3 - must include metadata values -ok 4 - must list acc metric name -ok 5 - must list accm metric name -ok 6 - must list amloc metric name -ok 7 - must list anpm metric name -ok 8 - must write hash data as string -ok 9 - must write list data as string -ok 10 - must write data to output file -ok 11 - first line must contain column names -ok 12 - CSV output must not contain empty lines -1..12 -ok -# -# t::Analizo::Batch::Output::DB->add_commit_and_developer_data -# -# t::Analizo::Batch::Output::DB->add_module_data_for_modules_changed_by_commit -# -# t::Analizo::Batch::Output::DB->add_project_data -# -# t::Analizo::Batch::Output::DB->basics -# -# t::Analizo::Batch::Output::DB->changed_added_module_versions -# -# t::Analizo::Batch::Output::DB->destination_database -# -# t::Analizo::Batch::Output::DB->files_with_multiple_modules -# -# t::Analizo::Batch::Output::DB->global_metrics -# -# t::Analizo::Batch::Output::DB->module_versions_with_the_same_id -# -# t::Analizo::Batch::Output::DB->numeric_autoincrement_pk -# -# t::Analizo::Batch::Output::DB->setting_up_a_database -t/Analizo/Batch/Output/DB.t .............................................. -ok 1 - [SELECT * FROM commits JOIN projects on (projects.id = commits.project_id) WHERE commits.id = 'XPTO'] returned 1 rows instead of exactly 1 -ok 2 - [SELECT * FROM developers JOIN commits on (commits.developer_id = developers.id) WHERE developers.name = 'Jonh Doe' AND developers.email = 'jdoe@example.com' AND commits.id = 'XPTO'] returned 1 rows instead of exactly 1 -ok 3 - [SELECT * FROM commits WHERE id = 'XPTO' AND previous_commit_id = 'PREVIOUS' AND date = '1313206352'] returned 1 rows instead of exactly 1 -ok 4 - [SELECT * FROM modules JOIN projects ON (projects.id = modules.project_id) WHERE projects.name = 'animals' AND modules.name = 'Mammal'] returned 1 rows instead of exactly 1 -ok 5 - [SELECT * FROM modules JOIN module_versions ON (module_versions.module_id = modules.id) JOIN commits_module_versions ON (commits_module_versions.module_version_id = module_versions.id) JOIN commits ON (commits_module_versions.commit_id = commits.id) WHERE commits.id = 'foo' AND modules.name = 'Mammal' AND module_versions.lcom4 >= 0 AND module_versions.cbo >= 0] returned 1 rows instead of exactly 1 -ok 6 - [SELECT * FROM modules JOIN projects ON (projects.id = modules.project_id) WHERE projects.name = 'animals' AND modules.name = 'Dog'] returned 1 rows instead of exactly 1 -ok 7 - [SELECT * FROM modules JOIN module_versions ON (module_versions.module_id = modules.id) JOIN commits_module_versions ON (commits_module_versions.module_version_id = module_versions.id) JOIN commits ON (commits_module_versions.commit_id = commits.id) WHERE commits.id = 'foo' AND modules.name = 'Dog' AND module_versions.lcom4 >= 0 AND module_versions.cbo >= 0] returned 1 rows instead of exactly 1 -ok 8 - [SELECT * FROM module_versions JOIN commits_module_versions ON (module_versions.id = commits_module_versions.module_version_id) JOIN commits ON (commits.id = commits_module_versions.commit_id) WHERE commit_id = 'foo'] returned 3 rows instead of exactly 3 -ok 9 - [SELECT * FROM modules JOIN module_versions ON (module_versions.module_id = modules.id) WHERE modules.name = 'Mammal' AND module_versions.id = '1111111111111111111111111111111111111111'] returned 1 rows instead of exactly 1 -ok 10 - [SELECT * FROM modules JOIN module_versions ON (module_versions.module_id = modules.id) WHERE modules.name = 'Dog' AND module_versions.id = '452219454519b29aae2e135c470d97d9e234976b'] returned 1 rows instead of exactly 1 -ok 11 - [select * from projects where name = 'niceproject'] returned 1 rows instead of exactly 1 -ok 12 - [select * from projects where name = 'niceproject'] returned 1 rows instead of exactly 1 -ok 13 - An object of class 'Analizo::Batch::Output::DB' isa 'Analizo::Batch::Output' -ok 14 - An object of class 'Analizo::Batch::Output::DB' isa 'Analizo::Batch::Output::DB' -ok 15 - [SELECT * FROM commits_module_versions WHERE commit_id = 'foo' AND module_version_id = '1111111111111111111111111111111111111111' AND modified AND NOT added] returned 1 rows instead of exactly 1 -ok 16 - [SELECT * FROM commits_module_versions WHERE commit_id = 'foo' AND module_version_id = '452219454519b29aae2e135c470d97d9e234976b' AND added AND NOT modified] returned 1 rows instead of exactly 1 -ok 17 - [SELECT * FROM commits_module_versions WHERE commit_id = 'foo' AND module_version_id = 'f676c6d81e63377edc2f9ec60b1bc2359b94606f' AND modified AND NOT added] returned 1 rows instead of exactly 1 -ok 18 - use SQLite output by default -ok 19 - use SQLite with a custom DB name -ok 20 - destination database -ok 21 - [SELECT * FROM modules] returned 3 rows instead of exactly 3 -ok 22 - [SELECT * FROM commits where total_abstract_classes > 0] returned 1 rows instead of exactly 1 -ok 23 - [SELECT * FROM module_versions WHERE id = '1111111111111111111111111111111111111111'] returned 2 rows instead of exactly 2 -ok 24 - numeric autoincrement pk -ok 25 - numeric autoincrement pk -ok 26 - must create PROJECTS table -ok 27 - must create COMMITS table -ok 28 - must create DEVELOPERS table -ok 29 - must create MODULES table -ok 30 - must create MODULE_VERSIONS table -ok 31 - must create COMMITS_MODULE_VERSIONS table -1..31 -ok -# -# t::Analizo::Batch::Runner->interaction_with_output -# -# t::Analizo::Batch::Runner->interface -# -# t::Analizo::Batch::Runner->progress -t/Analizo/Batch/Runner.t ................................................. -ok 1 - must initialize output object -ok 2 - must flush output object -ok 3 - Analizo::Batch::Runner->can('run') -ok 4 - Analizo::Batch::Runner->can('actually_run') -ok 5 - progress -ok 6 - progress -ok 7 - progress -1..7 -ok -# -# t::Analizo::Batch::Runner::Parallel->constuctor -# -# t::Analizo::Batch::Runner::Parallel->number_of_parallel_processes -t/Analizo/Batch/Runner/Parallel.t ........................................ -ok 1 - An object of class 'Analizo::Batch::Runner::Parallel' isa 'Analizo::Batch::Runner' -ok 2 - An object of class 'Analizo::Batch::Runner::Parallel' isa 'Analizo::Batch::Runner::Parallel' -ok 3 - number of parallel processes -ok 4 - number of parallel processes -1..4 -ok -# -# t::Analizo::Batch::Runner::Sequential->constructor -# -# t::Analizo::Batch::Runner::Sequential->empty_batch_wont_crash -# -# t::Analizo::Batch::Runner::Sequential->run -t/Analizo/Batch/Runner/Sequential.t ...................................... -ok 1 - An object of class 'Analizo::Batch::Runner::Sequential' isa 'Analizo::Batch::Runner' -ok 2 - An object of class 'Analizo::Batch::Runner::Sequential' isa 'Analizo::Batch::Runner::Sequential' -ok 3 - job1 must be executed -ok 4 - job2 must be executed -ok 5 - run -ok 6 - output must be flushed exactly once -1..6 -ok -# -# t::Analizo::Command->any_command_is_a_subclass_of_Analizo_Command -# -# t::Analizo::Command->execute_some_command -# -# t::Analizo::Command->executing_commands_with_version_argument_is_not_allowed -# -# t::Analizo::Command->version_information -t/Analizo/Command.t ...................................................... -ok 1 - use Analizo::Command; -ok 2 - An object of class 't::Analizo::Command::fake' isa 'Analizo::Command' -ok 3 - execute some command -ok 4 - threw Regexp ((?^:Invalid option)) -ok 5 - version information -1..5 -ok -# -# t::Analizo::Command::files_graph->constructor -# -# t::Analizo::Command::files_graph->is_a_subclass_of_Analizo_Command -t/Analizo/Command/files_graph.t .......................................... -ok 1 - use Analizo::Command::files_graph; -ok 2 - An object of class 'Analizo::Command::files_graph' isa 'Analizo::Command::files_graph' -ok 3 - An object of class 'Analizo::Command::files_graph' isa 'Analizo::Command' -1..3 -ok -# -# t::Analizo::Command::graph->constructor -# -# t::Analizo::Command::graph->is_a_subclass_of_Analizo_Command -t/Analizo/Command/graph.t ................................................ -ok 1 - use Analizo::Command::graph; -ok 2 - An object of class 'Analizo::Command::graph' isa 'Analizo::Command::graph' -ok 3 - An object of class 'Analizo::Command::graph' isa 'Analizo::Command' -1..3 -ok -# -# t::Analizo::Command::help->constructor -# -# t::Analizo::Command::help->is_a_subclass_of_Analizo_Command -t/Analizo/Command/help.t ................................................. -ok 1 - use Analizo::Command::help; -ok 2 - An object of class 'Analizo::Command::help' isa 'App::Cmd::Command::help' -ok 3 - An object of class 'Analizo::Command::help' isa 'Analizo::Command' -1..3 -ok -# -# t::Analizo::Command::metrics->constructor -# -# t::Analizo::Command::metrics->is_a_subclass_of_Analizo_Command -t/Analizo/Command/metrics.t .............................................. -ok 1 - use Analizo::Command::metrics; -ok 2 - An object of class 'Analizo::Command::metrics' isa 'Analizo::Command::metrics' -ok 3 - An object of class 'Analizo::Command::metrics' isa 'Analizo::Command' -1..3 -ok -# -# t::Analizo::Command::metrics_batch->constructor -# -# t::Analizo::Command::metrics_batch->is_a_subclass_of_Analizo_Command -t/Analizo/Command/metrics_batch.t ........................................ -ok 1 - use Analizo::Command::metrics_batch; -ok 2 - An object of class 'Analizo::Command::metrics_batch' isa 'Analizo::Command::metrics_batch' -ok 3 - An object of class 'Analizo::Command::metrics_batch' isa 'Analizo::Command' -1..3 -ok -# -# t::Analizo::Command::metrics_history->constructor -# -# t::Analizo::Command::metrics_history->is_a_subclass_of_Analizo_Command -# -# t::Analizo::Command::metrics_history->load_output_driver -# -# t::Analizo::Command::metrics_history->nil_for_unavaiable_output_driver -# -# t::Analizo::Command::metrics_history->output_driver -t/Analizo/Command/metrics_history.t ...................................... -ok 1 - use Analizo::Command::metrics_history; -ok 2 - An object of class 'Analizo::Command::metrics_history' isa 'Analizo::Command::metrics_history' -ok 3 - An object of class 'Analizo::Command::metrics_history' isa 'Analizo::Command' -ok 4 - The class (or class-like) 'Analizo::Batch::Output::CSV' isa 'Analizo::Batch::Output::CSV' -ok 5 - nil for unavaiable output driver -ok 6 - output driver -ok 7 - output driver -1..7 -ok -# -# t::Analizo::Command::tree_evolution->constructor -# -# t::Analizo::Command::tree_evolution->is_a_subclass_of_Analizo_Command -t/Analizo/Command/tree_evolution.t ....................................... -ok 1 - use Analizo::Command::tree_evolution; -ok 2 - An object of class 'Analizo::Command::tree_evolution' isa 'Analizo::Command::tree_evolution' -ok 3 - An object of class 'Analizo::Command::tree_evolution' isa 'Analizo::Command' -1..3 -ok -# -# t::Analizo::Extractor->constructor -# -# t::Analizo::Extractor->current_file -# -# t::Analizo::Extractor->current_file_plus_current_module -# -# t::Analizo::Extractor->current_module -# -# t::Analizo::Extractor->dont_allow_code_injection -# -# t::Analizo::Extractor->fail_when_load_invalid_extractor -# -# t::Analizo::Extractor->force_ignore_filter -# -# t::Analizo::Extractor->has_a_current_member -# -# t::Analizo::Extractor->has_filters -# -# t::Analizo::Extractor->load_doxyparse_extractor -# -# t::Analizo::Extractor->load_doxyparse_extractor_by_alias -# -# t::Analizo::Extractor->must_consider_only__supported_languages -# -# t::Analizo::Extractor->must_create_filters_for_excluded_dirs -# -# t::Analizo::Extractor->must_filter_input_with_language_filter -# -# t::Analizo::Extractor->must_not_exclude_everything_in_the_case_of_unexisting_excluded_dir -# -# t::Analizo::Extractor->must_not_ignore_filter_by_default -# -# t::Analizo::Extractor->must_not_process_files_in_excluded_dirs -# -# t::Analizo::Extractor->process_must_delegate_to_actually_process -t/Analizo/Extractor.t .................................................... -ok 1 - An object of class 'Analizo::Extractor' isa 'Analizo::Extractor' -ok 2 - current file -ok 3 - current file -ok 4 - current file plus current module -ok 5 - must be able to set the current module -ok 6 - must be able to change the current module -ok 7 - An object of class 'Analizo::Extractor::Doxyparse' isa 'Analizo::Extractor::Doxyparse' -ok 8 - dont allow code injection -ok 9 - fail when load invalid extractor -ok 10 - force ignore filter -ok 11 - Analizo::Extractor->can('current_member') -ok 12 - Analizo::Extractor->can('filters') -ok 13 - has filters -ok 14 - has filters -ok 15 - load doxyparse extractor -ok 16 - An object of class 'Analizo::Extractor::Doxyparse' isa 'Analizo::Extractor::Doxyparse' -ok 17 - load doxyparse extractor by alias -ok 18 - must consider only supported languages -ok 19 - must create filters for excluded dirs -ok 20 - must create filters for excluded dirs -ok 21 - must create filters for excluded dirs -ok 22 - must filter input with language filter -ok 23 - must not exclude everything in the case of unexisting excluded dir -ok 24 - must not exclude everything in the case of unexisting excluded dir -ok 25 - must not ignore filter by default -ok 26 - must not process files in excluded dirs -ok 27 - process must delegate to actually process -1..27 -ok -# -# t::Analizo::Extractor::Doxyparse->constructor -# -# t::Analizo::Extractor::Doxyparse->current_file -# -# t::Analizo::Extractor::Doxyparse->current_file_strip_pwd -# -# t::Analizo::Extractor::Doxyparse->current_module -# -# t::Analizo::Extractor::Doxyparse->detect_abstract_class -# -# t::Analizo::Extractor::Doxyparse->detect_conditional_paths -# -# t::Analizo::Extractor::Doxyparse->detect_direct_function_calls -# -# t::Analizo::Extractor::Doxyparse->detect_function_declaration -# -# t::Analizo::Extractor::Doxyparse->detect_function_protection -# -# t::Analizo::Extractor::Doxyparse->detect_lines_of_code -# -# t::Analizo::Extractor::Doxyparse->detect_number_of_parameters -# -# t::Analizo::Extractor::Doxyparse->detect_variable_declaration -# -# t::Analizo::Extractor::Doxyparse->detect_variable_protection -# -# t::Analizo::Extractor::Doxyparse->detect_variable_uses -# -# t::Analizo::Extractor::Doxyparse->detects_multiple_inheritance_properly -# -# t::Analizo::Extractor::Doxyparse->has_a_model -# -# t::Analizo::Extractor::Doxyparse->inheritance -# -# t::Analizo::Extractor::Doxyparse->invalid_doxyparse_input -# -# t::Analizo::Extractor::Doxyparse->module_name_can_contain_spaces -# -# t::Analizo::Extractor::Doxyparse->reading_from_directories -# -# t::Analizo::Extractor::Doxyparse->reading_from_one_input_file -# -# t::Analizo::Extractor::Doxyparse->reading_from_some_input_files -# -# t::Analizo::Extractor::Doxyparse->use_full_filename_for_C_modules -t/Analizo/Extractor/Doxyparse.t .......................................... -ok 1 - use Analizo::Extractor::Doxyparse; -ok 2 - An object of class 'Analizo::Extractor::Doxyparse' isa 'Analizo::Extractor::Doxyparse' -ok 3 - An object of class 'Analizo::Extractor::Doxyparse' isa 'Analizo::Extractor' -ok 4 - current file -ok 5 - current file strip pwd -ok 6 - must be able to set the current module -ok 7 - must be able to change the current module -ok 8 - extractor detects an abstract class -ok 9 - detect conditional paths -ok 10 - detect direct function calls -ok 11 - detect direct function calls -ok 12 - detect direct function calls -ok 13 - detect function declaration -ok 14 - must set the current function -ok 15 - detect function declaration -ok 16 - must set the current function again -ok 17 - detect function declaration -ok 18 - must set the current function one more time -ok 19 - detect function protection -ok 20 - detect function protection -ok 21 - detect lines of code -ok 22 - detect lines of code -ok 23 - detect number of parameters -ok 24 - detect variable declaration -ok 25 - must not read variable declarations when reading the name of the current module -ok 26 - detect variable declaration -ok 27 - detect variable protection -ok 28 - detect variable protection -ok 29 - detect variable uses -ok 30 - detect variable uses -ok 31 - Bird inherits Animal -ok 32 - detects multiple inheritance properly -ok 33 - detects multiple inheritance properly -ok 34 - detects multiple inheritance properly -ok 35 - detects multiple inheritance properly -ok 36 - multiple inheritance detected -ok 37 - An object of class 'Analizo::Model' isa 'Analizo::Model' -ok 38 - extractor detects inheritance -ok 39 - invalid doxyparse input -ok 40 - module name can contain spaces -ok 41 - reading from directories -ok 42 - reading from directories -ok 43 - reading from directories -ok 44 - reading from directories -ok 45 - module1 has once member -ok 46 - reading from one input file -ok 47 - we have once module -ok 48 - reading from one input file -ok 49 - module1 and module2 has 3 members -ok 50 - we have 2 modules -ok 51 - reading from some input files -ok 52 - reading from some input files -ok 53 - use full filename for C modules -ok 54 - use full filename for C modules -1..54 -ok -# -# t::Analizo::FilenameFilter->constructor -# -# t::Analizo::FilenameFilter->excluder -# -# t::Analizo::FilenameFilter->must_match_filenames_with_or_without_leading_dot -# -# t::Analizo::FilenameFilter->null_object -t/Analizo/FilenameFilter.t ............................................... -ok 1 - An object of class 'Analizo::FilenameFilter' isa 'Analizo::FilenameFilter' -ok 2 - An object of class 'Analizo::FilenameFilter' isa 'Analizo::FilenameFilter' -ok 3 - excluder -ok 4 - excluder -ok 5 - excluder -ok 6 - excluder -ok 7 - excluder -ok 8 - must match filenames with or without leading dot -ok 9 - must match filenames with or without leading dot -ok 10 - must match filenames with or without leading dot -ok 11 - must match filenames with or without leading dot -ok 12 - null object -1..12 -ok -# -# t::Analizo::GlobalMetric::ChangeCost->calculate -# -# t::Analizo::GlobalMetric::ChangeCost->calculate_for_an_empty_callgraph -# -# t::Analizo::GlobalMetric::ChangeCost->description -# -# t::Analizo::GlobalMetric::ChangeCost->has_model -t/Analizo/GlobalMetric/ChangeCost.t ...................................... -ok 1 - use Analizo::GlobalMetric::ChangeCost; -ok 2 - calculate -ok 3 - no change cost -ok 4 - description -ok 5 - has model -1..5 -ok -# -# t::Analizo::GlobalMetric::MethodsPerAbstractClass->calculate -# -# t::Analizo::GlobalMetric::MethodsPerAbstractClass->description -# -# t::Analizo::GlobalMetric::MethodsPerAbstractClass->has_model -# -# t::Analizo::GlobalMetric::MethodsPerAbstractClass->use_package -t/Analizo/GlobalMetric/MethodsPerAbstractClass.t ......................... -ok 1 - no abstract classes -ok 2 - no methods on abstract classes -ok 3 - one methods on one abstract classes -ok 4 - one methods on one abstract classes -ok 5 - description -ok 6 - has model -ok 7 - use Analizo::GlobalMetric::MethodsPerAbstractClass; -1..7 -ok -# -# t::Analizo::GlobalMetric::TotalAbstractClasses->calculate -# -# t::Analizo::GlobalMetric::TotalAbstractClasses->description -# -# t::Analizo::GlobalMetric::TotalAbstractClasses->has_model -# -# t::Analizo::GlobalMetric::TotalAbstractClasses->use_package -t/Analizo/GlobalMetric/TotalAbstractClasses.t ............................ -ok 1 - no abstract classes declared -ok 2 - one abstract classes declared -ok 3 - two abstract classes declared -ok 4 - description -ok 5 - has model -ok 6 - use Analizo::GlobalMetric::TotalAbstractClasses; -1..6 -ok -# -# t::Analizo::GlobalMetrics->add_lcom4_mean_when_there_were_two_added_values -# -# t::Analizo::GlobalMetrics->add_loc_mean_when_there_was_no_added_values -# -# t::Analizo::GlobalMetrics->add_loc_mean_when_there_was_one_added_values -# -# t::Analizo::GlobalMetrics->add_loc_mean_when_there_were_two_added_values -# -# t::Analizo::GlobalMetrics->add_rfc_sum_when_there_were_two_added_values -# -# t::Analizo::GlobalMetrics->constructor -# -# t::Analizo::GlobalMetrics->list_of_metrics -# -# t::Analizo::GlobalMetrics->metric_from_global_metrics_package -# -# t::Analizo::GlobalMetrics->model -# -# t::Analizo::GlobalMetrics->one_total_loc_found -# -# t::Analizo::GlobalMetrics->one_total_nom_found -# -# t::Analizo::GlobalMetrics->should_add_total_coupling_factor -# -# t::Analizo::GlobalMetrics->should_have_distributions_statistics -# -# t::Analizo::GlobalMetrics->should_have_other_descriptive_statistics -# -# t::Analizo::GlobalMetrics->should_ignore_filename -# -# t::Analizo::GlobalMetrics->should_ignore_module_name -# -# t::Analizo::GlobalMetrics->sum_the_values_of_loc_found -# -# t::Analizo::GlobalMetrics->sum_the_values_of_nom_found -# -# t::Analizo::GlobalMetrics->total_loc_with_no_loc_found -# -# t::Analizo::GlobalMetrics->total_modules -# -# t::Analizo::GlobalMetrics->total_modules_with_defined_attributes_when_a_module_has_no_noa -# -# t::Analizo::GlobalMetrics->total_modules_with_defined_attributes_when_a_module_has_noa -# -# t::Analizo::GlobalMetrics->total_modules_with_defined_attributes_when_no_modules_where_defined -# -# t::Analizo::GlobalMetrics->total_modules_with_defined_methods_when_a_module_has_no_nom -# -# t::Analizo::GlobalMetrics->total_modules_with_defined_methods_when_a_module_has_nom -# -# t::Analizo::GlobalMetrics->total_modules_with_defined_methods_when_no_modules_where_defined -# -# t::Analizo::GlobalMetrics->total_nom_with_no_nom_found -t/Analizo/GlobalMetrics.t ................................................ -ok 1 - add lcom4 mean when there were two added values -ok 2 - add loc mean when there was no added values -ok 3 - add loc mean when there was one added values -ok 4 - add loc mean when there were two added values -ok 5 - add rfc sum when there were two added values -ok 6 - An object of class 'Analizo::GlobalMetrics' isa 'Analizo::GlobalMetrics' -ok 7 - must list metrics -ok 8 - 1 abstract class -ok 9 - 1 method per abstract class -ok 10 - model -ok 11 - one total loc found -ok 12 - one total nom found -ok 13 - should add total coupling factor -ok 14 - should add total coupling factor -ok 15 - should have distributions statistics -ok 16 - should have distributions statistics -ok 17 - should have other descriptive statistics -ok 18 - should have other descriptive statistics -ok 19 - should have other descriptive statistics -ok 20 - should have other descriptive statistics -ok 21 - should have other descriptive statistics -ok 22 - Should ignore _filename metrics -ok 23 - should ignore module name -ok 24 - sum the values of loc found -ok 25 - sum the values of nom found -ok 26 - total loc with no loc found -ok 27 - total modules -ok 28 - total modules -ok 29 - total modules with defined attributes when a module has no noa -ok 30 - total modules with defined attributes when a module has noa -ok 31 - total modules with defined attributes when no modules where defined -ok 32 - total modules with defined methods when a module has no nom -ok 33 - total modules with defined methods when a module has nom -ok 34 - total modules with defined methods when no modules where defined -ok 35 - total nom with no nom found -1..35 -ok -# -# t::Analizo::LanguageFilter->c_filter_matches_dot_c_and_dot_h -# -# t::Analizo::LanguageFilter->constructor -# -# t::Analizo::LanguageFilter->cpp_filter_matches_cpp_cc_cxx_hpp_h_hh -# -# t::Analizo::LanguageFilter->csharp_filter_matches_cs_only -# -# t::Analizo::LanguageFilter->java_filter_matches_java_only -# -# t::Analizo::LanguageFilter->list_languages -# -# t::Analizo::LanguageFilter->must_be_case_insensitive -# -# t::Analizo::LanguageFilter->null_object_matches_everything_that_is_supported -t/Analizo/LanguageFilter.t ............................................... -ok 1 - c filter matches dot c and dot h -ok 2 - c filter matches dot c and dot h -ok 3 - c filter matches dot c and dot h -ok 4 - An object of class 'Analizo::LanguageFilter' isa 'Analizo::LanguageFilter' -ok 5 - cpp filter matches cpp cc cxx hpp h hh -ok 6 - cpp filter matches cpp cc cxx hpp h hh -ok 7 - cpp filter matches cpp cc cxx hpp h hh -ok 8 - cpp filter matches cpp cc cxx hpp h hh -ok 9 - cpp filter matches cpp cc cxx hpp h hh -ok 10 - cpp filter matches cpp cc cxx hpp h hh -ok 11 - cpp filter matches cpp cc cxx hpp h hh -ok 12 - cpp filter matches cpp cc cxx hpp h hh -ok 13 - csharp filter matches cs only -ok 14 - csharp filter matches cs only -ok 15 - csharp filter matches cs only -ok 16 - csharp filter matches cs only -ok 17 - csharp filter matches cs only -ok 18 - java filter matches java only -ok 19 - java filter matches java only -ok 20 - java filter matches java only -ok 21 - java filter matches java only -ok 22 - list languages -ok 23 - list languages -ok 24 - must be case insensitive -ok 25 - must be case insensitive -ok 26 - must be case insensitive -ok 27 - must be case insensitive -ok 28 - null object matches everything that is supported -ok 29 - null object matches everything that is supported -ok 30 - null object matches everything that is supported -1..30 -ok -# -# t::Analizo::Metric::AfferentConnections::AfferentConnectionsByInheritance->calculate_deeper_tree -# -# t::Analizo::Metric::AfferentConnections::AfferentConnectionsByInheritance->calculate_deeper_tree_new_grandchild -# -# t::Analizo::Metric::AfferentConnections::AfferentConnectionsByInheritance->calculate_first_degree_inheritance -# -# t::Analizo::Metric::AfferentConnections::AfferentConnectionsByInheritance->calculate_multiple_childs -# -# t::Analizo::Metric::AfferentConnections::AfferentConnectionsByInheritance->description -# -# t::Analizo::Metric::AfferentConnections::AfferentConnectionsByInheritance->has_model -# -# t::Analizo::Metric::AfferentConnections::AfferentConnectionsByInheritance->use_package -t/Analizo/Metric/AfferentConnections/AfferentConnectionsByInheritance.t .. -ok 1 - grandchilds acc is not affected -ok 2 - grandchild extending a child counts -ok 3 - the deeper the tree, the biggest acc -ok 4 - grandchilds acc is not affected -ok 5 - grandchild extending a child counts -ok 6 - the deeper the tree, the biggest acc -ok 7 - inheritance counts as acc to superclass -ok 8 - inheritance does not count as acc to child -ok 9 - multiple inheritance counts as acc -ok 10 - inheritance does not count as acc to another child -ok 11 - description -ok 12 - has model -ok 13 - use Analizo::Metric::AfferentConnections; -1..13 -ok -# -# t::Analizo::Metric::AfferentConnections::AfferentConnectionsByReference->calculate_adding_variable_of_another_module -# -# t::Analizo::Metric::AfferentConnections::AfferentConnectionsByReference->calculate_calling_function_of_another_module -# -# t::Analizo::Metric::AfferentConnections::AfferentConnectionsByReference->calculate_calling_itself_does_not_count -# -# t::Analizo::Metric::AfferentConnections::AfferentConnectionsByReference->calculate_calling_module_twice -# -# t::Analizo::Metric::AfferentConnections::AfferentConnectionsByReference->calculate_calling_variable_of_another_module -# -# t::Analizo::Metric::AfferentConnections::AfferentConnectionsByReference->calculate_empty_acc -# -# t::Analizo::Metric::AfferentConnections::AfferentConnectionsByReference->description -# -# t::Analizo::Metric::AfferentConnections::AfferentConnectionsByReference->has_model -# -# t::Analizo::Metric::AfferentConnections::AfferentConnectionsByReference->use_package -t/Analizo/Metric/AfferentConnections/AfferentConnectionsByReference.t .... -ok 1 - no calls to a module -ok 2 - adding variable of another module -ok 3 - no calls to a module -ok 4 - calling function of another module -ok 5 - calling itself does not count as acc -ok 6 - calling module twice -ok 7 - no calls to a module -ok 8 - calling variable of another module -ok 9 - no acc module A -ok 10 - no acc module B -ok 11 - no acc module C -ok 12 - description -ok 13 - has model -ok 14 - use Analizo::Metric::AfferentConnections; -1..14 -ok -# -# t::Analizo::Metric::AfferentConnections::AfferentConnectionsComplete->calculate_inheritance_and_references -# -# t::Analizo::Metric::AfferentConnections::AfferentConnectionsComplete->description -# -# t::Analizo::Metric::AfferentConnections::AfferentConnectionsComplete->has_model -# -# t::Analizo::Metric::AfferentConnections::AfferentConnectionsComplete->use_package -t/Analizo/Metric/AfferentConnections/AfferentConnectionsComplete.t ....... -ok 1 - deeper inheritance and reference counts as acc -ok 2 - calls counts as acc to child -ok 3 - inheritance counts as acc to mother -ok 4 - have no inheritance neither calls to mother sister -ok 5 - have no inheritance neither calls to friend -ok 6 - description -ok 7 - has model -ok 8 - use Analizo::Metric::AfferentConnections; -1..8 -ok -# -# t::Analizo::Metric::AverageCycloComplexity->calculate -# -# t::Analizo::Metric::AverageCycloComplexity->description -# -# t::Analizo::Metric::AverageCycloComplexity->has_model -# -# t::Analizo::Metric::AverageCycloComplexity->use_package -t/Analizo/Metric/AverageCycloComplexity.t ................................ -ok 1 - no function -ok 2 - one function with two conditional paths -ok 3 - two function with three average cyclomatic complexity per method -ok 4 - description -ok 5 - has model -ok 6 - use Analizo::Metric::AverageCycloComplexity; -1..6 -ok -# -# t::Analizo::Metric::AverageMethodLinesOfCode->calculate -# -# t::Analizo::Metric::AverageMethodLinesOfCode->description -# -# t::Analizo::Metric::AverageMethodLinesOfCode->has_model -# -# t::Analizo::Metric::AverageMethodLinesOfCode->use_package -t/Analizo/Metric/AverageMethodLinesOfCode.t .............................. -ok 1 - empty module has max loc 0 -ok 2 - one module, with 10 loc, makes avg loc = 10 -ok 3 - adding module with 5 loc makes the avg continue 10 -ok 4 - description -ok 5 - has model -ok 6 - use Analizo::Metric::AverageMethodLinesOfCode; -1..6 -ok -# -# t::Analizo::Metric::AverageNumberOfParameters->calculate -# -# t::Analizo::Metric::AverageNumberOfParameters->description -# -# t::Analizo::Metric::AverageNumberOfParameters->has_model -# -# t::Analizo::Metric::AverageNumberOfParameters->use_package -t/Analizo/Metric/AverageNumberOfParameters.t ............................. -ok 1 - no parameters declared -ok 2 - one function with one parameter -ok 3 - description -ok 4 - has model -ok 5 - use Analizo::Metric::AverageNumberOfParameters; -1..5 -ok -# -# t::Analizo::Metric::CouplingBetweenObjects->calculate -# -# t::Analizo::Metric::CouplingBetweenObjects->description -# -# t::Analizo::Metric::CouplingBetweenObjects->discard_external_symbols_for_calculate -# -# t::Analizo::Metric::CouplingBetweenObjects->has_model -# -# t::Analizo::Metric::CouplingBetweenObjects->use_package -t/Analizo/Metric/CouplingBetweenObjects.t ................................ -ok 1 - no cbo -ok 2 - calling itself does not count as cbo -ok 3 - calling a single other module -ok 4 - calling two function in distinct modules -ok 5 - calling two different functions in the same module -ok 6 - description -ok 7 - calling a external function -ok 8 - has model -ok 9 - use Analizo::Metric::CouplingBetweenObjects; -1..9 -ok -# -# t::Analizo::Metric::DepthOfInheritanceTree->calculate -# -# t::Analizo::Metric::DepthOfInheritanceTree->calculate_with_multiple_inheritance -# -# t::Analizo::Metric::DepthOfInheritanceTree->description -# -# t::Analizo::Metric::DepthOfInheritanceTree->has_model -# -# t::Analizo::Metric::DepthOfInheritanceTree->use_package -t/Analizo/Metric/DepthOfInheritanceTree.t ................................ -ok 1 - DIT = 2 -ok 2 - DIT = 1 -ok 3 - DIT = 0 -ok 4 - with multiple inheritance take the larger DIT between the parents -ok 5 - has model -ok 6 - use Analizo::Metric::DepthOfInheritanceTree; -1..6 -ok -# -# t::Analizo::Metric::LackOfCohesionOfMethods->calculate -# -# t::Analizo::Metric::LackOfCohesionOfMethods->calculate_2 -# -# t::Analizo::Metric::LackOfCohesionOfMethods->calculate_3 -# -# t::Analizo::Metric::LackOfCohesionOfMethods->description -# -# t::Analizo::Metric::LackOfCohesionOfMethods->has_model -# -# t::Analizo::Metric::LackOfCohesionOfMethods->use_package -t/Analizo/Metric/LackOfCohesionOfMethods.t ............................... -ok 1 - two unrelated functions -ok 2 - two cohesive functions -ok 3 - two different usage components -ok 4 - three different usage components -ok 5 - different types of connections -ok 6 - functions outside the module don't count for LCOM4 -ok 7 - description -ok 8 - has model -ok 9 - use Analizo::Metric::LackOfCohesionOfMethods; -1..9 -ok -# -# t::Analizo::Metric::LinesOfCode->calculate -# -# t::Analizo::Metric::LinesOfCode->description -# -# t::Analizo::Metric::LinesOfCode->has_model -# -# t::Analizo::Metric::LinesOfCode->use_package -t/Analizo/Metric/LinesOfCode.t ........................................... -ok 1 - empty module has 0 loc -ok 2 - one module, with 10 loc -ok 3 - adding another module with 20 loc makes the total equal 30 -ok 4 - description -ok 5 - has model -ok 6 - use Analizo::Metric::LinesOfCode; -1..6 -ok -# -# t::Analizo::Metric::MaximumMethodLinesOfCode->calculate -# -# t::Analizo::Metric::MaximumMethodLinesOfCode->description -# -# t::Analizo::Metric::MaximumMethodLinesOfCode->has_model -# -# t::Analizo::Metric::MaximumMethodLinesOfCode->use_package -t/Analizo/Metric/MaximumMethodLinesOfCode.t .............................. -ok 1 - empty module has max loc 0 -ok 2 - one module, with 10 loc, makes max loc = 10 -ok 3 - adding module with 5 loc makes the max continue 10 -ok 4 - description -ok 5 - has model -ok 6 - use Analizo::Metric::MaximumMethodLinesOfCode; -1..6 -ok -# -# t::Analizo::Metric::NumberOfAttributes->calculate -# -# t::Analizo::Metric::NumberOfAttributes->description -# -# t::Analizo::Metric::NumberOfAttributes->has_model -# -# t::Analizo::Metric::NumberOfAttributes->use_package -t/Analizo/Metric/NumberOfAttributes.t .................................... -ok 1 - empty modules have no attributes -ok 2 - module with one defined attribute -ok 3 - module with two defined attribute -ok 4 - description -ok 5 - has model -ok 6 - use Analizo::Metric::NumberOfAttributes; -1..6 -ok -# -# t::Analizo::Metric::NumberOfChildren->calculate -# -# t::Analizo::Metric::NumberOfChildren->description -# -# t::Analizo::Metric::NumberOfChildren->has_model -# -# t::Analizo::Metric::NumberOfChildren->use_package -t/Analizo/Metric/NumberOfChildren.t ...................................... -ok 1 - no children module A -ok 2 - no children module B -ok 3 - no children module C -ok 4 - one child module A -ok 5 - no children module B -ok 6 - two children module A -ok 7 - no children module C -ok 8 - two children module A -ok 9 - one child module C -ok 10 - no children module D -ok 11 - description -ok 12 - has model -ok 13 - use Analizo::Metric::NumberOfChildren; -1..13 -ok -# -# t::Analizo::Metric::NumberOfMethods->calculate -# -# t::Analizo::Metric::NumberOfMethods->description -# -# t::Analizo::Metric::NumberOfMethods->has_model -# -# t::Analizo::Metric::NumberOfMethods->use_package -t/Analizo/Metric/NumberOfMethods.t ....................................... -ok 1 - empty modules have no functions -ok 2 - module with just one function has number of functions = 1 -ok 3 - module with just two functions has number of functions = 2 -ok 4 - description -ok 5 - has model -ok 6 - use Analizo::Metric::NumberOfMethods; -1..6 -ok -# -# t::Analizo::Metric::NumberOfPublicAttributes->calculate -# -# t::Analizo::Metric::NumberOfPublicAttributes->description -# -# t::Analizo::Metric::NumberOfPublicAttributes->has_model -# -# t::Analizo::Metric::NumberOfPublicAttributes->use_package -t/Analizo/Metric/NumberOfPublicAttributes.t .............................. -ok 1 - empty modules have 0 public attributes -ok 2 - one public attribute added -ok 3 - another public attribute added -ok 4 - not public attribute added -ok 5 - description -ok 6 - has model -ok 7 - use Analizo::Metric::NumberOfPublicAttributes; -1..7 -ok -# -# t::Analizo::Metric::NumberOfPublicMethods->calculate -# -# t::Analizo::Metric::NumberOfPublicMethods->description -# -# t::Analizo::Metric::NumberOfPublicMethods->has_model -# -# t::Analizo::Metric::NumberOfPublicMethods->use_package -t/Analizo/Metric/NumberOfPublicMethods.t ................................. -ok 1 - empty modules have 0 public functions -ok 2 - one public function added -ok 3 - another public function added -ok 4 - not public function added -ok 5 - description -ok 6 - has model -ok 7 - use Analizo::Metric::NumberOfPublicMethods; -1..7 -ok -# -# t::Analizo::Metric::ResponseForClass->calculate -# -# t::Analizo::Metric::ResponseForClass->description -# -# t::Analizo::Metric::ResponseForClass->has_model -# -# t::Analizo::Metric::ResponseForClass->use_package -t/Analizo/Metric/ResponseForClass.t ...................................... -ok 1 - no functions declared on the module -ok 2 - one function declared on the module -ok 3 - two functions declared on the module -ok 4 - two functions and one call declared on the module -ok 5 - two functions and two calls declared on the module -ok 6 - description -ok 7 - has model -ok 8 - use Analizo::Metric::ResponseForClass; -1..8 -ok -# -# t::Analizo::Metric::StructuralComplexity->description -# -# t::Analizo::Metric::StructuralComplexity->has_model -# -# t::Analizo::Metric::StructuralComplexity->sc_definition -# -# t::Analizo::Metric::StructuralComplexity->sc_implementation -# -# t::Analizo::Metric::StructuralComplexity->use_package -t/Analizo/Metric/StructuralComplexity.t .................................. -ok 1 - description -ok 2 - has model -ok 3 - sc definition -ok 4 - sc implementation -ok 5 - sc implementation -ok 6 - sc implementation -ok 7 - use Analizo::Metric::StructuralComplexity; -1..7 -ok -# -# t::Analizo::Metrics->constructor -# -# t::Analizo::Metrics->list_of_metrics -# -# t::Analizo::Metrics->metrics_for -# -# t::Analizo::Metrics->model -# -# t::Analizo::Metrics->report -# -# t::Analizo::Metrics->report_global_only -# -# t::Analizo::Metrics->report_without_modules_at_all -t/Analizo/Metrics.t ...................................................... -ok 1 - An object of class 'Analizo::Metrics' isa 'Analizo::Metrics' -ok 2 - must list metrics -ok 3 - metrics for -ok 4 - metrics for -ok 5 - Analizo::Metrics->can('model') -ok 6 - model -ok 7 - reporting number of classes in YAML stream -ok 8 - reporting module 1 -ok 9 - reporting module 2 -ok 10 - reporting number of classes (it is global) -ok 11 - not reporting module 1 details -ok 12 - not reporting module 2 details -1..12 -ok -# -# t::Analizo::Model->addding_variable_uses -# -# t::Analizo::Model->adding_abstract_class -# -# t::Analizo::Model->adding_calls -# -# t::Analizo::Model->build_graphs_from_funcion_calls_and_inheritance -# -# t::Analizo::Model->build_graphs_from_function_calls -# -# t::Analizo::Model->build_graphs_from_inheritance -# -# t::Analizo::Model->constructor -# -# t::Analizo::Model->declaring_function -# -# t::Analizo::Model->declaring_inheritance -# -# t::Analizo::Model->declaring_modules -# -# t::Analizo::Model->declaring_modules_with_files -# -# t::Analizo::Model->declaring_number_of_conditional_paths -# -# t::Analizo::Model->declaring_protection -# -# t::Analizo::Model->declaring_variables -# -# t::Analizo::Model->declating_lines_of_code -# -# t::Analizo::Model->empty_call_graph -# -# t::Analizo::Model->empty_object -# -# t::Analizo::Model->group_files_when_build_graphs -# -# t::Analizo::Model->groupping_by_module -# -# t::Analizo::Model->including_external_functions -# -# t::Analizo::Model->indirect_calls -# -# t::Analizo::Model->listing_calls -# -# t::Analizo::Model->listing_only_defined_functions -# -# t::Analizo::Model->listing_two_calls -# -# t::Analizo::Model->ommiting_functions -# -# t::Analizo::Model->querying_functions -# -# t::Analizo::Model->querying_members -# -# t::Analizo::Model->querying_variables -# -# t::Analizo::Model->retrieving_modules_by_file -# -# t::Analizo::Model->use_file_as_vertices_in_graphs -# -# t::Analizo::Model->use_of_variables -t/Analizo/Model.t ........................................................ -ok 1 - must register variable use -ok 2 - model detects an abstract class -ok 3 - must register function call -ok 4 - build graphs from funcion calls and inheritance -ok 5 - build graphs from funcion calls and inheritance -ok 6 - build graphs from function calls -ok 7 - build graphs from function calls -ok 8 - build graphs from inheritance -ok 9 - build graphs from inheritance -ok 10 - An object of class 'Analizo::Model' isa 'Analizo::Model' -ok 11 - declared function must be stored -ok 12 - must map function to module -ok 13 - declaring a function must declare its module -ok 14 - must store members in a module -ok 15 - another declared function must be stored -ok 16 - must map another function to module -ok 17 - declaring a another function must declare its module -ok 18 - must store members in a module -ok 19 - class with one superclass -ok 20 - class with two superclasses -ok 21 - declaring modules -ok 22 - declaring modules -ok 23 - declaring modules with files -ok 24 - declaring number of conditional paths -ok 25 - declaring protection -ok 26 - declared variable must be stored -ok 27 - must map variable to module -ok 28 - declaring a variable must declare its module -ok 29 - must store variable in a module -ok 30 - declating lines of code -ok 31 - empty output must give empty digraph -ok 32 - 'must have modules' isa 'HASH' -ok 33 - 'must have members' isa 'HASH' -ok 34 - group files when build graphs -ok 35 - group files when build graphs -ok 36 - must list correctly a single dependency arrow between two modules -ok 37 - must list arrow targets in lexicographic order -ok 38 - must list arrow sources in in lexicographic order -ok 39 - must be able to omit a called function -ok 40 - must register indirect call -ok 41 - must generate correctly a graph with one call -ok 42 - must include by default only functions inside the project -ok 43 - must generate correctly a graph with f1 -> f2, f1 -> f3 -ok 44 - must be able to omit a called function -ok 45 - must be able to omit a caller function -ok 46 - must list f1 in functions -ok 47 - must list f2 in functions -ok 48 - must list f1 in functions -ok 49 - must list f2 in functions -ok 50 - must list v1 in variables -ok 51 - must list v2 in variables -ok 52 - must list v1 in variables -ok 53 - must list v2 in variables -ok 54 - retrieving modules by file -ok 55 - retrieving modules by file -ok 56 - use file as vertices in graphs -ok 57 - use file as vertices in graphs -ok 58 - must output declared variables -ok 59 - must use variable information for inter-module dependencies -1..59 -ok -# -# t::Analizo::ModuleMetric->caches_calculate_results -t/Analizo/ModuleMetric.t ................................................. -ok 1 - caches calculate results -1..1 -ok -# -# t::Analizo::ModuleMetrics->constructor -# -# t::Analizo::ModuleMetrics->list_of_metrics -# -# t::Analizo::ModuleMetrics->metrics_of_module -t/Analizo/ModuleMetrics.t ................................................ -ok 1 - An object of class 'Analizo::ModuleMetrics' isa 'Analizo::ModuleMetrics' -ok 2 - must list metrics -ok 3 - metrics of module -ok 4 - metrics of module -ok 5 - metrics of module -ok 6 - metrics of module -ok 7 - metrics of module -1..7 -ok -t/author-pod-spell.t ..................................................... skipped: these tests are for testing by the author -t/author-pod-syntax.t .................................................... skipped: these tests are for testing by the author -t/features.t ............................................................. -# Feature mapping modules to filenames -# As a software engineering resesearcher I want to know in which file each module is declared So that I can compare that with data from the VCS -# Scenario C++, runing against some directory -ok 1 - When I run "analizo metrics t/samples/animals/cpp" -# -ok 2 - Then analizo must report that file animal.h declares module Animal -# -ok 3 - And analizo must report that file cat.cc declares module Cat -# -ok 4 - And analizo must report that file cat.h declares module Cat -# -ok 5 - And analizo must report that file cat.cc not declares module Dog -# -ok 6 - And analizo must report that file cat.h not declares module Dog -# -ok 7 - Scenario 'C++, runing against some directory' skipped due to tag filter # skip -# Scenario C++, running against current directory -ok 8 - Given I am in t/samples/animals/cpp -# -ok 9 - When I run "analizo metrics ." -# -ok 10 - Then analizo must report that file animal.h declares module Animal -# -ok 11 - And analizo must report that file cat.cc declares module Cat -# -ok 12 - And analizo must report that file cat.h declares module Cat -# -ok 13 - Scenario 'C++, running against current directory' skipped due to tag filter # skip -# Scenario Java -ok 14 - When I run "analizo metrics t/samples/animals/java" -# -ok 15 - Then analizo must report that file Animal.java declares module Animal -# -ok 16 - Scenario 'Java' skipped due to tag filter # skip -# Scenario C -ok 17 - Given I am in t/samples/hello_world/c -# -ok 18 - When I run "analizo metrics ." -# -ok 19 - Then analizo must report that module hello_world has _filename = [hello_world.c,hello_world.h] -# -ok 20 - And analizo must report that file hello_world.c declares module hello_world -# -ok 21 - And analizo must report that file hello_world.h declares module hello_world -# -ok 22 - Scenario 'C' skipped due to tag filter # skip -# Scenario CSharp hello_world -ok 23 - Given I am in t/samples/hello_world/csharp -# -ok 24 - When I run "analizo metrics ." -# -ok 25 - Then analizo must report that module HelloWorld has _filename = [HelloWorld.cs] -# -ok 26 - Scenario 'CSharp hello_world' skipped due to tag filter # skip -# Scenario CSharp polygons -ok 27 - Given I am in t/samples/polygons/csharp -# -ok 28 - When I run "analizo metrics ." -# -ok 29 - Then analizo must report that file Polygon.cs declares module Polygon -# -ok 30 - And analizo must report that file Rect.cs declares module Rect -# -ok 31 - And analizo must report that file Triangle.cs declares module Triangle -# -ok 32 - Scenario 'CSharp polygons' skipped due to tag filter # skip -# Scenario Java Generics WildCard sample -ok 33 - Given I am in t/samples/wildcard -# -ok 34 - When I run "analizo metrics ." -# -ok 35 - Then analizo must report that file WildcardClass.java declares module WildcardClass -# -ok 36 - And analizo must report that file GenericClass.java declares module GenericClass -# -ok 37 - Scenario 'Java Generics WildCard sample' skipped due to tag filter # skip -# Scenario Java Enumeration sample -ok 38 - Given I am in t/samples/enumeration -# -ok 39 - When I run "analizo metrics ." -# -ok 40 - Then analizo must report that file Main.java declares module Main::MyEnumeration -# -ok 41 - And analizo must report that file Enumeration.java declares module Enumeration -# -ok 42 - Scenario 'Java Enumeration sample' skipped due to tag filter # skip -# Feature storing VCS data in a database -# As a software engineering researcher I want to store data about the changes in a project So that I can analyze the development process -# Scenario basics -ok 43 - When I explode t/samples/evolution.tar.gz -# -ok 44 - And I run "analizo metrics-history -f db -o data.db" -# -ok 45 - Then the exit status must be 0 -# -ok 46 - When I run "select * from modules" on database "data.db" -# -ok 47 - Then the output must match "Input" -# -ok 48 - And the output must match "Output" -# -ok 49 - And the output must match "prog" -# -ok 50 - Scenario 'basics' skipped due to tag filter # skip -# Feature multi-language support -# As a Researcher or Practioneer I want to be able to analyze software in different languages In order do compare them -# Scenario dependency between modules -ok 51 - Given I am in t/samples/hello_world/c -# -ok 52 - When I run "analizo graph --modules ." -# -ok 53 - Then analizo must report that "main" depends on "hello_world" -# -# Scenario dependency between modules -ok 54 - Given I am in t/samples/hello_world/cpp -# -ok 55 - When I run "analizo graph --modules ." -# -ok 56 - Then analizo must report that "main" depends on "HelloWorld" -# -# Scenario dependency between modules -ok 57 - Given I am in t/samples/hello_world/java -# -ok 58 - When I run "analizo graph --modules ." -# -ok 59 - Then analizo must report that "Main" depends on "HelloWorld" -# -# Scenario dependency between modules -ok 60 - Given I am in t/samples/hello_world/csharp -# -ok 61 - When I run "analizo graph --modules ." -# -ok 62 - Then analizo must report that "main" depends on "HelloWorld" -# -# Scenario dependency between specific functions -ok 63 - Given I am in t/samples/hello_world/c -# -ok 64 - When I run "analizo graph ." -# -ok 65 - Then analizo must report that "main::main()" depends on "hello_world::hello_world_say(hello_world *)" -# -ok 66 - And analizo must report that "main::main()" depends on "hello_world::hello_world_destroy(hello_world *)" -# -# Scenario dependency between specific functions -ok 67 - Given I am in t/samples/hello_world/cpp -# -ok 68 - When I run "analizo graph ." -# -ok 69 - Then analizo must report that "main::main()" depends on "HelloWorld::say()" -# -ok 70 - And analizo must report that "main::main()" depends on "HelloWorld::destroy()" -# -# Scenario dependency between specific functions -ok 71 - Given I am in t/samples/hello_world/java -# -ok 72 - When I run "analizo graph ." -# -ok 73 - Then analizo must report that "Main::main(String[])" depends on "HelloWorld::say()" -# -ok 74 - And analizo must report that "Main::main(String[])" depends on "HelloWorld::destroy()" -# -# Scenario dependency between specific functions -ok 75 - Given I am in t/samples/hello_world/csharp -# -ok 76 - When I run "analizo graph ." -# -ok 77 - Then analizo must report that "main::Main()" depends on "HelloWorld::say()" -# -ok 78 - And analizo must report that "main::Main()" depends on "HelloWorld::destroy()" -# -# Scenario intra-module dependencies -ok 79 - Given I am in t/samples/hello_world/c -# -ok 80 - When I run "analizo graph ." -# -ok 81 - Then analizo must report that "hello_world::hello_world_say(hello_world *)" depends on "hello_world::_hello_world::id" -# -ok 82 - And analizo must report that "hello_world::hello_world_destroy(hello_world *)" depends on "hello_world::_hello_world::id" -# -# Scenario intra-module dependencies -ok 83 - Given I am in t/samples/hello_world/cpp -# -ok 84 - When I run "analizo graph ." -# -ok 85 - Then analizo must report that "HelloWorld::say()" depends on "HelloWorld::_id" -# -ok 86 - And analizo must report that "HelloWorld::destroy()" depends on "HelloWorld::_id" -# -# Scenario intra-module dependencies -ok 87 - Given I am in t/samples/hello_world/java -# -ok 88 - When I run "analizo graph ." -# -ok 89 - Then analizo must report that "HelloWorld::say()" depends on "HelloWorld::_id" -# -ok 90 - And analizo must report that "HelloWorld::destroy()" depends on "HelloWorld::_id" -# -# Scenario intra-module dependencies -ok 91 - Given I am in t/samples/hello_world/csharp -# -ok 92 - When I run "analizo graph ." -# -ok 93 - Then analizo must report that "HelloWorld::say()" depends on "HelloWorld::_id" -# -ok 94 - And analizo must report that "HelloWorld::destroy()" depends on "HelloWorld::_id" -# -# Scenario some metrics -ok 95 - Given I am in t/samples/hello_world/c -# -ok 96 - When I run "analizo metrics ." -# -ok 97 - Then analizo must report that the project has total_modules = 2 -# -ok 98 - And analizo must report that module main has nom = 1 -# -ok 99 - And analizo must report that module hello_world has npm = 3 -# -ok 100 - And analizo must report that module hello_world has nom = 3 -# -ok 101 - And analizo must report that module hello_world has npa = 2 -# -# Scenario some metrics -ok 102 - Given I am in t/samples/hello_world/cpp -# -ok 103 - When I run "analizo metrics ." -# -ok 104 - Then analizo must report that the project has total_modules = 2 -# -ok 105 - And analizo must report that module main has nom = 1 -# -ok 106 - And analizo must report that module HelloWorld has npm = 3 -# -ok 107 - And analizo must report that module HelloWorld has nom = 4 -# -ok 108 - And analizo must report that module HelloWorld has npa = 1 -# -# Scenario some metrics -ok 109 - Given I am in t/samples/hello_world/java -# -ok 110 - When I run "analizo metrics ." -# -ok 111 - Then analizo must report that the project has total_modules = 2 -# -ok 112 - And analizo must report that module Main has nom = 1 -# -ok 113 - And analizo must report that module HelloWorld has npm = 3 -# -ok 114 - And analizo must report that module HelloWorld has nom = 4 -# -ok 115 - And analizo must report that module HelloWorld has npa = 1 -# -# Scenario some metrics -ok 116 - Given I am in t/samples/hello_world/csharp -# -ok 117 - When I run "analizo metrics ." -# -ok 118 - Then analizo must report that the project has total_modules = 2 -# -ok 119 - And analizo must report that module main has nom = 1 -# -ok 120 - And analizo must report that module HelloWorld has npm = 3 -# -ok 121 - And analizo must report that module HelloWorld has nom = 4 -# -ok 122 - And analizo must report that module HelloWorld has npa = 1 -# -# Scenario inheritance data -ok 123 - Given I am in t/samples/animals/cpp -# -ok 124 - When I run "analizo graph --modules ." -# -ok 125 - Then analizo must report that "Cat" depends on "Mammal" -# -ok 126 - And analizo must report that "Dog" depends on "Mammal" -# -ok 127 - And analizo must report that "Mammal" depends on "Animal" -# -ok 128 - When I run "analizo metrics ." -# -ok 129 - Then analizo must report that module Cat has dit = 2 -# -ok 130 - And analizo must report that module Dog has dit = 2 -# -ok 131 - And analizo must report that module Mammal has dit = 1 -# -ok 132 - And analizo must report that module Animal has dit = 0 -# -# Scenario inheritance data -ok 133 - Given I am in t/samples/animals/java -# -ok 134 - When I run "analizo graph --modules ." -# -ok 135 - Then analizo must report that "Cat" depends on "Mammal" -# -ok 136 - And analizo must report that "Dog" depends on "Mammal" -# -ok 137 - And analizo must report that "Mammal" depends on "Animal" -# -ok 138 - When I run "analizo metrics ." -# -ok 139 - Then analizo must report that module Cat has dit = 2 -# -ok 140 - And analizo must report that module Dog has dit = 2 -# -ok 141 - And analizo must report that module Mammal has dit = 1 -# -ok 142 - And analizo must report that module Animal has dit = 0 -# -# Scenario mixed Java and C -ok 143 - Given I am in t/samples/mixed -# -ok 144 - When I run "analizo metrics ." -# -ok 145 - Then the output must match "_module: native_backend" -# -ok 146 - And the output must match "_module: UI" -# -ok 147 - And the output must match "_module: Backend" -# -ok 148 - Scenario 'mixed Java and C' skipped due to tag filter # skip -# Feature analizo metrics-history -# As a software engineering researcher I want to analyse the entire history of a project To understand its development process -# Scenario listing merge commits with code changes that should be analyzed -ok 149 - When I explode t/samples/evolution.tar.gz -# -ok 150 - And I run "analizo metrics-history --list ." -# -ok 151 - Then the output must match "0a06a6fcc2e7b4fe56d134e89d74ad028bb122ed" -# -ok 152 - And the output must match "eb67c27055293e835049b58d7d73ce3664d3f90e" -# -ok 153 - And the output must match "aa2d0fcb7879485d5ff1cd189743f91f04bea8ce" -# -ok 154 - And the output must match "e8faf88f0e20a193d700b6c68eeb31897dd85e53" -# -ok 155 - And the output must match "d7f52e74dc3d8f57640e83d41c5e9f8fcf621c00" -# -ok 156 - And the output must match "0d3c023120ad4e9f519a03fff275d048c52671ad" -# -ok 157 - Scenario 'listing merge commits with code changes that should be analyzed' skipped due to tag filter # skip -# Scenario non-code commits should not be analyzed -ok 158 - When I explode t/samples/evolution.tar.gz -# -ok 159 - And I run "analizo metrics-history --list ." -# -ok 160 - Then the output must not match "ba62278e976944c0334103aa0044535169e1a51e" -# -ok 161 - Scenario 'non-code commits should not be analyzed' skipped due to tag filter # skip -# Scenario merge commits without code change should not be analyzed -ok 162 - When I explode t/samples/evolution.tar.gz -# -ok 163 - And I run "analizo metrics-history --list ." -# -ok 164 - Then the output must not match "0fdaaa7dcc8073332a957024fafc8c98f165e725" -# -ok 165 - Scenario 'merge commits without code change should not be analyzed' skipped due to tag filter # skip -# Scenario actually processing merge commits -ok 166 - When I explode t/samples/evolution.tar.gz -# -ok 167 - And I run "analizo metrics-history -o metrics.csv . && cat metrics.csv" -# -ok 168 - Then the output must match "^id,previous_commit_id,author_date,author_name,author_email,.*,sc_mean" -# -ok 169 - And the output must match "0a06a6fcc2e7b4fe56d134e89d74ad028bb122ed,eb67c27055293e835049b58d7d73ce3664d3f90e" -# -ok 170 - And the output must match "eb67c27055293e835049b58d7d73ce3664d3f90e,," -# -ok 171 - And the output must match "aa2d0fcb7879485d5ff1cd189743f91f04bea8ce,d7f52e74dc3d8f57640e83d41c5e9f8fcf621c00" -# -ok 172 - And the output must match "e8faf88f0e20a193d700b6c68eeb31897dd85e53,d7f52e74dc3d8f57640e83d41c5e9f8fcf621c00" -# -ok 173 - And the output must match "d7f52e74dc3d8f57640e83d41c5e9f8fcf621c00,0d3c023120ad4e9f519a03fff275d048c52671ad" -# -ok 174 - Scenario 'actually processing merge commits' skipped due to tag filter # skip -# Scenario actually processing initial commit and first commit after a non-relevant merge -ok 175 - When I explode t/samples/evolution.tar.gz -# -ok 176 - And I run "analizo metrics-history -o metrics.csv . && cat metrics.csv" -# -ok 177 - Then the output must match "0d3c023120ad4e9f519a03fff275d048c52671ad,," -# -ok 178 - And the output must match "8183eafad3a0f3eff6e8869f1bdbfd255e86825a,0a06a6fcc2e7b4fe56d134e89d74ad028bb122ed" -# -ok 179 - Scenario 'actually processing initial commit and first commit after a non-relevant merge' skipped due to tag filter # skip -# Scenario support for parallel processing -ok 180 - Given I copy t/samples/evolution.tar.gz into a temporary directory -# -ok 181 - When I run "tar xzf evolution.tar.gz" -# -ok 182 - And I run "cd evolution && analizo metrics-history -o ../sequential.csv" -# -ok 183 - And I run "cd evolution && analizo metrics-history -p 2 -o ../parallel.csv" -# -ok 184 - Then the exit status must be 0 -# -ok 185 - When I run "sort sequential.csv > sequential-sorted.csv" -# -ok 186 - And I run "sort parallel.csv > parallel-sorted.csv" -# -ok 187 - And I run "diff -u sequential-sorted.csv parallel-sorted.csv" -# -ok 188 - Then the output must not match "---" -# -ok 189 - And the exit status must be 0 -# -ok 190 - Scenario 'support for parallel processing' skipped due to tag filter # skip -# Scenario parsing git log format containing renamed files among status of changed files -ok 191 - Given I copy t/samples/evolution.tar.gz into a temporary directory -# -ok 192 - When I run "tar xzf evolution.tar.gz" -# -ok 193 - And I run "cd evolution && git checkout doc && analizo metrics-history ." -# -ok 194 - Then the exit status must be 0 -# -ok 195 - Scenario 'parsing git log format containing renamed files among status of changed files' skipped due to tag filter # skip -# Scenario language filters -ok 196 - Given I copy t/samples/mixed into a temporary directory -# -ok 197 - When I run "(cd mixed && git init && git add * && git commit -m 'initial commit')" -# -ok 198 - And I run "analizo metrics-history --language java mixed" -# -ok 199 - Then the output must not match "native_backend.c" -# -ok 200 - Scenario 'language filters' skipped due to tag filter # skip -# Feature give manpage on --help -# As a user I want to read the manpage when passing --help command line option In order to get instructions on how to use the tools -# Scenario display manpage for `analizo graph` -ok 201 - When I run "analizo graph --help" -# -ok 202 - Then the output must match "[NAME|N^HNA^HAM^HME^HE]\s+analizo-graph" -# -ok 203 - Then the output must match "[USAGE|U^HUS^HSA^HAG^HGE^HE]\s+analizo graph \[OPTIONS\]" -# -# Scenario display manpage for `analizo metrics` -ok 204 - When I run "analizo metrics --help" -# -ok 205 - Then the output must match "[NAME|N^HNA^HAM^HME^HE]\s+analizo-metrics" -# -ok 206 - Then the output must match "[USAGE|U^HUS^HSA^HAG^HGE^HE]\s+analizo metrics \[OPTIONS\]" -# -# Scenario display manpage for `analizo metrics-batch` -ok 207 - When I run "analizo metrics-batch --help" -# -ok 208 - Then the output must match "[NAME|N^HNA^HAM^HME^HE]\s+analizo-metrics-batch" -# -ok 209 - Then the output must match "[USAGE|U^HUS^HSA^HAG^HGE^HE]\s+analizo metrics-batch \[OPTIONS\]" -# -# Scenario display manpage for `analizo metrics-history` -ok 210 - When I run "analizo metrics-history --help" -# -ok 211 - Then the output must match "[NAME|N^HNA^HAM^HME^HE]\s+analizo-metrics-history" -# -ok 212 - Then the output must match "[USAGE|U^HUS^HSA^HAG^HGE^HE]\s+analizo metrics-history \[OPTIONS\]" -# -# Scenario display manpage for `analizo tree-evolution` -ok 213 - When I run "analizo tree-evolution --help" -# -ok 214 - Then the output must match "[NAME|N^HNA^HAM^HME^HE]\s+analizo-tree-evolution" -# -ok 215 - Then the output must match "[USAGE|U^HUS^HSA^HAG^HGE^HE]\s+analizo tree-evolution \[OPTIONS\]" -# -# Scenario display manpage for `analizo files-graph` -ok 216 - When I run "analizo files-graph --help" -# -ok 217 - Then the output must match "[NAME|N^HNA^HAM^HME^HE]\s+analizo-files-graph" -# -ok 218 - Then the output must match "[USAGE|U^HUS^HSA^HAG^HGE^HE]\s+analizo files-graph \[OPTIONS\]" -# -# Feature tree evolution -# As a software engineering reasearcher I want to know what directories existed during the project lifetime So that I can analyze only the production code (and not tests etc) -# Scenario sample git repository -ok 219 - When I explode t/samples/tree-evolution.tar.gz -# -ok 220 - And I run "analizo tree-evolution" -# -ok 221 - Then the output lines must match "\# 073290fbad0254793bd3ecfb97654c04368d0039\\nsrc\\n\#" -# -ok 222 - Then the output lines must match "\# 85f7db08f7b7b0b62e3c0023b2743d529b0d5b4b\\nsrc\\nsrc/input\\n\#" -# -ok 223 - Then the output lines must match "\# f41cf7d0351e812285efd60c6d957c330b1f61a1\\nsrc\\nsrc/input\\nsrc/output" -# -ok 224 - Scenario 'sample git repository' skipped due to tag filter # skip -# Feature metrics batch -# As a software engineering researcher I want to analyze several different projects So I can compare their metrics -# Scenario "hello, world" -ok 225 - Given I am in t/samples/hello_world/ -# -ok 226 - When I run "analizo metrics-batch" -# -ok 227 - Then the output must match "I: Processed c." -# -ok 228 - And the output must match "I: Processed cpp." -# -ok 229 - And the output must match "I: Processed java." -# -ok 230 - Scenario '"hello, world"' skipped due to tag filter # skip -# Scenario summarizing -ok 231 - Given I am in t/samples/hello_world/ -# -ok 232 - When I run "analizo metrics-batch --quiet -o data.csv && cat data.csv && rm -f *.csv" -# -ok 233 - Then the output must match "^id," -# -ok 234 - And the output must not match ",---," -# -ok 235 - And the output must match "c," -# -ok 236 - And the output must match "cpp," -# -ok 237 - And the output must match "java," -# -ok 238 - And the output must not match "I: Processed" -# -ok 239 - Scenario 'summarizing' skipped due to tag filter # skip -# Scenario support for parallel processing -ok 240 - Given I copy t/samples/hello_world/* into a temporary directory -# -ok 241 - When I run "analizo metrics-batch -q -o sequential.csv" -# -ok 242 - And I run "analizo metrics-batch -q -o parallel.csv -p 2" -# -ok 243 - And I run "sort sequential.csv > sequential-sorted.csv" -# -ok 244 - And I run "sort parallel.csv > parallel-sorted.csv" -# -ok 245 - And I run "diff -u sequential-sorted.csv parallel-sorted.csv" -# -ok 246 - Then the output must not match "---" -# -ok 247 - Then the exit status must be 0 -# -ok 248 - Scenario 'support for parallel processing' skipped due to tag filter # skip -# Scenario passing two input directories as argument -ok 249 - Given I copy t/samples/hello_world/* into a temporary directory -# -ok 250 - When I run "analizo metrics-batch --quiet -o data.csv cpp java" -# -ok 251 - Then the exit status must be 0 -# -ok 252 - And the file "c-details.csv" should not exist -# -ok 253 - And the file "cpp-details.csv" should exist -# -ok 254 - And the file "java-details.csv" should exist -# -ok 255 - Scenario 'passing two input directories as argument' skipped due to tag filter # skip -# Scenario passing one input directory as argument -ok 256 - Given I copy t/samples/hello_world/* into a temporary directory -# -ok 257 - When I run "analizo metrics-batch --quiet -o data.csv cpp" -# -ok 258 - Then the exit status must be 0 -# -ok 259 - And the file "c-details.csv" should not exist -# -ok 260 - And the file "cpp-details.csv" should exist -# -ok 261 - And the file "java-details.csv" should not exist -# -ok 262 - Scenario 'passing one input directory as argument' skipped due to tag filter # skip -# Feature c code with void argument -# As a software engineering reasearcher I want to know the arguments of each function on a project So that I can run analizo metrics calculate number of parameters -# Scenario calculate anpn on function with void argument -ok 263 - Given I am in t/samples/void/ -# -ok 264 - When I run "analizo metrics ." -# -ok 265 - Then analizo must report that module main has anpm = 0 -# -ok 266 - Scenario 'calculate anpn on function with void argument' skipped due to tag filter # skip -# Feature dependency graph among files -# As a software engineering reasearcher I want to know the all relationships between all files on project So that I can run analizo files-graph to produces a DOT graph from source-code -# Scenario relation between function call -ok 267 - Given I am in t/samples/animals/cpp -# -ok 268 - When I run "analizo files-graph ." -# -ok 269 - Then analizo must report that "main" depends on "animal" -# -# Scenario relation between function call -ok 270 - Given I am in t/samples/animals/java -# -ok 271 - When I run "analizo files-graph ." -# -ok 272 - Then analizo must report that "Main" depends on "Animal" -# -# Scenario relation between function call -ok 273 - Given I am in t/samples/animals/csharp -# -ok 274 - When I run "analizo files-graph ." -# -ok 275 - Then analizo must report that "Main" depends on "Animal" -# -# Scenario relation between inheritance -ok 276 - Given I am in t/samples/animals/cpp -# -ok 277 - When I run "analizo files-graph ." -# -ok 278 - Then analizo must report that "dog" depends on "mammal" -# -# Scenario relation between inheritance -ok 279 - Given I am in t/samples/animals/java -# -ok 280 - When I run "analizo files-graph ." -# -ok 281 - Then analizo must report that "Dog" depends on "Mammal" -# -# Scenario relation between inheritance -ok 282 - Given I am in t/samples/animals/csharp -# -ok 283 - When I run "analizo files-graph ." -# -ok 284 - Then analizo must report that "Dog" depends on "Mammal" -# -# Scenario relation between inheritance -ok 285 - Given I am in t/samples/animals/cpp -# -ok 286 - When I run "analizo files-graph ." -# -ok 287 - Then analizo must report that "mammal" depends on "animal" -# -# Scenario relation between inheritance -ok 288 - Given I am in t/samples/animals/java -# -ok 289 - When I run "analizo files-graph ." -# -ok 290 - Then analizo must report that "Mammal" depends on "Animal" -# -# Scenario relation between inheritance -ok 291 - Given I am in t/samples/animals/csharp -# -ok 292 - When I run "analizo files-graph ." -# -ok 293 - Then analizo must report that "Mammal" depends on "Animal" -# -# Feature loading command line options from .analizo -# As a analizo user I want to store command line options in a file called .analizo inside my project So that I don't need to alway pass all those options on the command line -# Scenario analizo metrics -ok 294 - Given I copy t/samples/mixed into a temporary directory -# -ok 295 - And I create a file called .analizo with the following content -# """metrics: --language java""" -ok 296 - When I run "analizo metrics ." -# -ok 297 - Then the output must not match "native_backend.c" -# -ok 298 - And the output must match "UI.java" -# -ok 299 - And the exit status must be 0 -# -ok 300 - Scenario 'analizo metrics' skipped due to tag filter # skip -# Scenario all others -ok 301 - Given I change to an empty temporary directory -# -ok 302 - And I create a file called .analizo with the following content -# """: --help""" -ok 303 - When I run "analizo graph" -# -ok 304 - Then the output must match "analizo graph is part of the analizo suite." -# -# Scenario all others -ok 305 - Given I change to an empty temporary directory -# -ok 306 - And I create a file called .analizo with the following content -# """: --help""" -ok 307 - When I run "analizo metrics" -# -ok 308 - Then the output must match "analizo metrics is part of the analizo suite." -# -# Scenario all others -ok 309 - Given I change to an empty temporary directory -# -ok 310 - And I create a file called .analizo with the following content -# """: --help""" -ok 311 - When I run "analizo metrics-batch" -# -ok 312 - Then the output must match "analizo metrics-batch is part of the analizo suite." -# -# Scenario all others -ok 313 - Given I change to an empty temporary directory -# -ok 314 - And I create a file called .analizo with the following content -# """: --help""" -ok 315 - When I run "analizo metrics-history" -# -ok 316 - Then the output must match "analizo metrics-history is part of the analizo suite." -# -# Scenario all others -ok 317 - Given I change to an empty temporary directory -# -ok 318 - And I create a file called .analizo with the following content -# """: --help""" -ok 319 - When I run "analizo tree-evolution" -# -ok 320 - Then the output must match "analizo tree-evolution is part of the analizo suite." -# -# Scenario all others -ok 321 - Given I change to an empty temporary directory -# -ok 322 - And I create a file called .analizo with the following content -# """: --help""" -ok 323 - When I run "analizo files-graph" -# -ok 324 - Then the output must match "analizo files-graph is part of the analizo suite." -# -# Scenario all others -ok 325 - Given I change to an empty temporary directory -# -ok 326 - And I create a file called .analizo with the following content -# """: --help""" -ok 327 - When I run "analizo help" -# -ok 328 - Then the output must match "analizo help is part of the analizo suite." -# -# Feature doxyparse extractor external tool -# As a Analizo developer I want to guarantee that doxyparse deal with any source code To provide reliability for Analizo users -# Scenario don't die parsing MCLinker.cpp from android 5.1.1 -ok 329 - Given I am in t/samples/android-framework/android-5.1.1_r38 -# -ok 330 - When I run "analizo metrics ." -# -ok 331 - Then the exit status must be 0 -# -ok 332 - Scenario 'don't die parsing MCLinker.cpp from android 5.1.1' skipped due to tag filter # skip -# Scenario don't duplicate YAML keys parsing AudioTrackShared.cpp from android 5.1.1 -ok 333 - Given I am in t/samples/android-framework/android-5.1.1_r38 -# -ok 334 - When I run "analizo metrics ." -# -ok 335 - Then analizo must not emit a warning matching "YAML_LOAD_WARN_DUPLICATE_KEY" -# -ok 336 - Scenario 'don't duplicate YAML keys parsing AudioTrackShared.cpp from android 5.1.1' skipped due to tag filter # skip -# Scenario don't abort parsing mlpack 3.0.0 -ok 337 - Given I am in t/samples/mlpack-3.0.0 -# -ok 338 - When I run "analizo metrics ." -# -ok 339 - Then analizo must not emit a warning matching "Aborted" -# -ok 340 - And the exit status must be 0 -# -ok 341 - Scenario 'don't abort parsing mlpack 3.0.0' skipped due to tag filter # skip -# Scenario don't die parsing kdelibs warning about unknown escape character -ok 342 - Given I am in t/samples/kdelibs -# -ok 343 - When I run "analizo metrics ." -# -ok 344 - Then analizo must not emit a warning matching "Error" -# -ok 345 - And the exit status must be 0 -# -ok 346 - Scenario 'don't die parsing kdelibs warning about unknown escape character' skipped due to tag filter # skip -# Scenario don't die parsing mod_suexec.h from http 2.4.38 -ok 347 - Given I am in t/samples/httpd-2.4.38 -# -ok 348 - When I run "analizo metrics ." -# -ok 349 - Then analizo must not emit a warning matching "Not a HASH reference" -# -ok 350 - And the exit status must be 0 -# -ok 351 - Scenario 'don't die parsing mod_suexec.h from http 2.4.38' skipped due to tag filter # skip -# Scenario allow dot on module filename -ok 352 - Given I am in t/samples/sample_basic/c -# -ok 353 - When I run "analizo metrics ." -# -ok 354 - Then analizo must report that file module1.c declares module module1 -# -ok 355 - Scenario 'allow dot on module filename' skipped due to tag filter # skip -# Feature analizo wrapper script -# Scenario invoking a tool -ok 356 - When I run "analizo metrics lib t" -# -ok 357 - Then analizo must emit a warning matching "Usage:" -# -ok 358 - And analizo must emit a warning matching "analizo.metrics" -# -ok 359 - And the exit status must not be 0 -# -ok 360 - Scenario 'invoking a tool' skipped due to tag filter # skip -# Scenario must not pass --version ahead -ok 361 - When I run "analizo metrics --version" -# -ok 362 - Then analizo must emit a warning matching "Invalid option: --version" -# -ok 363 - And the exit status must not be 0 -# -ok 364 - Scenario 'must not pass --version ahead' skipped due to tag filter # skip -# Scenario display help -ok 365 - When I run "analizo --help" -# -ok 366 - Then the output must match "[NAME|N^HNA^HAM^HME^HE]\s+analizo\s" -# -ok 367 - And the output must match "[USAGE|U^HUS^HSA^HAG^HGE^HE]\s+analizo\s" -# -ok 368 - And the exit status must be 0 -# -ok 369 - Scenario 'display help' skipped due to tag filter # skip -# Scenario display version -ok 370 - When I run "analizo --version" -# -ok 371 - Then the output must match "^analizo version [0-9]+.[0-9]+.[0-9]+" -# -ok 372 - And the exit status must be 0 -# -ok 373 - Scenario 'display version' skipped due to tag filter # skip -# Scenario invalid option -ok 374 - When I run "analizo --invalid-option" -# -ok 375 - Then the output must match "Unrecognized command" -# -ok 376 - And the exit status must not be 0 -# -ok 377 - Scenario 'invalid option' skipped due to tag filter # skip -# Feature exclude directories from the analysis -# As a software developer in a large project I want to exclude some directories from the source code analysis In order to not analyse non-production code such as tests -# Scenario excluding test directory -ok 378 - Given I am in t/samples/multidir/cpp -# -ok 379 - When I run "analizo metrics --exclude test ." -# -ok 380 - Then the output must match "module: HelloWorld" -# -ok 381 - And the output must not match "module: hello_test" -# -# Scenario excluding test directory -ok 382 - Given I am in t/samples/multidir/csharp -# -ok 383 - When I run "analizo metrics --exclude test ." -# -ok 384 - Then the output must match "module: HelloWorld" -# -ok 385 - And the output must not match "module: hello_test" -# -# Scenario excluding a list of directories -ok 386 - Given I am in t/samples/multidir/cpp -# -ok 387 - When I run "analizo metrics --exclude test:src ." -# -ok 388 - Then the output must not match "module: HelloWorld" -# -ok 389 - And the output must not match "module: hello_test" -# -# Scenario excluding a list of directories -ok 390 - Given I am in t/samples/multidir/csharp -# -ok 391 - When I run "analizo metrics --exclude test:src ." -# -ok 392 - Then the output must not match "module: HelloWorld" -# -ok 393 - And the output must not match "module: hello_test" -# -# Scenario excluding src directory -ok 394 - Given I am in t/samples/multidir/cpp -# -ok 395 - When I run "analizo metrics --exclude src ." -# -ok 396 - Then the output must match "module: hello_test" -# -ok 397 - And the output must not match "module: HelloWorld" -# -# Scenario excluding src directory -ok 398 - Given I am in t/samples/multidir/csharp -# -ok 399 - When I run "analizo metrics --exclude src ." -# -ok 400 - Then the output must match "module: hello_test" -# -ok 401 - And the output must not match "module: HelloWorld" -# -# Feature number of abstract classes -# As a software developer I want analizo to report the number of abstract classes in my code So that I can evaluate it -# Scenario "Hello, world" project -ok 402 - Given I am in t/samples/hello_world/cpp -# -ok 403 - When I run "analizo metrics ." -# -ok 404 - Then analizo must report that the project has total_abstract_classes = 0 -# -# Scenario "Hello, world" project -ok 405 - Given I am in t/samples/hello_world/java -# -ok 406 - When I run "analizo metrics ." -# -ok 407 - Then analizo must report that the project has total_abstract_classes = 0 -# -# Scenario "Hello, world" project -ok 408 - Given I am in t/samples/hello_world/csharp -# -ok 409 - When I run "analizo metrics ." -# -ok 410 - Then analizo must report that the project has total_abstract_classes = 0 -# -# Scenario "Animals" project -ok 411 - Given I am in t/samples/animals/cpp -# -ok 412 - When I run "analizo metrics ." -# -ok 413 - Then analizo must report that the project has total_abstract_classes = 2 -# -# Scenario "Animals" project -ok 414 - Given I am in t/samples/animals/java -# -ok 415 - When I run "analizo metrics ." -# -ok 416 - Then analizo must report that the project has total_abstract_classes = 2 -# -# Scenario "Animals" project -ok 417 - Given I am in t/samples/animals/csharp -# -ok 418 - When I run "analizo metrics ." -# -ok 419 - Then analizo must report that the project has total_abstract_classes = 2 -# -# Scenario "Polygons" project -ok 420 - Given I am in t/samples/polygons/cpp -# -ok 421 - When I run "analizo metrics ." -# -ok 422 - Then analizo must report that the project has total_abstract_classes = 2 -# -# Scenario "Polygons" project -ok 423 - Given I am in t/samples/polygons/java -# -ok 424 - When I run "analizo metrics ." -# -ok 425 - Then analizo must report that the project has total_abstract_classes = 2 -# -# Scenario "Polygons" project -ok 426 - Given I am in t/samples/polygons/csharp -# -ok 427 - When I run "analizo metrics ." -# -ok 428 - Then analizo must report that the project has total_abstract_classes = 2 -# -# Scenario "AbstractClass" project -ok 429 - Given I am in t/samples/abstract_class/java -# -ok 430 - When I run "analizo metrics ." -# -ok 431 - Then analizo must report that the project has total_abstract_classes = 1 -# -ok 432 - And analizo must report that the project has total_methods_per_abstract_class = 6 -# -# Scenario "AbstractClass" project -ok 433 - Given I am in t/samples/abstract_class/csharp -# -ok 434 - When I run "analizo metrics ." -# -ok 435 - Then analizo must report that the project has total_abstract_classes = 1 -# -ok 436 - And analizo must report that the project has total_methods_per_abstract_class = 1 -# -# Feature afferent connections with deep inheritance -# As a software developer I want analizo to report the afferent connections of each module So that I can evaluate it -# Scenario afferent connections of the dog family java sample -ok 437 - Given I am in t/samples/deep_inheritance/java -# -ok 438 - When I run "analizo metrics ." -# -ok 439 - Then analizo must report that module Dog has acc = 7 -# -# Scenario afferent connections of the dog family java sample -ok 440 - Given I am in t/samples/deep_inheritance/java -# -ok 441 - When I run "analizo metrics ." -# -ok 442 - Then analizo must report that module DogFirstGreatGrandson has acc = 1 -# -# Scenario afferent connections of the dog family java sample -ok 443 - Given I am in t/samples/deep_inheritance/java -# -ok 444 - When I run "analizo metrics ." -# -ok 445 - Then analizo must report that module DogFirstPuppy has acc = 4 -# -# Scenario afferent connections of the dog family java sample -ok 446 - Given I am in t/samples/deep_inheritance/java -# -ok 447 - When I run "analizo metrics ." -# -ok 448 - Then analizo must report that module DogGrandson has acc = 3 -# -# Scenario afferent connections of the dog family java sample -ok 449 - Given I am in t/samples/deep_inheritance/java -# -ok 450 - When I run "analizo metrics ." -# -ok 451 - Then analizo must report that module DogSecondGreatGrandson has acc = 0 -# -# Scenario afferent connections of the dog family java sample -ok 452 - Given I am in t/samples/deep_inheritance/java -# -ok 453 - When I run "analizo metrics ." -# -ok 454 - Then analizo must report that module DogSecondPuppy has acc = 0 -# -# Scenario afferent connections of the dog family java sample -ok 455 - Given I am in t/samples/deep_inheritance/java -# -ok 456 - When I run "analizo metrics ." -# -ok 457 - Then analizo must report that module DogSuperYoung has acc = 0 -# -# Scenario afferent connections of the dog family java sample -ok 458 - Given I am in t/samples/deep_inheritance/java -# -ok 459 - When I run "analizo metrics ." -# -ok 460 - Then analizo must report that module Human has acc = 2 -# -# Scenario afferent connections of the dog family java sample -ok 461 - Given I am in t/samples/deep_inheritance/java -# -ok 462 - When I run "analizo metrics ." -# -ok 463 - Then analizo must report that module ShopController has acc = 0 -# -# Scenario afferent connections of the dog family java sample -ok 464 - Given I am in t/samples/deep_inheritance/java -# -ok 465 - When I run "analizo metrics ." -# -ok 466 - Then analizo must report that module VenderShop has acc = 1 -# -# Feature number of abstract classes -# As a software developer I want analizo to report the number of modules with at least a defined method in my code So that I can evaluate it -# Scenario "Hello, world" project -ok 467 - Given I am in t/samples/hello_world/cpp -# -ok 468 - When I run "analizo metrics ." -# -ok 469 - Then analizo must report that the project has total_modules_with_defined_attributes = 1 -# -# Scenario "Hello, world" project -ok 470 - Given I am in t/samples/hello_world/java -# -ok 471 - When I run "analizo metrics ." -# -ok 472 - Then analizo must report that the project has total_modules_with_defined_attributes = 1 -# -# Scenario "Hello, world" project -ok 473 - Given I am in t/samples/hello_world/csharp -# -ok 474 - When I run "analizo metrics ." -# -ok 475 - Then analizo must report that the project has total_modules_with_defined_attributes = 1 -# -# Scenario "Animals" project -ok 476 - Given I am in t/samples/animals/cpp -# -ok 477 - When I run "analizo metrics ." -# -ok 478 - Then analizo must report that the project has total_modules_with_defined_attributes = 2 -# -# Scenario "Animals" project -ok 479 - Given I am in t/samples/animals/java -# -ok 480 - When I run "analizo metrics ." -# -ok 481 - Then analizo must report that the project has total_modules_with_defined_attributes = 2 -# -# Scenario "Animals" project -ok 482 - Given I am in t/samples/animals/csharp -# -ok 483 - When I run "analizo metrics ." -# -ok 484 - Then analizo must report that the project has total_modules_with_defined_attributes = 2 -# -# Feature number of abstract classes -# As a software developer I want analizo to report the number of modules with at least a defined method in my code So that I can evaluate it -# Scenario "Hello, world" project -ok 485 - Given I am in t/samples/hello_world/cpp -# -ok 486 - When I run "analizo metrics ." -# -ok 487 - Then analizo must report that the project has total_modules_with_defined_methods = 2 -# -# Scenario "Hello, world" project -ok 488 - Given I am in t/samples/hello_world/java -# -ok 489 - When I run "analizo metrics ." -# -ok 490 - Then analizo must report that the project has total_modules_with_defined_methods = 2 -# -# Scenario "Hello, world" project -ok 491 - Given I am in t/samples/hello_world/csharp -# -ok 492 - When I run "analizo metrics ." -# -ok 493 - Then analizo must report that the project has total_modules_with_defined_methods = 2 -# -# Scenario "Animals" project -ok 494 - Given I am in t/samples/animals/cpp -# -ok 495 - When I run "analizo metrics ." -# -ok 496 - Then analizo must report that the project has total_modules_with_defined_methods = 5 -# -# Scenario "Animals" project -ok 497 - Given I am in t/samples/animals/java -# -ok 498 - When I run "analizo metrics ." -# -ok 499 - Then analizo must report that the project has total_modules_with_defined_methods = 5 -# -# Scenario "Animals" project -ok 500 - Given I am in t/samples/animals/csharp -# -ok 501 - When I run "analizo metrics ." -# -ok 502 - Then analizo must report that the project has total_modules_with_defined_methods = 5 -# -# Feature average number of parameters metric -# As a software developer I want to calculate the average number of arguments per method metric So that I can evaluate my code -# Scenario number of parameters in the "Animals" project -ok 503 - Given I am in t/samples/animals/cpp -# -ok 504 - When I run "analizo metrics ." -# -ok 505 - Then analizo must report that module Dog has anpm = 0.5 -# -ok 506 - And analizo must report that module Cat has anpm = 0.5 -# -ok 507 - And analizo must report that module main has anpm = 0 -# -# Scenario number of parameters in the "Animals" project -ok 508 - Given I am in t/samples/animals/java -# -ok 509 - When I run "analizo metrics ." -# -ok 510 - Then analizo must report that module Dog has anpm = 0.5 -# -ok 511 - And analizo must report that module Cat has anpm = 0.5 -# -ok 512 - And analizo must report that module Main has anpm = 1 -# -# Scenario number of parameters in the "Animals" project -ok 513 - Given I am in t/samples/animals/csharp -# -ok 514 - When I run "analizo metrics ." -# -ok 515 - Then analizo must report that module Dog has anpm = 0.5 -# -ok 516 - And analizo must report that module Cat has anpm = 0.5 -# -ok 517 - And analizo must report that module main has anpm = 1 -# -# Feature total number of methods per abstract class -# As a software developer I want analizo to report the number of abstract classes in my code So that I can evaluate it -# Scenario "Hello, world" project -ok 518 - Given I am in t/samples/hello_world/cpp -# -ok 519 - When I run "analizo metrics ." -# -ok 520 - Then analizo must report that the project has total_methods_per_abstract_class = 0 -# -# Scenario "Hello, world" project -ok 521 - Given I am in t/samples/hello_world/java -# -ok 522 - When I run "analizo metrics ." -# -ok 523 - Then analizo must report that the project has total_methods_per_abstract_class = 0 -# -# Scenario "Hello, world" project -ok 524 - Given I am in t/samples/hello_world/csharp -# -ok 525 - When I run "analizo metrics ." -# -ok 526 - Then analizo must report that the project has total_methods_per_abstract_class = 0 -# -# Scenario "Animals" project -ok 527 - Given I am in t/samples/animals/cpp -# -ok 528 - When I run "analizo metrics ." -# -ok 529 - Then analizo must report that the project has total_methods_per_abstract_class = 1 -# -# Scenario "Animals" project -ok 530 - Given I am in t/samples/animals/java -# -ok 531 - When I run "analizo metrics ." -# -ok 532 - Then analizo must report that the project has total_methods_per_abstract_class = 1 -# -# Scenario "Animals" project -ok 533 - Given I am in t/samples/animals/csharp -# -ok 534 - When I run "analizo metrics ." -# -ok 535 - Then analizo must report that the project has total_methods_per_abstract_class = 1 -# -# Scenario "Polygons" project -ok 536 - Given I am in t/samples/polygons/cpp -# -ok 537 - When I run "analizo metrics ." -# -ok 538 - Then analizo must report that the project has total_methods_per_abstract_class = 2.5 -# -# Scenario "Polygons" project -ok 539 - Given I am in t/samples/polygons/java -# -ok 540 - When I run "analizo metrics ." -# -ok 541 - Then analizo must report that the project has total_methods_per_abstract_class = 2 -# -# Scenario "Polygons" project -ok 542 - Given I am in t/samples/polygons/csharp -# -ok 543 - When I run "analizo metrics ." -# -ok 544 - Then analizo must report that the project has total_methods_per_abstract_class = 2 -# -# Feature number of public methods metric -# As a software developer I want to calculate the number of public methods per module metric So that I can evaluate my code -# Scenario number of attributes in the "Animals" project -ok 545 - Given I am in t/samples/polygons/cpp -# -ok 546 - When I run "analizo metrics ." -# -ok 547 - Then analizo must report that module CPolygon has npm = 2 -# -# Scenario number of attributes in the "Animals" project -ok 548 - Given I am in t/samples/polygons/cpp -# -ok 549 - When I run "analizo metrics ." -# -ok 550 - Then analizo must report that module CTetragon has npm = 1 -# -# Scenario number of attributes in the "Animals" project -ok 551 - Given I am in t/samples/polygons/java -# -ok 552 - When I run "analizo metrics ." -# -ok 553 - Then analizo must report that module Polygon has npm = 3 -# -# Scenario number of attributes in the "Animals" project -ok 554 - Given I am in t/samples/polygons/csharp -# -ok 555 - When I run "analizo metrics ." -# -ok 556 - Then analizo must report that module Polygon has npm = 2 -# -# Scenario number of attributes in the "Animals" project -ok 557 - Given I am in t/samples/animals/cpp -# -ok 558 - When I run "analizo metrics ." -# -ok 559 - Then analizo must report that module Animal has npm = 1 -# -# Scenario number of attributes in the "Animals" project -ok 560 - Given I am in t/samples/animals/cpp -# -ok 561 - When I run "analizo metrics ." -# -ok 562 - Then analizo must report that module Cat has npm = 2 -# -# Scenario number of attributes in the "Animals" project -ok 563 - Given I am in t/samples/animals/cpp -# -ok 564 - When I run "analizo metrics ." -# -ok 565 - Then analizo must report that module Dog has npm = 2 -# -# Scenario number of attributes in the "Animals" project -ok 566 - Given I am in t/samples/animals/java -# -ok 567 - When I run "analizo metrics ." -# -ok 568 - Then analizo must report that module Animal has npm = 1 -# -# Scenario number of attributes in the "Animals" project -ok 569 - Given I am in t/samples/animals/java -# -ok 570 - When I run "analizo metrics ." -# -ok 571 - Then analizo must report that module Cat has npm = 2 -# -# Scenario number of attributes in the "Animals" project -ok 572 - Given I am in t/samples/animals/java -# -ok 573 - When I run "analizo metrics ." -# -ok 574 - Then analizo must report that module Dog has npm = 2 -# -# Scenario number of attributes in the "Animals" project -ok 575 - Given I am in t/samples/animals/csharp -# -ok 576 - When I run "analizo metrics ." -# -ok 577 - Then analizo must report that module Animal has npm = 1 -# -# Scenario number of attributes in the "Animals" project -ok 578 - Given I am in t/samples/animals/csharp -# -ok 579 - When I run "analizo metrics ." -# -ok 580 - Then analizo must report that module Cat has npm = 2 -# -# Scenario number of attributes in the "Animals" project -ok 581 - Given I am in t/samples/animals/csharp -# -ok 582 - When I run "analizo metrics ." -# -ok 583 - Then analizo must report that module Dog has npm = 2 -# -# Feature coupling between objects -# As a software developer I want analizo to report the value of CBO metric in my code So that I can evaluate it -# Scenario "Hello, world" project -ok 584 - Given I am in t/samples/hello_world/c -# -ok 585 - When I run "analizo metrics ." -# -ok 586 - Then analizo must report that module main has cbo = 1 -# -# Scenario "Hello, world" project -ok 587 - Given I am in t/samples/hello_world/cpp -# -ok 588 - When I run "analizo metrics ." -# -ok 589 - Then analizo must report that module main has cbo = 1 -# -# Scenario "Hello, world" project -ok 590 - Given I am in t/samples/hello_world/java -# -ok 591 - When I run "analizo metrics ." -# -ok 592 - Then analizo must report that module Main has cbo = 1 -# -# Scenario "Hello, world" project -ok 593 - Given I am in t/samples/hello_world/csharp -# -ok 594 - When I run "analizo metrics ." -# -ok 595 - Then analizo must report that module main has cbo = 1 -# -# Scenario "Animals" project -ok 596 - Given I am in t/samples/animals/cpp -# -ok 597 - When I run "analizo metrics ." -# -ok 598 - Then analizo must report that module main has cbo = 1 -# -# Scenario "Animals" project -ok 599 - Given I am in t/samples/animals/cpp -# -ok 600 - When I run "analizo metrics ." -# -ok 601 - Then analizo must report that module mammal has cbo = 0 -# -# Scenario "Animals" project -ok 602 - Given I am in t/samples/animals/java -# -ok 603 - When I run "analizo metrics ." -# -ok 604 - Then analizo must report that module Main has cbo = 1 -# -# Scenario "Animals" project -ok 605 - Given I am in t/samples/animals/java -# -ok 606 - When I run "analizo metrics ." -# -ok 607 - Then analizo must report that module Mammal has cbo = 0 -# -# Scenario "Animals" project -ok 608 - Given I am in t/samples/animals/csharp -# -ok 609 - When I run "analizo metrics ." -# -ok 610 - Then analizo must report that module main has cbo = 1 -# -# Scenario "Animals" project -ok 611 - Given I am in t/samples/animals/csharp -# -ok 612 - When I run "analizo metrics ." -# -ok 613 - Then analizo must report that module Mammal has cbo = 0 -# -# Feature average cyclomatic complexity per method -# As a software developer I want to calculate the average cyclomatic complexity per method of my code So that I can spot the more complex modules and refactor them -# Scenario my "conditionals" C project -ok 614 - Given I am in t/samples/conditionals/c -# -ok 615 - When I run "analizo metrics ." -# -ok 616 - Then analizo must report that module cc1 has accm = 1 -# -ok 617 - Then analizo must report that module cc2 has accm = 2 -# -ok 618 - Then analizo must report that module cc3 has accm = 3 -# -ok 619 - Then analizo must report that module cc4 has accm = 4 -# -# Scenario my "conditionals" C project -ok 620 - Given I am in t/samples/conditionals/csharp -# -ok 621 - When I run "analizo metrics ." -# -ok 622 - Then analizo must report that module cc1 has accm = 1 -# -ok 623 - Then analizo must report that module cc2 has accm = 2 -# -ok 624 - Then analizo must report that module cc3 has accm = 3 -# -ok 625 - Then analizo must report that module cc4 has accm = 4 -# -# Feature number of attributes metric -# As a software developer I want to calculate the number of attributes per module metric So that I can evaluate my code -# Scenario number of attributes in the "Animals" project -ok 626 - Given I am in t/samples/animals/cpp -# -ok 627 - When I run "analizo metrics ." -# -ok 628 - Then analizo must report that module Dog has noa = 1 -# -ok 629 - And analizo must report that module Cat has noa = 1 -# -ok 630 - And analizo must report that module main has noa = 0 -# -# Scenario number of attributes in the "Animals" project -ok 631 - Given I am in t/samples/animals/java -# -ok 632 - When I run "analizo metrics ." -# -ok 633 - Then analizo must report that module Dog has noa = 1 -# -ok 634 - And analizo must report that module Cat has noa = 1 -# -ok 635 - And analizo must report that module Main has noa = 0 -# -# Scenario number of attributes in the "Animals" project -ok 636 - Given I am in t/samples/animals/csharp -# -ok 637 - When I run "analizo metrics ." -# -ok 638 - Then analizo must report that module Dog has noa = 1 -# -ok 639 - And analizo must report that module Cat has noa = 1 -# -ok 640 - And analizo must report that module main has noa = 0 -# -# Feature output statistics values of metrics -# As a researcher I want to ouput statistics values of metrics So that I can evaluate a project at once -# Scenario "Hello, world" project -ok 641 - Given I am in t/samples/hello_world/ -# -ok 642 - When I run "analizo metrics ." -# -ok 643 - Then the output must match "acc_mean:" -# -ok 644 - Then the output must match "acc_mode:" -# -ok 645 - Then the output must match "acc_standard_deviation:" -# -ok 646 - Then the output must match "acc_sum:" -# -ok 647 - Then the output must match "acc_variance:" -# -ok 648 - Then the output must match "acc_quantile_min:" -# -ok 649 - Then the output must match "acc_quantile_lower:" -# -ok 650 - Then the output must match "acc_quantile_median:" -# -ok 651 - Then the output must match "acc_quantile_upper:" -# -ok 652 - Then the output must match "acc_quantile_max:" -# -ok 653 - Then the output must match "acc_kurtosis:" -# -ok 654 - Then the output must match "acc_skewness:" -# -# Scenario "Hello, world" project -ok 655 - Given I am in t/samples/hello_world/ -# -ok 656 - When I run "analizo metrics ." -# -ok 657 - Then the output must match "accm_mean:" -# -ok 658 - Then the output must match "accm_mode:" -# -ok 659 - Then the output must match "accm_standard_deviation:" -# -ok 660 - Then the output must match "accm_sum:" -# -ok 661 - Then the output must match "accm_variance:" -# -ok 662 - Then the output must match "accm_quantile_min:" -# -ok 663 - Then the output must match "accm_quantile_lower:" -# -ok 664 - Then the output must match "accm_quantile_median:" -# -ok 665 - Then the output must match "accm_quantile_upper:" -# -ok 666 - Then the output must match "accm_quantile_max:" -# -ok 667 - Then the output must match "accm_kurtosis:" -# -ok 668 - Then the output must match "accm_skewness:" -# -# Scenario "Hello, world" project -ok 669 - Given I am in t/samples/hello_world/ -# -ok 670 - When I run "analizo metrics ." -# -ok 671 - Then the output must match "amloc_mean:" -# -ok 672 - Then the output must match "amloc_mode:" -# -ok 673 - Then the output must match "amloc_standard_deviation:" -# -ok 674 - Then the output must match "amloc_sum:" -# -ok 675 - Then the output must match "amloc_variance:" -# -ok 676 - Then the output must match "amloc_quantile_min:" -# -ok 677 - Then the output must match "amloc_quantile_lower:" -# -ok 678 - Then the output must match "amloc_quantile_median:" -# -ok 679 - Then the output must match "amloc_quantile_upper:" -# -ok 680 - Then the output must match "amloc_quantile_max:" -# -ok 681 - Then the output must match "amloc_kurtosis:" -# -ok 682 - Then the output must match "amloc_skewness:" -# -# Scenario "Hello, world" project -ok 683 - Given I am in t/samples/hello_world/ -# -ok 684 - When I run "analizo metrics ." -# -ok 685 - Then the output must match "anpm_mean:" -# -ok 686 - Then the output must match "anpm_mode:" -# -ok 687 - Then the output must match "anpm_standard_deviation:" -# -ok 688 - Then the output must match "anpm_sum:" -# -ok 689 - Then the output must match "anpm_variance:" -# -ok 690 - Then the output must match "anpm_quantile_min:" -# -ok 691 - Then the output must match "anpm_quantile_lower:" -# -ok 692 - Then the output must match "anpm_quantile_median:" -# -ok 693 - Then the output must match "anpm_quantile_upper:" -# -ok 694 - Then the output must match "anpm_quantile_max:" -# -ok 695 - Then the output must match "anpm_kurtosis:" -# -ok 696 - Then the output must match "anpm_skewness:" -# -# Scenario "Hello, world" project -ok 697 - Given I am in t/samples/hello_world/ -# -ok 698 - When I run "analizo metrics ." -# -ok 699 - Then the output must match "cbo_mean:" -# -ok 700 - Then the output must match "cbo_mode:" -# -ok 701 - Then the output must match "cbo_standard_deviation:" -# -ok 702 - Then the output must match "cbo_sum:" -# -ok 703 - Then the output must match "cbo_variance:" -# -ok 704 - Then the output must match "cbo_quantile_min:" -# -ok 705 - Then the output must match "cbo_quantile_lower:" -# -ok 706 - Then the output must match "cbo_quantile_median:" -# -ok 707 - Then the output must match "cbo_quantile_upper:" -# -ok 708 - Then the output must match "cbo_quantile_max:" -# -ok 709 - Then the output must match "cbo_kurtosis:" -# -ok 710 - Then the output must match "cbo_skewness:" -# -# Scenario "Hello, world" project -ok 711 - Given I am in t/samples/hello_world/ -# -ok 712 - When I run "analizo metrics ." -# -ok 713 - Then the output must match "dit_mean:" -# -ok 714 - Then the output must match "dit_mode:" -# -ok 715 - Then the output must match "dit_standard_deviation:" -# -ok 716 - Then the output must match "dit_sum:" -# -ok 717 - Then the output must match "dit_variance:" -# -ok 718 - Then the output must match "dit_quantile_min:" -# -ok 719 - Then the output must match "dit_quantile_lower:" -# -ok 720 - Then the output must match "dit_quantile_median:" -# -ok 721 - Then the output must match "dit_quantile_upper:" -# -ok 722 - Then the output must match "dit_quantile_max:" -# -ok 723 - Then the output must match "dit_kurtosis:" -# -ok 724 - Then the output must match "dit_skewness:" -# -# Scenario "Hello, world" project -ok 725 - Given I am in t/samples/hello_world/ -# -ok 726 - When I run "analizo metrics ." -# -ok 727 - Then the output must match "lcom4_mean:" -# -ok 728 - Then the output must match "lcom4_mode:" -# -ok 729 - Then the output must match "lcom4_standard_deviation:" -# -ok 730 - Then the output must match "lcom4_sum:" -# -ok 731 - Then the output must match "lcom4_variance:" -# -ok 732 - Then the output must match "lcom4_quantile_min:" -# -ok 733 - Then the output must match "lcom4_quantile_lower:" -# -ok 734 - Then the output must match "lcom4_quantile_median:" -# -ok 735 - Then the output must match "lcom4_quantile_upper:" -# -ok 736 - Then the output must match "lcom4_quantile_max:" -# -ok 737 - Then the output must match "lcom4_kurtosis:" -# -ok 738 - Then the output must match "lcom4_skewness:" -# -# Scenario "Hello, world" project -ok 739 - Given I am in t/samples/hello_world/ -# -ok 740 - When I run "analizo metrics ." -# -ok 741 - Then the output must match "loc_mean:" -# -ok 742 - Then the output must match "loc_mode:" -# -ok 743 - Then the output must match "loc_standard_deviation:" -# -ok 744 - Then the output must match "loc_sum:" -# -ok 745 - Then the output must match "loc_variance:" -# -ok 746 - Then the output must match "loc_quantile_min:" -# -ok 747 - Then the output must match "loc_quantile_lower:" -# -ok 748 - Then the output must match "loc_quantile_median:" -# -ok 749 - Then the output must match "loc_quantile_upper:" -# -ok 750 - Then the output must match "loc_quantile_max:" -# -ok 751 - Then the output must match "loc_kurtosis:" -# -ok 752 - Then the output must match "loc_skewness:" -# -# Scenario "Hello, world" project -ok 753 - Given I am in t/samples/hello_world/ -# -ok 754 - When I run "analizo metrics ." -# -ok 755 - Then the output must match "mmloc_mean:" -# -ok 756 - Then the output must match "mmloc_mode:" -# -ok 757 - Then the output must match "mmloc_standard_deviation:" -# -ok 758 - Then the output must match "mmloc_sum:" -# -ok 759 - Then the output must match "mmloc_variance:" -# -ok 760 - Then the output must match "mmloc_quantile_min:" -# -ok 761 - Then the output must match "mmloc_quantile_lower:" -# -ok 762 - Then the output must match "mmloc_quantile_median:" -# -ok 763 - Then the output must match "mmloc_quantile_upper:" -# -ok 764 - Then the output must match "mmloc_quantile_max:" -# -ok 765 - Then the output must match "mmloc_kurtosis:" -# -ok 766 - Then the output must match "mmloc_skewness:" -# -# Scenario "Hello, world" project -ok 767 - Given I am in t/samples/hello_world/ -# -ok 768 - When I run "analizo metrics ." -# -ok 769 - Then the output must match "noa_mean:" -# -ok 770 - Then the output must match "noa_mode:" -# -ok 771 - Then the output must match "noa_standard_deviation:" -# -ok 772 - Then the output must match "noa_sum:" -# -ok 773 - Then the output must match "noa_variance:" -# -ok 774 - Then the output must match "noa_quantile_min:" -# -ok 775 - Then the output must match "noa_quantile_lower:" -# -ok 776 - Then the output must match "noa_quantile_median:" -# -ok 777 - Then the output must match "noa_quantile_upper:" -# -ok 778 - Then the output must match "noa_quantile_max:" -# -ok 779 - Then the output must match "noa_kurtosis:" -# -ok 780 - Then the output must match "noa_skewness:" -# -# Scenario "Hello, world" project -ok 781 - Given I am in t/samples/hello_world/ -# -ok 782 - When I run "analizo metrics ." -# -ok 783 - Then the output must match "noc_mean:" -# -ok 784 - Then the output must match "noc_mode:" -# -ok 785 - Then the output must match "noc_standard_deviation:" -# -ok 786 - Then the output must match "noc_sum:" -# -ok 787 - Then the output must match "noc_variance:" -# -ok 788 - Then the output must match "noc_quantile_min:" -# -ok 789 - Then the output must match "noc_quantile_lower:" -# -ok 790 - Then the output must match "noc_quantile_median:" -# -ok 791 - Then the output must match "noc_quantile_upper:" -# -ok 792 - Then the output must match "noc_quantile_max:" -# -ok 793 - Then the output must match "noc_kurtosis:" -# -ok 794 - Then the output must match "noc_skewness:" -# -# Scenario "Hello, world" project -ok 795 - Given I am in t/samples/hello_world/ -# -ok 796 - When I run "analizo metrics ." -# -ok 797 - Then the output must match "nom_mean:" -# -ok 798 - Then the output must match "nom_mode:" -# -ok 799 - Then the output must match "nom_standard_deviation:" -# -ok 800 - Then the output must match "nom_sum:" -# -ok 801 - Then the output must match "nom_variance:" -# -ok 802 - Then the output must match "nom_quantile_min:" -# -ok 803 - Then the output must match "nom_quantile_lower:" -# -ok 804 - Then the output must match "nom_quantile_median:" -# -ok 805 - Then the output must match "nom_quantile_upper:" -# -ok 806 - Then the output must match "nom_quantile_max:" -# -ok 807 - Then the output must match "nom_kurtosis:" -# -ok 808 - Then the output must match "nom_skewness:" -# -# Scenario "Hello, world" project -ok 809 - Given I am in t/samples/hello_world/ -# -ok 810 - When I run "analizo metrics ." -# -ok 811 - Then the output must match "npm_mean:" -# -ok 812 - Then the output must match "npm_mode:" -# -ok 813 - Then the output must match "npm_standard_deviation:" -# -ok 814 - Then the output must match "npm_sum:" -# -ok 815 - Then the output must match "npm_variance:" -# -ok 816 - Then the output must match "npm_quantile_min:" -# -ok 817 - Then the output must match "npm_quantile_lower:" -# -ok 818 - Then the output must match "npm_quantile_median:" -# -ok 819 - Then the output must match "npm_quantile_upper:" -# -ok 820 - Then the output must match "npm_quantile_max:" -# -ok 821 - Then the output must match "npm_kurtosis:" -# -ok 822 - Then the output must match "npm_skewness:" -# -# Scenario "Hello, world" project -ok 823 - Given I am in t/samples/hello_world/ -# -ok 824 - When I run "analizo metrics ." -# -ok 825 - Then the output must match "npa_mean:" -# -ok 826 - Then the output must match "npa_mode:" -# -ok 827 - Then the output must match "npa_standard_deviation:" -# -ok 828 - Then the output must match "npa_sum:" -# -ok 829 - Then the output must match "npa_variance:" -# -ok 830 - Then the output must match "npa_quantile_min:" -# -ok 831 - Then the output must match "npa_quantile_lower:" -# -ok 832 - Then the output must match "npa_quantile_median:" -# -ok 833 - Then the output must match "npa_quantile_upper:" -# -ok 834 - Then the output must match "npa_quantile_max:" -# -ok 835 - Then the output must match "npa_kurtosis:" -# -ok 836 - Then the output must match "npa_skewness:" -# -# Scenario "Hello, world" project -ok 837 - Given I am in t/samples/hello_world/ -# -ok 838 - When I run "analizo metrics ." -# -ok 839 - Then the output must match "rfc_mean:" -# -ok 840 - Then the output must match "rfc_mode:" -# -ok 841 - Then the output must match "rfc_standard_deviation:" -# -ok 842 - Then the output must match "rfc_sum:" -# -ok 843 - Then the output must match "rfc_variance:" -# -ok 844 - Then the output must match "rfc_quantile_min:" -# -ok 845 - Then the output must match "rfc_quantile_lower:" -# -ok 846 - Then the output must match "rfc_quantile_median:" -# -ok 847 - Then the output must match "rfc_quantile_upper:" -# -ok 848 - Then the output must match "rfc_quantile_max:" -# -ok 849 - Then the output must match "rfc_kurtosis:" -# -ok 850 - Then the output must match "rfc_skewness:" -# -# Scenario "Hello, world" project -ok 851 - Given I am in t/samples/hello_world/ -# -ok 852 - When I run "analizo metrics ." -# -ok 853 - Then the output must match "sc_mean:" -# -ok 854 - Then the output must match "sc_mode:" -# -ok 855 - Then the output must match "sc_standard_deviation:" -# -ok 856 - Then the output must match "sc_sum:" -# -ok 857 - Then the output must match "sc_variance:" -# -ok 858 - Then the output must match "sc_quantile_min:" -# -ok 859 - Then the output must match "sc_quantile_lower:" -# -ok 860 - Then the output must match "sc_quantile_median:" -# -ok 861 - Then the output must match "sc_quantile_upper:" -# -ok 862 - Then the output must match "sc_quantile_max:" -# -ok 863 - Then the output must match "sc_kurtosis:" -# -ok 864 - Then the output must match "sc_skewness:" -# -# Feature number of methods -# As a software developer I want analizo to report the number of methods of each module So that I can evaluate it -# Scenario number of methods of the polygon java sample -ok 865 - Given I am in t/samples/polygons/cpp -# -ok 866 - When I run "analizo metrics ." -# -ok 867 - Then analizo must report that module CPolygon has nom = 3 -# -# Scenario number of methods of the polygon java sample -ok 868 - Given I am in t/samples/polygons/cpp -# -ok 869 - When I run "analizo metrics ." -# -ok 870 - Then analizo must report that module CTetragon has nom = 2 -# -# Scenario number of methods of the polygon java sample -ok 871 - Given I am in t/samples/polygons/java -# -ok 872 - When I run "analizo metrics ." -# -ok 873 - Then analizo must report that module Polygon has nom = 3 -# -# Scenario number of methods of the polygon java sample -ok 874 - Given I am in t/samples/polygons/csharp -# -ok 875 - When I run "analizo metrics ." -# -ok 876 - Then analizo must report that module Polygon has nom = 2 -# -# Scenario number of methods of the polygon java sample -ok 877 - Given I am in t/samples/polygons/csharp -# -ok 878 - When I run "analizo metrics ." -# -ok 879 - Then analizo must report that module Tetragon has nom = 2 -# -# Scenario number of methods of the polygon java sample -ok 880 - Given I am in t/samples/animals/cpp -# -ok 881 - When I run "analizo metrics ." -# -ok 882 - Then analizo must report that module Animal has nom = 1 -# -# Scenario number of methods of the polygon java sample -ok 883 - Given I am in t/samples/animals/cpp -# -ok 884 - When I run "analizo metrics ." -# -ok 885 - Then analizo must report that module Cat has nom = 2 -# -# Scenario number of methods of the polygon java sample -ok 886 - Given I am in t/samples/animals/cpp -# -ok 887 - When I run "analizo metrics ." -# -ok 888 - Then analizo must report that module Dog has nom = 2 -# -# Scenario number of methods of the polygon java sample -ok 889 - Given I am in t/samples/animals/java -# -ok 890 - When I run "analizo metrics ." -# -ok 891 - Then analizo must report that module Animal has nom = 1 -# -# Scenario number of methods of the polygon java sample -ok 892 - Given I am in t/samples/animals/java -# -ok 893 - When I run "analizo metrics ." -# -ok 894 - Then analizo must report that module Cat has nom = 2 -# -# Scenario number of methods of the polygon java sample -ok 895 - Given I am in t/samples/animals/java -# -ok 896 - When I run "analizo metrics ." -# -ok 897 - Then analizo must report that module Dog has nom = 2 -# -# Scenario number of methods of the polygon java sample -ok 898 - Given I am in t/samples/animals/csharp -# -ok 899 - When I run "analizo metrics ." -# -ok 900 - Then analizo must report that module Animal has nom = 1 -# -# Scenario number of methods of the polygon java sample -ok 901 - Given I am in t/samples/animals/csharp -# -ok 902 - When I run "analizo metrics ." -# -ok 903 - Then analizo must report that module Cat has nom = 2 -# -# Scenario number of methods of the polygon java sample -ok 904 - Given I am in t/samples/animals/csharp -# -ok 905 - When I run "analizo metrics ." -# -ok 906 - Then analizo must report that module Dog has nom = 2 -# -# Scenario not computes macro on C code as method definition -ok 907 - Given I am in t/samples/macro -# -ok 908 - When I run "analizo metrics ." -# -ok 909 - Then analizo must report that module using_macro has nom = 1 -# -ok 910 - Scenario 'not computes macro on C code as method definition' skipped due to tag filter # skip -# Feature language filters -# As a software developer in a multi-language project I want to analyze only one programming language So that the results are as correct as possible -# Scenario filtering for C code -ok 911 - Given I am in t/samples/mixed -# -ok 912 - When I run "analizo metrics --language c ." -# -ok 913 - Then the output must match "native_backend" -# -ok 914 - And the output must not match "UI" -# -ok 915 - And the output must not match "Backend" -# -ok 916 - And the output must not match "CSharp_Backend" -# -ok 917 - Scenario 'filtering for C code' skipped due to tag filter # skip -# Scenario filtering for Java code -ok 918 - Given I am in t/samples/mixed -# -ok 919 - When I run "analizo metrics --language java ." -# -ok 920 - Then the output must match "UI" -# -ok 921 - And the output must match "Backend" -# -ok 922 - And the output must not match "native_backend" -# -ok 923 - And the output must not match "CSharp_Backend" -# -ok 924 - Scenario 'filtering for Java code' skipped due to tag filter # skip -# Scenario filtering for CSharp code -ok 925 - Given I am in t/samples/mixed -# -ok 926 - When I run "analizo metrics --language csharp ." -# -ok 927 - Then the output must match "CSharp_Backend" -# -ok 928 - And the output must not match "UI" -# -ok 929 - And the output must not match "native_backend" -# -ok 930 - Scenario 'filtering for CSharp code' skipped due to tag filter # skip -# Scenario listing languages -ok 931 - When I run "analizo metrics --language list" -# -ok 932 - Then analizo must present a list of languages -# -ok 933 - Scenario 'listing languages' skipped due to tag filter # skip -# Feature total modules -# As a software developer I want analizo to report the total number of modules in my code So that I can evaluate it -# Scenario Java Enumeration sample -ok 934 - Given I am in t/samples/enumeration -# -ok 935 - When I run "analizo metrics ." -# -ok 936 - Then analizo must report that the project has total_modules = 3 -# -ok 937 - Scenario 'Java Enumeration sample' skipped due to tag filter # skip -# Feature output file for metrics tool -# Scenario passing output file in the command line -ok 938 - Given I am in . -# -ok 939 - When I run "analizo metrics --output output.yml.tmp t/samples/sample_basic/" -# -ok 940 - Then the contents of "output.yml.tmp" must match "module2" -# -ok 941 - And the exit status must be 0 -# -ok 942 - Scenario 'passing output file in the command line' skipped due to tag filter # skip -# Scenario passing output file without permission to write -ok 943 - Given I am in . -# -ok 944 - When I run "touch output.tmp" -# -ok 945 - And I run "chmod 000 output.tmp" -# -ok 946 - And I run "analizo metrics --output output.tmp t/samples/sample_basic/" -# -ok 947 - Then the exit status must not be 0 -# -ok 948 - And analizo must emit a warning matching "Permission denied" -# -ok 949 - Scenario 'passing output file without permission to write' skipped due to tag filter # skip -# Scenario passing output file in an unexisting directory -ok 950 - Given I am in . -# -ok 951 - When I run "analizo metrics --output /this/directory/must/not/exists/output.yml t/samples" -# -ok 952 - Then the exit status must not be 0 -# -ok 953 - And analizo must emit a warning matching "No such file or directory" -# -ok 954 - Scenario 'passing output file in an unexisting directory' skipped due to tag filter # skip -# Feature output only global metrics -# As a researcher I want to ouput only the global metrics So that I can evaluate several projects at once -# Scenario simple case -ok 955 - Given I am in t/samples/sample_basic/c/ -# -ok 956 - When I run "analizo metrics --global-only ." -# -ok 957 - Then the output must match "cbo_mean:" -# -ok 958 - And the output must not match "_module:" -# -ok 959 - Scenario 'simple case' skipped due to tag filter # skip -# Scenario short version -ok 960 - Given I am in t/samples/sample_basic/c/ -# -ok 961 - When I run "analizo metrics -g ." -# -ok 962 - Then the output must match "cbo_mean:" -# -ok 963 - And the output must not match "_module:" -# -ok 964 - Scenario 'short version' skipped due to tag filter # skip -# Feature change cost degree -# As a software developer I want analizo to report the degree of change cost in my code So that I can evaluate it -# Scenario "Hello, world" project -ok 965 - Given I am in t/samples/hello_world/cpp -# -ok 966 - When I run "analizo metrics ." -# -ok 967 - Then analizo must report that the project has change_cost = 0.75 -# -# Scenario "Hello, world" project -ok 968 - Given I am in t/samples/hello_world/java -# -ok 969 - When I run "analizo metrics ." -# -ok 970 - Then analizo must report that the project has change_cost = 0.75 -# -# Scenario "Hello, world" project -ok 971 - Given I am in t/samples/hello_world/csharp -# -ok 972 - When I run "analizo metrics ." -# -ok 973 - Then analizo must report that the project has change_cost = 0.75 -# -# Scenario "Animals" project -ok 974 - Given I am in t/samples/animals/cpp -# -ok 975 - When I run "analizo metrics ." -# -ok 976 - Then analizo must report that the project has change_cost = 0.44 -# -# Scenario "Animals" project -ok 977 - Given I am in t/samples/animals/java -# -ok 978 - When I run "analizo metrics ." -# -ok 979 - Then analizo must report that the project has change_cost = 0.44 -# -# Scenario "Animals" project -ok 980 - Given I am in t/samples/animals/csharp -# -ok 981 - When I run "analizo metrics ." -# -ok 982 - Then analizo must report that the project has change_cost = 0.44 -# -# Scenario "Hieracchical Graph" project -ok 983 - Given I am in t/samples/hierarchical_graph/c -# -ok 984 - When I run "analizo metrics ." -# -ok 985 - Then analizo must report that the project has change_cost = 0.42 -# -# Scenario "Hieracchical Graph" project -ok 986 - Given I am in t/samples/hierarchical_graph/csharp -# -ok 987 - When I run "analizo metrics ." -# -ok 988 - Then analizo must report that the project has change_cost = 0.28 -# -# Scenario "Cyclical Graph" project -ok 989 - Given I am in t/samples/cyclical_graph/c -# -ok 990 - When I run "analizo metrics ." -# -ok 991 - Then analizo must report that the project has change_cost = 0.5 -# -# Scenario "Cyclical Graph" project -ok 992 - Given I am in t/samples/cyclical_graph/csharp -# -ok 993 - When I run "analizo metrics ." -# -ok 994 - Then analizo must report that the project has change_cost = 0.36 -# -# Feature list metrics -# As a Research or Practioner I want to extract metrics from source code So that I can learn, understand and evaluate it -# Scenario listing metrics -ok 995 - When I run "analizo metrics --list" -# -ok 996 - Then analizo must present a list of metrics -# -ok 997 - Scenario 'listing metrics' skipped due to tag filter # skip -# Scenario listing metrics -ok 998 - When I run "analizo metrics -l" -# -ok 999 - Then analizo must present a list of metrics -# -ok 1000 - Scenario 'listing metrics' skipped due to tag filter # skip -# Feature input files for graph tool -# Scenario passing specific files in the command line -ok 1001 - Given I am in t/samples/sample_basic/c -# -ok 1002 - When I run "analizo graph module1.c module2.c" -# -ok 1003 - Then the output must match "module1" -# -ok 1004 - And the output must match "module2" -# -ok 1005 - And the output must not match "module3" -# -ok 1006 - Scenario 'passing specific files in the command line' skipped due to tag filter # skip -# Scenario passing unexisting file -ok 1007 - Given I am in t/samples/sample_basic/c -# -ok 1008 - When I run "analizo graph unexisting-file.c" -# -ok 1009 - Then analizo must emit a warning matching "is not readable" -# -ok 1010 - Scenario 'passing unexisting file' skipped due to tag filter # skip -# Feature output file for graph tool -# Scenario passing output file in the command line -ok 1011 - Given I am in . -# -ok 1012 - When I run "analizo graph --output output.dot.tmp t/samples/sample_basic/c/" -# -ok 1013 - Then the contents of "output.dot.tmp" must match "module1" -# -ok 1014 - And the exit status must be 0 -# -ok 1015 - Scenario 'passing output file in the command line' skipped due to tag filter # skip -# Scenario passing output file in an unexisting directory -ok 1016 - Given I am in . -# -ok 1017 - When I run "analizo graph --output /this/directory/must/not/exists/output.dot t/samples/sample_basic/c/" -# -ok 1018 - Then analizo must emit a warning matching "No such file or directory" -# -ok 1019 - And the exit status must not be 0 -# -ok 1020 - Scenario 'passing output file in an unexisting directory' skipped due to tag filter # skip -# Scenario passing output file without permission to write -ok 1021 - Given I am in . -# -ok 1022 - When I run "touch output.tmp" -# -ok 1023 - And I run "chmod 000 output.tmp" -# -ok 1024 - And I run "analizo graph --output output.tmp t/samples/sample_basic/c/" -# -ok 1025 - Then the exit status must not be 0 -# -ok 1026 - And analizo must emit a warning matching "Permission denied" -# -ok 1027 - Scenario 'passing output file without permission to write' skipped due to tag filter # skip -# Feature functions calls -# Scenario detect function calls among classes -ok 1028 - Given I am in t/samples/animals/cpp -# -ok 1029 - When I run "analizo graph ." -# -ok 1030 - Then analizo must report that "Cat::Cat(char *)" depends on "Cat::_name" -# -ok 1031 - And analizo must not report that "Cat::Cat(char *)" depends on "Cat::name()" -# -ok 1032 - And the exit status must be 0 -# -ok 1033 - Scenario 'detect function calls among classes' skipped due to tag filter # skip -# Feature clustering subroutines in the same module together -# Scenario clustering dependencies -ok 1034 - Given I am in t/samples/sample_basic/c/ -# -ok 1035 - When I run "analizo graph --cluster ." -# -ok 1036 - Then analizo must report that "module1::main()" is part of "module1" -# -ok 1037 - Then analizo must report that "module2::say_hello()" is part of "module2" -# -ok 1038 - Then analizo must report that "module2::say_bye()" is part of "module2" -# -ok 1039 - Then analizo must report that "module3::variable" is part of "module3" -# -ok 1040 - Then analizo must report that "module3::callback()" is part of "module3" -# -ok 1041 - Scenario 'clustering dependencies' skipped due to tag filter # skip -# Feature group by modules -# Scenario sample project -ok 1042 - Given I am in t/samples/sample_basic/c/ -# -ok 1043 - When I run "analizo graph --modules ." -# -ok 1044 - Then analizo must report that "module1" depends on "module2" -# -ok 1045 - Then analizo must report that "module1" depends on "module3" -# -ok 1046 - Scenario 'sample project' skipped due to tag filter # skip -# Feature plain analizo graph run -# Scenario simply running analizo -ok 1047 - Given I am in t/samples/sample_basic/c/ -# -ok 1048 - When I run "analizo graph ." -# -ok 1049 - Then analizo must report that "module1::main()" depends on "module3::variable" -# -ok 1050 - Then analizo must report that "module1::main()" depends on "module3::callback()" -# -ok 1051 - Then analizo must report that "module1::main()" depends on "module2::say_bye()" -# -ok 1052 - Then analizo must report that "module1::main()" depends on "module2::say_hello()" -# -ok 1053 - And the exit status must be 0 -# -ok 1054 - Scenario 'simply running analizo' skipped due to tag filter # skip -# Feature displaying version -# Scenario running without any arguments -ok 1055 - When I run "analizo graph" -# -ok 1056 - Then analizo must emit a warning matching "Usage:" -# -ok 1057 - And the exit status must not be 0 -# -ok 1058 - Scenario 'running without any arguments' skipped due to tag filter # skip -# Feature omitting certain modules -# Scenario omitting say_bye -ok 1059 - Given I am in t/samples/sample_basic/ -# -ok 1060 - When I run "analizo graph --omit 'module2::say_bye()' ." -# -ok 1061 - Then the output must not match "module2::say_bye()" -# -ok 1062 - Scenario 'omitting say_bye' skipped due to tag filter # skip -# Scenario omitting two functions -ok 1063 - Given I am in t/samples/sample_basic/ -# -ok 1064 - When I run "analizo graph --omit 'module2::say_bye()','module2::say_hello()' ." -# -ok 1065 - Then the output must not match "module2::say_bye()" -# -ok 1066 - Then the output must not match "module2::say_hello()" -# -ok 1067 - Scenario 'omitting two functions' skipped due to tag filter # skip -# Scenario omitting depending functions -ok 1068 - Given I am in t/samples/sample_basic/ -# -ok 1069 - When I run "analizo graph --omit 'module1::main()' ." -# -ok 1070 - Then the output must not match "module1::main()" -# -ok 1071 - Scenario 'omitting depending functions' skipped due to tag filter # skip -1..1071 -ok -All tests successful. -Files=54, Tests=1690, 133 wallclock secs ( 0.50 usr 0.12 sys + 65.42 cusr 20.82 csys = 86.86 CPU) -Result: PASS -make[1]: Leaving directory '/build/reproducible-path/analizo-1.25.5' +dh: command-omitted: The call to "dh_auto_test" was omitted due to "DEB_BUILD_OPTIONS=nocheck" create-stamp debian/debhelper-build-stamp dh_prep dh_installdirs @@ -5235,64 +1480,64 @@ dh_auto_install make -j12 install DESTDIR=/build/reproducible-path/analizo-1.25.5/debian/analizo AM_UPDATE_INFO_DIR=no PREFIX=/usr make[2]: Entering directory '/build/reproducible-path/analizo-1.25.5' -Skip blib/lib/auto/share/dist/Analizo/README (unchanged) Skip blib/lib/auto/share/dist/Analizo/bash-completion/analizo (unchanged) +Skip blib/lib/auto/share/dist/Analizo/README (unchanged) Manifying 26 pod documents Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/profile.pl Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo.pm Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Test/Analizo.pm -Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Test/Analizo/Git.pm Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Test/Analizo/Class.pm +Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Test/Analizo/Git.pm Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Test/Analizo/BDD/Cucumber/Extension.pm -Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/Model.pm -Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/ModuleMetric.pm Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/ModuleMetrics.pm +Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/ModuleMetric.pm +Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/Model.pm Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/Metrics.pm +Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/Command.pm Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/Extractor.pm Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/FilenameFilter.pm Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/LanguageFilter.pm Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/Batch.pm Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/GlobalMetrics.pm -Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/Command.pm -Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/Extractor/Doxyparse.pm Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/Filter/Client.pm -Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/Command/files_graph.pm -Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/Command/graph.pm -Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/Command/metrics.pm -Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/Command/metrics_history.pm -Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/Command/metrics_batch.pm -Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/Command/tree_evolution.pm -Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/Command/help.pm -Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/GlobalMetric/MethodsPerAbstractClass.pm +Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/Extractor/Doxyparse.pm Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/GlobalMetric/TotalAbstractClasses.pm +Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/GlobalMetric/MethodsPerAbstractClass.pm Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/GlobalMetric/ChangeCost.pm +Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/Command/help.pm +Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/Command/metrics_history.pm +Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/Command/graph.pm +Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/Command/tree_evolution.pm +Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/Command/metrics_batch.pm +Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/Command/metrics.pm +Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/Command/files_graph.pm +Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/Batch/Runner.pm Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/Batch/Directories.pm +Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/Batch/Job.pm Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/Batch/Output.pm Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/Batch/Git.pm -Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/Batch/Job.pm -Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/Batch/Runner.pm -Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/Batch/Output/DB.pm -Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/Batch/Output/CSV.pm +Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/Batch/Job/Directories.pm +Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/Batch/Job/Git.pm Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/Batch/Runner/Sequential.pm Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/Batch/Runner/Parallel.pm -Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/Batch/Job/Git.pm -Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/Batch/Job/Directories.pm -Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/Metric/CouplingBetweenObjects.pm -Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/Metric/NumberOfPublicAttributes.pm +Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/Batch/Output/CSV.pm +Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/Batch/Output/DB.pm Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/Metric/LackOfCohesionOfMethods.pm +Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/Metric/NumberOfMethods.pm +Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/Metric/CouplingBetweenObjects.pm Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/Metric/NumberOfPublicMethods.pm -Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/Metric/StructuralComplexity.pm Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/Metric/NumberOfAttributes.pm -Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/Metric/NumberOfMethods.pm Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/Metric/LinesOfCode.pm Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/Metric/NumberOfChildren.pm -Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/Metric/DepthOfInheritanceTree.pm Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/Metric/MaximumMethodLinesOfCode.pm Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/Metric/ResponseForClass.pm -Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/Metric/AverageNumberOfParameters.pm -Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/Metric/AverageMethodLinesOfCode.pm -Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/Metric/AverageCycloComplexity.pm +Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/Metric/StructuralComplexity.pm +Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/Metric/DepthOfInheritanceTree.pm +Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/Metric/NumberOfPublicAttributes.pm Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/Metric/AfferentConnections.pm +Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/Metric/AverageCycloComplexity.pm +Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/Metric/AverageMethodLinesOfCode.pm +Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Analizo/Metric/AverageNumberOfParameters.pm Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/auto/share/dist/Analizo/README Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/auto/share/dist/Analizo/bash-completion/analizo Installing /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/man/man3/Analizo::Metrics.3pm @@ -5325,8 +1570,8 @@ make[2]: Leaving directory '/build/reproducible-path/analizo-1.25.5' rm -f -rv /build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Test removed '/build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Test/Analizo.pm' -removed '/build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Test/Analizo/Class.pm' removed '/build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Test/Analizo/Git.pm' +removed '/build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Test/Analizo/Class.pm' removed '/build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Test/Analizo/BDD/Cucumber/Extension.pm' removed directory '/build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Test/Analizo/BDD/Cucumber' removed directory '/build/reproducible-path/analizo-1.25.5/debian/analizo/usr/share/perl5/Test/Analizo/BDD' @@ -5358,12 +1603,14 @@ dpkg-buildpackage: info: binary-only upload (no source included) dpkg-genchanges: info: including full source code in upload I: copying local configuration +I: user script /srv/workspace/pbuilder/4118774/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/4118774/tmp/hooks/B01_cleanup finished I: unmounting dev/ptmx filesystem I: unmounting dev/pts filesystem I: unmounting dev/shm filesystem I: unmounting proc filesystem I: unmounting sys filesystem I: cleaning the build env -I: removing directory /srv/workspace/pbuilder/1410117 and its subdirectories -I: Current time: Mon Dec 7 16:31:34 -12 2026 -I: pbuilder-time-stamp: 1796704294 +I: removing directory /srv/workspace/pbuilder/4118774 and its subdirectories +I: Current time: Wed Nov 5 12:09:16 +14 2025 +I: pbuilder-time-stamp: 1762294156