From patchwork Tue Jun 11 08:23:23 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Christian Couder X-Patchwork-Id: 10986205 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 9E7A414DB for ; Tue, 11 Jun 2019 08:23:57 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 8F949286B3 for ; Tue, 11 Jun 2019 08:23:57 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 83ABD286B9; Tue, 11 Jun 2019 08:23:57 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id DCA3F286B3 for ; Tue, 11 Jun 2019 08:23:56 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2391301AbfFKIX4 (ORCPT ); Tue, 11 Jun 2019 04:23:56 -0400 Received: from mail-wm1-f67.google.com ([209.85.128.67]:39569 "EHLO mail-wm1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2388847AbfFKIXz (ORCPT ); Tue, 11 Jun 2019 04:23:55 -0400 Received: by mail-wm1-f67.google.com with SMTP id z23so1826464wma.4 for ; Tue, 11 Jun 2019 01:23:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=lCC//pn3KNrzGN31dr8tmRVR9Rr02A8N6rblEqNJqHU=; b=SHDKFfZ50vC1ddQFcVOFhkulvDrB89sQDajrMePZbSjwdh1RclyQwI06YzvFkp/6K2 wFc0MocqlAUaAVPq+Et0nn0N6NK/ema3C5wb/fgkBy/KvIpNFlSI+wcZjLvB0f+iPT7y z0jFs3W6YaO5u77dj3JKFWr8HAQziBpLzgqt9VZZIwBW0gKv0vqx/cFobFkhtCsdIzlq pqvxUK7YwTPaTdjdwz+un+rqvQDReSEbkOPcy3YquzDQyQEDFX/Kf3X2nqI8NojaltiB qH92aTzAZy816Aa/dZHS1A0E5sZxvw4mePY8nEjhYw+h2GjtdrBd2DC9ClLDqUFW5qSH aq+w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=lCC//pn3KNrzGN31dr8tmRVR9Rr02A8N6rblEqNJqHU=; b=Q07B3KtZb/Ww2wcXyqJF7gCG5jjP0kwiL7KvojPyJ5yugJWLDukX/uQxl50ng23Iia 9BAcIF2u8LVNU5sY4ytrlOs6XP/sFQhczLoPERLGpw+u+Lv8sacO9zECRf+uywMXdE8W UMjtSUc0iAlaBJ9mpYIp87ujktTO00xpYFFSoagxFBkRdnbwwtg50XKIRMzW/H8l2O9O WZaJKCVjD3+2FtrdtC0woCfR4r/Pe9GCRjIsA9gnDZZeLRxOpmGe6fNtD+er92v3cEAu lYv1VG68WuquHunGQrEGAIMxjbtPYbwg6T0gEqSVlq1LkvAGWU9lO5W7Hieg7a3H2lvV YMYQ== X-Gm-Message-State: APjAAAXWScqqB3SzAML3GG0Q4adJf6iDBFD4YPrxkDtq0ZaY6HbmH9jS kxcvBLPm4IqfYwGFtFyR10xX+gbA X-Google-Smtp-Source: APXvYqwIIIEi9Q+1KOY5CJZf9UVcD2Du5kgxPp5TZjYwZXjWsHsC1TiHh7X8zp5N9ebfV5mjTKXCNg== X-Received: by 2002:a1c:7e85:: with SMTP id z127mr11090844wmc.95.1560241432422; Tue, 11 Jun 2019 01:23:52 -0700 (PDT) Received: from localhost.localdomain ([2a04:cec0:10dc:b342:2143:78cf:c452:5744]) by smtp.gmail.com with ESMTPSA id o126sm2837350wmo.31.2019.06.11.01.23.51 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 11 Jun 2019 01:23:51 -0700 (PDT) From: Christian Couder X-Google-Original-From: Christian Couder To: git@vger.kernel.org Cc: Junio C Hamano , =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBC?= =?utf-8?b?amFybWFzb24=?= , Jonathan Tan , =?utf-8?q?SZEDER_G=C3=A1bor?= , Christian Couder Subject: [PATCH v2 1/3] t/helper: add test-oidmap.c Date: Tue, 11 Jun 2019 10:23:23 +0200 Message-Id: <20190611082325.28878-2-chriscool@tuxfamily.org> X-Mailer: git-send-email 2.22.0.6.gde8b105b43 In-Reply-To: <20190611082325.28878-1-chriscool@tuxfamily.org> References: <20190611082325.28878-1-chriscool@tuxfamily.org> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP This new helper is very similar to "test-hashmap.c" and will help test how `struct oidmap` from oidmap.{c,h} can be used. Helped-by: SZEDER Gábor Signed-off-by: Christian Couder --- Makefile | 1 + t/helper/test-oidmap.c | 134 +++++++++++++++++++++++++++++++++++++++++ t/helper/test-tool.c | 1 + t/helper/test-tool.h | 1 + 4 files changed, 137 insertions(+) create mode 100644 t/helper/test-oidmap.c diff --git a/Makefile b/Makefile index 8a7e235352..5efc7700ed 100644 --- a/Makefile +++ b/Makefile @@ -727,6 +727,7 @@ TEST_BUILTINS_OBJS += test-lazy-init-name-hash.o TEST_BUILTINS_OBJS += test-match-trees.o TEST_BUILTINS_OBJS += test-mergesort.o TEST_BUILTINS_OBJS += test-mktemp.o +TEST_BUILTINS_OBJS += test-oidmap.o TEST_BUILTINS_OBJS += test-online-cpus.o TEST_BUILTINS_OBJS += test-parse-options.o TEST_BUILTINS_OBJS += test-path-utils.o diff --git a/t/helper/test-oidmap.c b/t/helper/test-oidmap.c new file mode 100644 index 0000000000..60e92096a1 --- /dev/null +++ b/t/helper/test-oidmap.c @@ -0,0 +1,134 @@ +#include "test-tool.h" +#include "cache.h" +#include "oidmap.h" +#include "strbuf.h" + +/* key is an oid and value is a name (could be a refname for example) */ +struct test_entry { + struct oidmap_entry entry; + char name[FLEX_ARRAY]; +}; + +#define DELIM " \t\r\n" + +/* + * Read stdin line by line and print result of commands to stdout: + * + * hash oidkey -> sha1hash(oidkey) + * put oidkey namevalue -> NULL / old namevalue + * get oidkey -> NULL / namevalue + * remove oidkey -> NULL / old namevalue + * iterate -> oidkey1 namevalue1\noidkey2 namevalue2\n... + * + */ +int cmd__oidmap(int argc, const char **argv) +{ + struct strbuf line = STRBUF_INIT; + struct oidmap map = OIDMAP_INIT; + + setup_git_directory(); + + /* init oidmap */ + oidmap_init(&map, 0); + + /* process commands from stdin */ + while (strbuf_getline(&line, stdin) != EOF) { + char *cmd, *p1 = NULL, *p2 = NULL; + struct test_entry *entry; + struct object_id oid; + + /* break line into command and up to two parameters */ + cmd = strtok(line.buf, DELIM); + /* ignore empty lines */ + if (!cmd || *cmd == '#') + continue; + + p1 = strtok(NULL, DELIM); + if (p1) + p2 = strtok(NULL, DELIM); + + if (!strcmp("hash", cmd) && p1) { + + /* print hash of oid */ + if (!get_oid(p1, &oid)) + printf("%x\n", ntohl(sha1hash(oid.hash))); + else + printf("Unknown oid: %s\n", p1); + + } else if (!strcmp("add", cmd) && p1 && p2) { + + if (get_oid(p1, &oid)) { + printf("Unknown oid: %s\n", p1); + continue; + } + + /* create entry with oidkey from p1, value = p2 */ + FLEX_ALLOC_STR(entry, name, p2); + oidcpy(&entry->entry.oid, &oid); + + /* add to oidmap */ + oidmap_put(&map, entry); + + } else if (!strcmp("put", cmd) && p1 && p2) { + + if (get_oid(p1, &oid)) { + printf("Unknown oid: %s\n", p1); + continue; + } + + /* create entry with oid_key = p1, name_value = p2 */ + FLEX_ALLOC_STR(entry, name, p2); + oidcpy(&entry->entry.oid, &oid); + + /* add / replace entry */ + entry = oidmap_put(&map, entry); + + /* print and free replaced entry, if any */ + puts(entry ? entry->name : "NULL"); + free(entry); + + } else if (!strcmp("get", cmd) && p1) { + + if (get_oid(p1, &oid)) { + printf("Unknown oid: %s\n", p1); + continue; + } + + /* lookup entry in oidmap */ + entry = oidmap_get(&map, &oid); + + /* print result */ + puts(entry ? entry->name : "NULL"); + + } else if (!strcmp("remove", cmd) && p1) { + + if (get_oid(p1, &oid)) { + printf("Unknown oid: %s\n", p1); + continue; + } + + /* remove entry from oidmap */ + entry = oidmap_remove(&map, &oid); + + /* print result and free entry*/ + puts(entry ? entry->name : "NULL"); + free(entry); + + } else if (!strcmp("iterate", cmd)) { + + struct oidmap_iter iter; + oidmap_iter_init(&map, &iter); + while ((entry = oidmap_iter_next(&iter))) + printf("%s %s\n", oid_to_hex(&entry->entry.oid), entry->name); + + } else { + + printf("Unknown command %s\n", cmd); + + } + } + + strbuf_release(&line); + oidmap_free(&map, 1); + return 0; +} diff --git a/t/helper/test-tool.c b/t/helper/test-tool.c index 087a8c0cc9..1eac25233f 100644 --- a/t/helper/test-tool.c +++ b/t/helper/test-tool.c @@ -35,6 +35,7 @@ static struct test_cmd cmds[] = { { "match-trees", cmd__match_trees }, { "mergesort", cmd__mergesort }, { "mktemp", cmd__mktemp }, + { "oidmap", cmd__oidmap }, { "online-cpus", cmd__online_cpus }, { "parse-options", cmd__parse_options }, { "path-utils", cmd__path_utils }, diff --git a/t/helper/test-tool.h b/t/helper/test-tool.h index 7e703f3038..c7a46dc320 100644 --- a/t/helper/test-tool.h +++ b/t/helper/test-tool.h @@ -25,6 +25,7 @@ int cmd__lazy_init_name_hash(int argc, const char **argv); int cmd__match_trees(int argc, const char **argv); int cmd__mergesort(int argc, const char **argv); int cmd__mktemp(int argc, const char **argv); +int cmd__oidmap(int argc, const char **argv); int cmd__online_cpus(int argc, const char **argv); int cmd__parse_options(int argc, const char **argv); int cmd__path_utils(int argc, const char **argv); From patchwork Tue Jun 11 08:23:24 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Christian Couder X-Patchwork-Id: 10986207 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 02ED36C5 for ; Tue, 11 Jun 2019 08:24:01 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id DD915286B8 for ; Tue, 11 Jun 2019 08:24:00 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id C8DFE286C1; Tue, 11 Jun 2019 08:24:00 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 6F434286B9 for ; Tue, 11 Jun 2019 08:24:00 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2404550AbfFKIX7 (ORCPT ); Tue, 11 Jun 2019 04:23:59 -0400 Received: from mail-wm1-f42.google.com ([209.85.128.42]:52905 "EHLO mail-wm1-f42.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2388847AbfFKIX7 (ORCPT ); Tue, 11 Jun 2019 04:23:59 -0400 Received: by mail-wm1-f42.google.com with SMTP id s3so1897544wms.2 for ; Tue, 11 Jun 2019 01:23:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Wj/H/JLtAmuFNEObov9qOAGln5NhYEuqgtx1TN7UKM4=; b=O04mbglo/ZO+d6jALWoTeijH+E2IUeFrGGG+89oUPe+LVC+79awzdU7V+EaGY8GCJc vyvHzO3dE/ezzzI21FpsykxHfjkIHZNDGl2DHqjKo35/efls32k9a0zaAFyuO3eEUvs7 traDwdCQHqRNdw1OeAufRgqVvIE2ZkdNnZpwjexhf8lAmwRWzmOORlpC0eeS45SLNh7J 8Nv2S9cfymCXvlO4w9stQ55ObvipgxeP+tKkxB+gqRmFsxr5EquIbD50bv+tVnnnTzMZ k3uKpfYadwxryhBbjZXZMJCaag1zZARy5OlsR32vuRCdI1M59q7n6HT9ElODY4aL79Vu Kw8g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Wj/H/JLtAmuFNEObov9qOAGln5NhYEuqgtx1TN7UKM4=; b=cjcM/zUClZ3bKEmZTQSjwIDLHlZ42ID/SyRA/C3kZOto039PadjlwhGgNx5ym9G9Yt ItyMCVeEMKGocCyX83NQlmrMffHIl2xLQ2YX8MtT3tp+2v0w2zoYGjRe3OOwEeHb14i0 m8VkAxgUpeo5ujOGcGo/sVc+b2pumsIncWddqHmCTjSDGvy6wTvnyi/lR/BvRPxr4wbM KMgSf0Xz1+atr+xzjf0gQy50r9Y01vCuHEEl+8MNU01pzJTgY6a7ejQHSX321NfTpkVp CxFTJJx2ihOR5Bugt6emopuKdXTWLu3XQPAC5E52Nan5aiYgBTXdTjuomZNVB3BCEZX5 sNcg== X-Gm-Message-State: APjAAAXBZKlJRWIV8GCTHHPWbm3BzzMCF/WthbiufoUXyNpOhpoY7Wax 0uLt9srhaNBGWcfeJsJLXnVsclY3 X-Google-Smtp-Source: APXvYqyUExNDY4hBy6d5sE6CENmiRJ7Eh5Gurbg+PaZ9mZydwP/p+jNMWnSiIF7HI0Q/drMN1RUjDQ== X-Received: by 2002:a1c:a783:: with SMTP id q125mr17496782wme.94.1560241436844; Tue, 11 Jun 2019 01:23:56 -0700 (PDT) Received: from localhost.localdomain ([2a04:cec0:10dc:b342:2143:78cf:c452:5744]) by smtp.gmail.com with ESMTPSA id o126sm2837350wmo.31.2019.06.11.01.23.55 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 11 Jun 2019 01:23:56 -0700 (PDT) From: Christian Couder X-Google-Original-From: Christian Couder To: git@vger.kernel.org Cc: Junio C Hamano , =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBC?= =?utf-8?b?amFybWFzb24=?= , Jonathan Tan , =?utf-8?q?SZEDER_G=C3=A1bor?= , Christian Couder , Christian Couder Subject: [PATCH v2 2/3] t: add t0016-oidmap.sh Date: Tue, 11 Jun 2019 10:23:24 +0200 Message-Id: <20190611082325.28878-3-chriscool@tuxfamily.org> X-Mailer: git-send-email 2.22.0.6.gde8b105b43 In-Reply-To: <20190611082325.28878-1-chriscool@tuxfamily.org> References: <20190611082325.28878-1-chriscool@tuxfamily.org> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP From: Christian Couder Add actual tests for operations using `struct oidmap` from oidmap.{c,h}. Helped-by: SZEDER Gábor Signed-off-by: Christian Couder --- t/t0016-oidmap.sh | 100 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100755 t/t0016-oidmap.sh diff --git a/t/t0016-oidmap.sh b/t/t0016-oidmap.sh new file mode 100755 index 0000000000..cbd2cb71d6 --- /dev/null +++ b/t/t0016-oidmap.sh @@ -0,0 +1,100 @@ +#!/bin/sh + +test_description='test oidmap' +. ./test-lib.sh + +# This purposefully is very similar to t0011-hashmap.sh + +test_oidmap() { + echo "$1" | test-tool oidmap $3 > actual && + echo "$2" >expect && + test_cmp expect actual +} + + +test_expect_success 'setup' ' + + test_commit one && + test_commit two && + test_commit three && + test_commit four + +' + +test_oidhash() { + git rev-parse "$1" | cut -c1-8 +} + +test_expect_success 'hash' ' + +test_oidmap "hash one +hash two +hash invalidOid +hash three" "$(test_oidhash one) +$(test_oidhash two) +Unknown oid: invalidOid +$(test_oidhash three)" + +' + +test_expect_success 'put' ' + +test_oidmap "put one 1 +put two 2 +put invalidOid 4 +put three 3" "NULL +NULL +Unknown oid: invalidOid +NULL" + +' + +test_expect_success 'replace' ' + +test_oidmap "put one 1 +put two 2 +put three 3 +put invalidOid 4 +put two deux +put one un" "NULL +NULL +NULL +Unknown oid: invalidOid +2 +1" + +' + +test_expect_success 'get' ' + +test_oidmap "put one 1 +put two 2 +put three 3 +get two +get four +get invalidOid +get one" "NULL +NULL +NULL +2 +NULL +Unknown oid: invalidOid +1" + +' + +test_expect_success 'iterate' ' + +test_oidmap "put one 1 +put two 2 +put three 3 +iterate" "NULL +NULL +NULL +$(git rev-parse two) 2 +$(git rev-parse one) 1 +$(git rev-parse three) 3" + +' + +test_done From patchwork Tue Jun 11 08:23:25 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Couder X-Patchwork-Id: 10986209 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 5EB026C5 for ; Tue, 11 Jun 2019 08:24:03 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 50161286B3 for ; Tue, 11 Jun 2019 08:24:03 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 44B94286B9; Tue, 11 Jun 2019 08:24:03 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E24FF286B3 for ; Tue, 11 Jun 2019 08:24:02 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2404585AbfFKIYB (ORCPT ); Tue, 11 Jun 2019 04:24:01 -0400 Received: from mail-wr1-f65.google.com ([209.85.221.65]:41050 "EHLO mail-wr1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2404565AbfFKIYB (ORCPT ); Tue, 11 Jun 2019 04:24:01 -0400 Received: by mail-wr1-f65.google.com with SMTP id c2so11920242wrm.8 for ; Tue, 11 Jun 2019 01:24:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=JQxy7QTZ3SJg459ql3zBsovlVdVKcSjTR6ROqdx/idk=; b=D463JW2Hc36ZfwiQxhuBkW7+DFmOZylYpU4wuAMoSfUKSl9Et0P3TBMvRi0CxIh3Z8 1bphDfTZS4cw69s6s8l9HPWU4QHLZYcRYlQGtRIsuOs3PVeWoWX/0VyTwYS1kesmXPa6 8qYb4u+wxrhF4S2WLF6EH4GKXV44YcHTgrI23Wf4v5SEc7D/ZtG3HLceJseUgigEK9cO E/oyhLBm8XubB1IsljuxgXiFqFQ6kz8DojnEWZRjXONaOIHPKUMO4jtIyRFntN0AHhPn kToHQ6jnzwKjZbyBwNPgOktdsnbXNQE99YKte8rrPMJ7qq4FtIXAIDNQLt+pJAzrgp4G I35Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=JQxy7QTZ3SJg459ql3zBsovlVdVKcSjTR6ROqdx/idk=; b=sgxD513sVatkazVHQ6nPYYC200ea5rjxgzMX9Op9FC+hJsEXjOcXsoI8AFbR0TJ/mq B51HhR8m2B9XmJzrKgLu/Df3vTnkVk20t+ox3lrIs+PHPO+a/e4Kq2TsE02FjVOAVfns xQZtlB+wyuHMRpJ9Ma5A4t0TjDFxgM+gl4Y9kvJ/W0A0XvVDdy5lvMBWltu/LAaOR3LY aYf6mb0viRViURTczq/9Cq8VuNePmSgEw0KKzWPwSYaDHUMfUTh7aoaAtpOg5oDmwpZR M7Cm3n9vCiVyaRLEGORo68X7X2vSqD4gk2nYuD8jVIWZAeUVsixKjzBJCRNw/KGsybz/ UgLg== X-Gm-Message-State: APjAAAWbr06KYR/MRgDjLZojaWjmtWQsc8YK1Ssd0Q/wQdcGyqrHuwDS DrbUMOD1aY5uilRz4ua2PTtEHw/H X-Google-Smtp-Source: APXvYqxYEYUbDNQtq6omwRfI7eEBgxTZAz7cSi0WyGp+e8moipgeqRwbvjFkYxhX+GuAAOf6ANQYmQ== X-Received: by 2002:a5d:4087:: with SMTP id o7mr35340479wrp.277.1560241439428; Tue, 11 Jun 2019 01:23:59 -0700 (PDT) Received: from localhost.localdomain ([2a04:cec0:10dc:b342:2143:78cf:c452:5744]) by smtp.gmail.com with ESMTPSA id o126sm2837350wmo.31.2019.06.11.01.23.58 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 11 Jun 2019 01:23:58 -0700 (PDT) From: Christian Couder X-Google-Original-From: Christian Couder To: git@vger.kernel.org Cc: Junio C Hamano , =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBC?= =?utf-8?b?amFybWFzb24=?= , Jonathan Tan , =?utf-8?q?SZEDER_G=C3=A1bor?= , Christian Couder , Christian Couder Subject: [PATCH v2 3/3] oidmap: use sha1hash() instead of static hash() function Date: Tue, 11 Jun 2019 10:23:25 +0200 Message-Id: <20190611082325.28878-4-chriscool@tuxfamily.org> X-Mailer: git-send-email 2.22.0.6.gde8b105b43 In-Reply-To: <20190611082325.28878-1-chriscool@tuxfamily.org> References: <20190611082325.28878-1-chriscool@tuxfamily.org> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP From: Christian Couder Get rid of the static hash() function in oidmap.c which is redundant with sha1hash(). Use sha1hash() directly instead. Let's be more consistent and not use several hash functions doing nearly exactly the same thing. Signed-off-by: Christian Couder --- oidmap.c | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/oidmap.c b/oidmap.c index b0841a0f58..01c206aaef 100644 --- a/oidmap.c +++ b/oidmap.c @@ -12,13 +12,6 @@ static int oidmap_neq(const void *hashmap_cmp_fn_data, &((const struct oidmap_entry *) entry_or_key)->oid); } -static int hash(const struct object_id *oid) -{ - int hash; - memcpy(&hash, oid->hash, sizeof(hash)); - return hash; -} - void oidmap_init(struct oidmap *map, size_t initial_size) { hashmap_init(&map->map, oidmap_neq, NULL, initial_size); @@ -36,7 +29,7 @@ void *oidmap_get(const struct oidmap *map, const struct object_id *key) if (!map->map.cmpfn) return NULL; - return hashmap_get_from_hash(&map->map, hash(key), key); + return hashmap_get_from_hash(&map->map, sha1hash(key->hash), key); } void *oidmap_remove(struct oidmap *map, const struct object_id *key) @@ -46,7 +39,7 @@ void *oidmap_remove(struct oidmap *map, const struct object_id *key) if (!map->map.cmpfn) oidmap_init(map, 0); - hashmap_entry_init(&entry, hash(key)); + hashmap_entry_init(&entry, sha1hash(key->hash)); return hashmap_remove(&map->map, &entry, key); } @@ -57,6 +50,6 @@ void *oidmap_put(struct oidmap *map, void *entry) if (!map->map.cmpfn) oidmap_init(map, 0); - hashmap_entry_init(&to_put->internal_entry, hash(&to_put->oid)); + hashmap_entry_init(&to_put->internal_entry, sha1hash(to_put->oid.hash)); return hashmap_put(&map->map, to_put); }