From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755418AbdERNlu (ORCPT ); Thu, 18 May 2017 09:41:50 -0400 Received: from mail-qt0-f196.google.com ([209.85.216.196]:33069 "EHLO mail-qt0-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754602AbdERNlo (ORCPT ); Thu, 18 May 2017 09:41:44 -0400 From: Leno Hou To: linux-kernel@vger.kernel.org Cc: andy.shevchenko@gmail.com, akpm@linux-foundation.org, Leno Hou Subject: [PATCH v3 2/2] lib/btree.c: add testcase for in-memory b+ tree Date: Thu, 18 May 2017 21:41:07 +0800 Message-Id: <1495114867-3400-2-git-send-email-lenohou@gmail.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1495114867-3400-1-git-send-email-lenohou@gmail.com> References: <1495114867-3400-1-git-send-email-lenohou@gmail.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Signed-off-by: Leno Hou --- lib/btree_test.c | 77 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 lib/btree_test.c diff --git a/lib/btree_test.c b/lib/btree_test.c new file mode 100644 index 0000000..90d9048 --- /dev/null +++ b/lib/btree_test.c @@ -0,0 +1,77 @@ +#include +#include +#include +#include +#include + +#define NODES 24 + +struct test_node { + u32 key; + u32 val; +}; + +static struct btree_head32 bh; +static struct test_node nodes[NODES]; + +static void init(void) +{ + int i; + + for (i = 0; i < NODES; i++) { + nodes[i].key = i; + nodes[i].val = i; + } +} +static int __init btree_test_init(void) +{ + u32 key = 0; + u32 *val = NULL; + int i, rc; + + pr_alert("btree testing\n"); + + init(); + rc = btree_init32(&bh); + + if (rc) + pr_alert("Unable initialize btree memory\n"); + + for (i = 0; i < NODES; i++) { + rc = btree_insert32(&bh, + nodes[i].key, + &nodes[i].val, + GFP_ATOMIC); + + if (rc) + pr_alert("Unable to insert key into btree\n"); + } + + pr_alert("========================================\n"); + + btree_for_each_safe32(&bh, key, val) { + pr_alert("val %d\n", *val); + } + + btree_remove32(&bh, 11); + + pr_alert("========================================\n"); + btree_for_each_safe32(&bh, key, val) { + pr_alert("val %d\n", *val); + } + + return 0; +} +static void __exit btree_test_exit(void) +{ + pr_alert("test exit\n"); + btree_destroy32(&bh); + +} + +module_init(btree_test_init); +module_exit(btree_test_exit); + +MODULE_LICENSE("Dual BSD/GPL"); +MODULE_AUTHOR("Leno Hou "); +MODULE_DESCRIPTION("Simple In-memory B+ Tree test"); -- 2.7.4