On Wed, Apr 21, 2021 at 9:58 PM Daniel Shahaf <[email protected]> wrote:
>
> svn_test_main.c:1073 has a condition of the form:
>
> /* just run all tests */
> ⋮
> if (max_threads == 1 || !parallel)
> {
> ⋮
> }
> #if APR_HAS_THREADS
> else
> {
> ⋮
> }
> #endif
>
> max_threads is a value hard-coded in each individual foo-test.c file.
>
> «parallel» should always be FALSE in unthreaded builds, but if for some
> reason it were TRUE, the foo-test executable would silently exit 0
> without running any tests, so how about this? —
Agreed that the way it's written now leaves open that possibility if
something (else) should go wrong.
(snip inline patch)
> Seems safe enough, but I don't have a threadless APR build handy to test
> this with.
LGTM.
I couldn't apply the patch as copy-pasted from your email so I
recreated the change manually (patch of my manual change attached as
.txt for reference).
I just finished building and running the test suite against trunk @
r1889114 with this patch and threadless (specifically with
/tools/dev/unix-build with 'make THREADING=no') and there were no
failures or any problems I could see.
I verified APR's configure's output contained:
Checking for Threads...
APR will be non-threaded
Should be safe to commit.
Cheers,
Nathan
Index: subversion/tests/svn_test_main.c
===================================================================
--- subversion/tests/svn_test_main.c (revision 1889130)
+++ subversion/tests/svn_test_main.c (working copy)
@@ -1089,9 +1089,9 @@
svn_pool_clear(cleanup_pool);
}
}
-#if APR_HAS_THREADS
else
{
+#if APR_HAS_THREADS
got_error = do_tests_concurrently(opts.prog_name, test_funcs,
array_size, max_threads,
&opts, test_pool);
@@ -1099,8 +1099,11 @@
/* Execute all cleanups */
svn_pool_clear(test_pool);
svn_pool_clear(cleanup_pool);
+#else
+ /* Can't happen */
+ SVN_ERR_MALFUNCTION();
+#endif
}
-#endif
}
/* Clean up APR */