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? —

[[[
* subversion/tests/svn_test_main.c
  (svn_test_main): Add a safety net ensuring APR_HAS_THREADS-less builds
    would fail, rather than pass silently, if they tried to take the
    "Run tests concurrently" codepath (which try would be a bug).
]]]

[[[
Index: subversion/tests/svn_test_main.c
===================================================================
--- subversion/tests/svn_test_main.c    (revision 1889073)
+++ subversion/tests/svn_test_main.c    (working copy)
@@ -1089,9 +1089,9 @@ svn_test_main(int argc, const char *argv[], int ma
               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 @@ svn_test_main(int argc, const char *argv[], int ma
           /* 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 */
]]]

Seems safe enough, but I don't have a threadless APR build handy to test
this with.

Cheers,

Daniel

Reply via email to