Author: rhuijben
Date: Fri Jun 10 12:43:22 2011
New Revision: 1134294
URL: http://svn.apache.org/viewvc?rev=1134294&view=rev
Log:
Integrate a small test in the c file of the library where it applies to. After
more than 5 years it is unlikely that we wil make some more generic svn_key_
api in the forseeable future.
* build.conf
Remove key-test project
* subversion/tests/libsvn_fs_base/key-test.c
Delete file
* subversion/tests/libsvn_fs_base/fs-base-test.c
(includes): Add key-gen.h
(key_test): Move here, from key-test.c
(test_funcs): Add key_test.
Removed:
subversion/trunk/subversion/tests/libsvn_fs_base/key-test.c
Modified:
subversion/trunk/build.conf
subversion/trunk/subversion/tests/libsvn_fs_base/fs-base-test.c
Modified: subversion/trunk/build.conf
URL:
http://svn.apache.org/viewvc/subversion/trunk/build.conf?rev=1134294&r1=1134293&r2=1134294&view=diff
==============================================================================
--- subversion/trunk/build.conf (original)
+++ subversion/trunk/build.conf Fri Jun 10 12:43:22 2011
@@ -638,14 +638,6 @@ install = bdb-test
libs = libsvn_test libsvn_fs libsvn_fs_base libsvn_delta
libsvn_fs_util libsvn_subr apriconv apr
-[key-test]
-description = Test keygen funcs in libsvn_fs_base
-type = exe
-path = subversion/tests/libsvn_fs_base
-sources = key-test.c
-install = bdb-test
-libs = libsvn_test libsvn_fs_base libsvn_subr apriconv apr
-
[strings-reps-test]
description = Test strings/reps in libsvn_fs_base
type = exe
@@ -1118,7 +1110,7 @@ libs = svn svnadmin svndumpfilter svnloo
type = project
path = build/win32
libs = __ALL__
- fs-test fs-base-test fs-fsfs-test fs-pack-test skel-test key-test
+ fs-test fs-base-test fs-fsfs-test fs-pack-test skel-test
strings-reps-test changes-test locks-test repos-test
checksum-test compat-test config-test hashdump-test mergeinfo-test
opt-test path-test stream-test string-test time-test utf-test
Modified: subversion/trunk/subversion/tests/libsvn_fs_base/fs-base-test.c
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/libsvn_fs_base/fs-base-test.c?rev=1134294&r1=1134293&r2=1134294&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/libsvn_fs_base/fs-base-test.c (original)
+++ subversion/trunk/subversion/tests/libsvn_fs_base/fs-base-test.c Fri Jun 10
12:43:22 2011
@@ -37,6 +37,7 @@
#include "../../libsvn_fs_base/trail.h"
#include "../../libsvn_fs_base/bdb/txn-table.h"
#include "../../libsvn_fs_base/bdb/nodes-table.h"
+#include "../../libsvn_fs_base/key-gen.h"
#include "private/svn_fs_util.h"
#include "../../libsvn_delta/delta.h"
@@ -1477,6 +1478,50 @@ orphaned_textmod_change(const svn_test_o
return SVN_NO_ERROR;
}
+static svn_error_t *
+key_test(apr_pool_t *pool)
+{
+ int i;
+ const char *keys[9][2] = {
+ { "0", "1" },
+ { "9", "a" },
+ { "zzzzz", "100000" },
+ { "z000000zzzzzz", "z000001000000" },
+ { "97hnq33jx2a", "97hnq33jx2b" },
+ { "97hnq33jx2z", "97hnq33jx30" },
+ { "999", "99a" },
+ { "a9z", "aa0" },
+ { "z", "10" }
+ };
+
+ for (i = 0; i < 9; i++)
+ {
+ char gen_key[MAX_KEY_SIZE];
+ const char *orig_key = keys[i][0];
+ const char *next_key = keys[i][1];
+ apr_size_t len, olen;
+
+ len = strlen(orig_key);
+ olen = len;
+
+ svn_fs_base__next_key(orig_key, &len, gen_key);
+ if (! (((len == olen) || (len == (olen + 1)))
+ && (strlen(next_key) == len)
+ && (strcmp(next_key, gen_key) == 0)))
+ {
+ return svn_error_createf
+ (SVN_ERR_FS_GENERAL, NULL,
+ "failed to increment key \"%s\" correctly\n"
+ " expected: %s\n"
+ " actual: %s",
+ orig_key, next_key, gen_key);
+ }
+ }
+
+ return SVN_NO_ERROR;
+}
+
+
/* ------------------------------------------------------------------------ */
/* The test table. */
@@ -1504,5 +1549,7 @@ struct svn_test_descriptor_t test_funcs[
"ensure no-op for redundant copies"),
SVN_TEST_OPTS_PASS(orphaned_textmod_change,
"test for orphaned textmod changed paths"),
+ SVN_TEST_PASS2(key_test,
+ "testing sequential alphanumeric key generation"),
SVN_TEST_NULL
};