From 360629a422193486f71ef315a1e30b0f35c48a35 Mon Sep 17 00:00:00 2001 From: Etienne Samson Date: Thu, 22 Mar 2018 23:10:33 +0100 Subject: [PATCH 1/2] Fix grouping bug with `namespc_name`-style functions Previously, function akin to `git_clone` would get part of their input file path appended, yielding `git2_clone` as the group. --- lib/docurium.rb | 6 +++--- test/docurium_test.rb | 3 ++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/lib/docurium.rb b/lib/docurium.rb index f8ad66160..2f4187c70 100644 --- a/lib/docurium.rb +++ b/lib/docurium.rb @@ -374,9 +374,9 @@ def group_functions!(data) k = key end group, rest = k.split('_', 2) - next if group.empty? - if !rest - group = value[:file].gsub('.h', '').gsub('/', '_') + if group.empty? + puts "empty group for function #{key}" + next end data[:functions][key][:group] = group func[group] ||= [] diff --git a/test/docurium_test.rb b/test/docurium_test.rb index 05dd317dc..c0f85feeb 100644 --- a/test/docurium_test.rb +++ b/test/docurium_test.rb @@ -175,7 +175,8 @@ def test_can_get_the_full_description_from_multi_liners end def test_can_group_functions - assert_equal 15, @data[:groups].size + groups = %w(blob commit index lasterror object odb oid reference repository revwalk signature strerror tag tree treebuilder work) + assert_equal groups, @data[:groups].map {|g| g[0]} group, funcs = @data[:groups].first assert_equal 'blob', group assert_equal 6, funcs.size From 58d5bb186190478bb9811ce44fa0eeca5493c009 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Mart=C3=ADn=20Nieto?= Date: Mon, 18 Feb 2019 21:53:57 +0100 Subject: [PATCH 2/2] test: detect git_cherrypick creates a 'cherrypick' group --- test/docurium_test.rb | 6 +++--- test/fixtures/git2/cherrypick.h | 17 +++++++++++++++++ 2 files changed, 20 insertions(+), 3 deletions(-) create mode 100644 test/fixtures/git2/cherrypick.h diff --git a/test/docurium_test.rb b/test/docurium_test.rb index c0f85feeb..7851f8913 100644 --- a/test/docurium_test.rb +++ b/test/docurium_test.rb @@ -40,7 +40,7 @@ def teardown def test_can_parse_headers keys = @data.keys.map { |k| k.to_s }.sort assert_equal ['callbacks', 'files', 'functions', 'globals', 'groups', 'prefix', 'types'], keys - assert_equal 154, @data[:functions].size + assert_equal 155, @data[:functions].size end def test_can_extract_enum_from_define @@ -175,8 +175,8 @@ def test_can_get_the_full_description_from_multi_liners end def test_can_group_functions - groups = %w(blob commit index lasterror object odb oid reference repository revwalk signature strerror tag tree treebuilder work) - assert_equal groups, @data[:groups].map {|g| g[0]} + groups = %w(blob cherrypick commit index lasterror object odb oid reference repository revwalk signature strerror tag tree treebuilder work) + assert_equal groups, @data[:groups].map {|g| g[0]}.sort group, funcs = @data[:groups].first assert_equal 'blob', group assert_equal 6, funcs.size diff --git a/test/fixtures/git2/cherrypick.h b/test/fixtures/git2/cherrypick.h new file mode 100644 index 000000000..0793acc2f --- /dev/null +++ b/test/fixtures/git2/cherrypick.h @@ -0,0 +1,17 @@ +#ifndef INCLUDE_git_blob_h__ +#define INCLUDE_git_blob_h__ + +#include "common.h" +#include "types.h" + +GIT_BEGIN_DECL + +/** + * Perform a cherry-pick + * + * @param input dummy input + * @returns the usual + */ +GIT_EXTERN(int) git_cherrypick(char *input); + +GIT_END_DECL