Author: rinrab
Date: Sat Jan  3 23:16:03 2026
New Revision: 1931079

Log:
checksum-test: Add test case to ensure that a context without any updates gives
the exact same result when finalized as one with a dummy update that pushes
zero-sized data.

* subversion/tests/libsvn_subr/checksum-test.c
  (test_checksum_ctx_no_updates): New test.
  (test_funcs): Run new test.

Modified:
   subversion/trunk/subversion/tests/libsvn_subr/checksum-test.c

Modified: subversion/trunk/subversion/tests/libsvn_subr/checksum-test.c
==============================================================================
--- subversion/trunk/subversion/tests/libsvn_subr/checksum-test.c       Sat Jan 
 3 16:27:50 2026        (r1931078)
+++ subversion/trunk/subversion/tests/libsvn_subr/checksum-test.c       Sat Jan 
 3 23:16:03 2026        (r1931079)
@@ -25,6 +25,7 @@
 
 #include <zlib.h>
 
+#include "svn_checksum.h"
 #include "svn_error.h"
 #include "svn_io.h"
 
@@ -406,6 +407,29 @@ do_bench_test(apr_size_t blocksize, svn_
 }
 
 static svn_error_t *
+test_checksum_ctx_no_updates(apr_pool_t *pool)
+{
+  svn_checksum_kind_t kind;
+
+  for (kind = svn_checksum_md5; kind <= svn_checksum_fnv1a_32x4; ++kind)
+    {
+      svn_checksum_ctx_t *ctx;
+      svn_checksum_t *checksum1, *checksum2;
+
+      ctx = svn_checksum_ctx_create(kind, pool);
+      SVN_ERR(svn_checksum_final(&checksum1, ctx, pool));
+
+      ctx = svn_checksum_ctx_create(kind, pool);
+      SVN_ERR(svn_checksum_update(ctx, "", 0));
+      SVN_ERR(svn_checksum_final(&checksum2, ctx, pool));
+
+      SVN_TEST_INT_ASSERT(svn_checksum_match(checksum1, checksum2), TRUE);
+    }
+
+  return SVN_NO_ERROR;
+}
+
+static svn_error_t *
 test_checksum_performance(apr_pool_t *pool)
 {
   SVN_ERR(do_bench_test(/* 16 KB */ 16 * (1 << 10),
@@ -456,6 +480,8 @@ static struct svn_test_descriptor_t test
                    "reset checksummed stream"),
     SVN_TEST_PASS2(test_checksum_performance,
                    "test checksum performance"),
+    SVN_TEST_PASS2(test_checksum_ctx_no_updates,
+                   "test checksum context without updates"),
     SVN_TEST_NULL
   };
 

Reply via email to