Tests for btree implementation used by range trees

Additional test cases for the btree implementation, see #9181.

Reviewed-by: Paul Dagnelie <pcd@delphix.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: John Kennedy <john.kennedy@delphix.com>
Closes #9717
This commit is contained in:
John Wren Kennedy
2019-12-19 12:53:55 -07:00
committed by Brian Behlendorf
parent a3640486ff
commit 523fc80069
10 changed files with 692 additions and 2 deletions
@@ -0,0 +1,20 @@
#
# This file and its contents are supplied under the terms of the
# Common Development and Distribution License ("CDDL"), version 1.0.
# You may only use this file in accordance with the terms of version
# 1.0 of the CDDL.
#
# A full copy of the text of the CDDL should have accompanied this
# source. A copy of the CDDL is also available via the Internet at
# http://www.illumos.org/license/CDDL.
#
#
# Copyright (c) 2019 by Delphix. All rights reserved.
#
pkgdatadir = $(datadir)/@PACKAGE@/zfs-tests/tests/functional/btree
dist_pkgdata_SCRIPTS = \
btree_positive.ksh \
btree_negative.ksh
+38
View File
@@ -0,0 +1,38 @@
#!/usr/bin/ksh -p
#
# This file and its contents are supplied under the terms of the
# Common Development and Distribution License ("CDDL"), version 1.0.
# You may only use this file in accordance with the terms of version
# 1.0 of the CDDL.
#
# A full copy of the text of the CDDL should have accompanied this
# source. A copy of the CDDL is also available via the Internet at
# http://www.illumos.org/license/CDDL.
#
#
# Copyright (c) 2019 by Delphix. All rights reserved.
#
. $STF_SUITE/include/libtest.shlib
#
# Description:
# Verify that the btree functions don't allow bad inputs
#
# insert_duplicate - Callers may not add values that are already in the tree
# remove_missing - Callers may not remove values that are not in the tree
#
# Note: These invocations cause btree_test to crash, but the program disables
# core dumps first. As such, we can't use log_mustnot because it explicitly
# looks for return values that correspond to a core dump and cause a test
# failure.
btree_test -n insert_duplicate
[[ $? -eq 0 ]] && log_fail "Failure from insert_duplicate"
btree_test -n remove_missing
[[ $? -eq 0 ]] && log_fail "Failure from remove_missing"
log_pass "Btree negative tests passed"
+35
View File
@@ -0,0 +1,35 @@
#!/usr/bin/ksh -p
#
# This file and its contents are supplied under the terms of the
# Common Development and Distribution License ("CDDL"), version 1.0.
# You may only use this file in accordance with the terms of version
# 1.0 of the CDDL.
#
# A full copy of the text of the CDDL should have accompanied this
# source. A copy of the CDDL is also available via the Internet at
# http://www.illumos.org/license/CDDL.
#
#
# Copyright (c) 2019 by Delphix. All rights reserved.
#
. $STF_SUITE/include/libtest.shlib
#
# Description:
# The `btree_test` binary runs a series of positive tests when called
# without arguments.
#
# insert_find_remove - Basic functionality test
# find_without_index - Using the find function with a NULL argument
# drain_tree - Fill the tree then empty it using the first and last
# functions
# stress_tree - Allow the tree to have items added and removed for a
# given amount of time
#
log_must btree_test
log_pass "Btree positive tests passed"