summaryrefslogtreecommitdiff
path: root/source3/torture/mangle_test.c
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2002-04-12 03:54:13 +0000
committerAndrew Tridgell <tridge@samba.org>2002-04-12 03:54:13 +0000
commit71c2943d34e6a30819d7c36d7c1d5d5eab2eb968 (patch)
tree3267ae1e3ec0c091514444d9e516f958c50c140f /source3/torture/mangle_test.c
parenta2d5f9a8098343d2f2209a56c8858479ba33e9c9 (diff)
downloadsamba-71c2943d34e6a30819d7c36d7c1d5d5eab2eb968.tar.gz
samba-71c2943d34e6a30819d7c36d7c1d5d5eab2eb968.tar.bz2
samba-71c2943d34e6a30819d7c36d7c1d5d5eab2eb968.zip
nicer measurement of failures and collisions
(This used to be commit 61c61f6b4f22c1ef6f837145f5e05730706cc8d4)
Diffstat (limited to 'source3/torture/mangle_test.c')
-rw-r--r--source3/torture/mangle_test.c22
1 files changed, 15 insertions, 7 deletions
diff --git a/source3/torture/mangle_test.c b/source3/torture/mangle_test.c
index 7f05b953c5..2d5b3610d5 100644
--- a/source3/torture/mangle_test.c
+++ b/source3/torture/mangle_test.c
@@ -24,7 +24,7 @@ static TDB_CONTEXT *tdb;
#define NAME_LENGTH 20
-static unsigned total, collisions;
+static unsigned total, collisions, failures;
static BOOL test_one(struct cli_state *cli, const char *name)
{
@@ -76,7 +76,9 @@ static BOOL test_one(struct cli_state *cli, const char *name)
if (!cli_unlink(cli, name)) {
printf("unlink2 of %s (%s) failed (%s)\n",
name, name2, cli_errstr(cli));
- return False;
+ failures++;
+ cli_unlink(cli, name2);
+ return True;
}
/* see if the short name is already in the tdb */
@@ -127,6 +129,11 @@ static void gen_name(char *name)
p[0] = 'A';
}
+ /* and a medium probability of a common lead string */
+ if (random() % 10 == 0) {
+ strncpy(p, "ABCDE", 5);
+ }
+
/* and a high probability of a good extension length */
if (random() % 2 == 0) {
char *s = strrchr(p, '.');
@@ -173,21 +180,22 @@ BOOL torture_mangle(int dummy)
break;
}
if (total && total % 100 == 0) {
- printf("collisions %u/%u - %.2f%%\r",
- collisions, total, (100.0*collisions) / total);
+ printf("collisions %u/%u - %.2f%% (%u failures)\r",
+ collisions, total, (100.0*collisions) / total, failures);
}
}
+ cli_unlink(&cli, "\\mangle_test\\*");
if (!cli_rmdir(&cli, "\\mangle_test")) {
printf("ERROR: Failed to remove directory\n");
return False;
}
- printf("\nTotal collisions %u/%u - %.2f%%\n",
- collisions, total, (100.0*collisions) / total);
+ printf("\nTotal collisions %u/%u - %.2f%% (%u failures)\n",
+ collisions, total, (100.0*collisions) / total, failures);
torture_close_connection(&cli);
printf("mangle test finished\n");
- return True;
+ return (failures == 0);
}