You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by ph...@apache.org on 2013/03/15 19:53:10 UTC
svn commit: r1457064 - in /subversion/trunk/subversion:
bindings/swig/python/tests/checksum.py tests/libsvn_subr/checksum-test.c
Author: philip
Date: Fri Mar 15 18:53:10 2013
New Revision: 1457064
URL: http://svn.apache.org/r1457064
Log:
Test the behaviour of svn_checksum_match.
* subversion/tests/libsvn_subr/checksum-test.c
(zero_match): New test.
(test_funcs): Add new test.
Modified:
subversion/trunk/subversion/bindings/swig/python/tests/checksum.py
subversion/trunk/subversion/tests/libsvn_subr/checksum-test.c
Modified: subversion/trunk/subversion/bindings/swig/python/tests/checksum.py
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/swig/python/tests/checksum.py?rev=1457064&r1=1457063&r2=1457064&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/swig/python/tests/checksum.py (original)
+++ subversion/trunk/subversion/bindings/swig/python/tests/checksum.py Fri Mar 15 18:53:10 2013
@@ -36,6 +36,11 @@ class ChecksumTestCases(unittest.TestCas
self.assertEqual(int(check_val), 0,
"Value of initialized digest is not 0")
+ val1 = svn.core.svn_checksum_create(svn.core.svn_checksum_md5)
+ val2 = svn.core.svn_checksum_create(svn.core.svn_checksum_md5)
+ val1.digest = 'foo'
+ print svn.core.svn_checksum_match(val1, val2)
+
def suite():
return unittest.defaultTestLoader.loadTestsFromTestCase(ChecksumTestCases)
Modified: subversion/trunk/subversion/tests/libsvn_subr/checksum-test.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/libsvn_subr/checksum-test.c?rev=1457064&r1=1457063&r2=1457064&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/libsvn_subr/checksum-test.c (original)
+++ subversion/trunk/subversion/tests/libsvn_subr/checksum-test.c Fri Mar 15 18:53:10 2013
@@ -113,6 +113,48 @@ test_pseudo_md5(apr_pool_t *pool)
return SVN_NO_ERROR;
}
+static svn_error_t *
+zero_match(apr_pool_t *pool)
+{
+ svn_checksum_t *zero_md5;
+ svn_checksum_t *zero_sha1;
+ svn_checksum_t *A_md5;
+ svn_checksum_t *B_md5;
+ svn_checksum_t *A_sha1;
+ svn_checksum_t *B_sha1;
+
+
+ zero_md5 = svn_checksum_create(svn_checksum_md5, pool);
+ SVN_ERR(svn_checksum_clear(zero_md5));
+ SVN_ERR(svn_checksum(&A_md5, svn_checksum_md5, "A", 1, pool));
+ SVN_ERR(svn_checksum(&B_md5, svn_checksum_md5, "B", 1, pool));
+
+ zero_sha1 = svn_checksum_create(svn_checksum_sha1, pool);
+ SVN_ERR(svn_checksum_clear(zero_sha1));
+ SVN_ERR(svn_checksum(&A_sha1, svn_checksum_sha1, "A", 1, pool));
+ SVN_ERR(svn_checksum(&B_sha1, svn_checksum_sha1, "B", 1, pool));
+
+ /* Different non-zero don't match. */
+ SVN_TEST_ASSERT(!svn_checksum_match(A_md5, B_md5));
+ SVN_TEST_ASSERT(!svn_checksum_match(A_sha1, B_sha1));
+ SVN_TEST_ASSERT(!svn_checksum_match(A_md5, A_sha1));
+ SVN_TEST_ASSERT(!svn_checksum_match(A_md5, B_sha1));
+
+ /* Zero matches anything of the same kind. */
+ SVN_TEST_ASSERT(svn_checksum_match(A_md5, zero_md5));
+ SVN_TEST_ASSERT(svn_checksum_match(zero_md5, B_md5));
+ SVN_TEST_ASSERT(svn_checksum_match(A_sha1, zero_sha1));
+ SVN_TEST_ASSERT(svn_checksum_match(zero_sha1, B_sha1));
+
+ /* Zero doesn't match anything of a different kind... */
+ SVN_TEST_ASSERT(!svn_checksum_match(zero_md5, A_sha1));
+ SVN_TEST_ASSERT(!svn_checksum_match(zero_sha1, A_md5));
+ /* ...even another zero. */
+ SVN_TEST_ASSERT(!svn_checksum_match(zero_md5, zero_sha1));
+
+ return SVN_NO_ERROR;
+}
+
/* An array of all test functions */
struct svn_test_descriptor_t test_funcs[] =
{
@@ -123,5 +165,7 @@ struct svn_test_descriptor_t test_funcs[
"checksum emptiness"),
SVN_TEST_PASS2(test_pseudo_md5,
"pseudo-md5 compatibility"),
+ SVN_TEST_PASS2(zero_match,
+ "zero checksum matching"),
SVN_TEST_NULL
};