automake
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: How do you set VERBOSE for parallel testin


From: Arthur Schwarz
Subject: RE: How do you set VERBOSE for parallel testin
Date: Thu, 14 May 2015 17:36:31 -0700

   The short answer is because I wanna use 8 cpus. There is no sensible way
   Automake can know how many cpus I wanna use.

       Just a some idle speculation, Automake knows two things at this 
       point, that the user wants to run a Parallel Test Harness and the
       Total number of test cases to execute (TESTS). The user can modify
       TESTS to suit allowing make / Makefile to determine the number of
       test cases in the variable TESTS. Shouldn't this be enough to 
       establish how many processes are needed and to select a strategy
       for allocating run time resources? 
   
   $ make check TESTSUITEFLAGS=-j8
  
     Is TESTSUITEFLAGS a new variable for the next Automake release?
     It appears undocumented.
       
      make -j# $(TESTS)   or
    
      for I in $(TESTS); do make -j $i; done
   
   Your guess is wrong. The key line in 'Makefile.in' is
      
      $(TEST_SUITE_LOG): $(TEST_LOGS)
      
      which means that before creating 'test-suite.log' the log file for
each test is generated. This structure allows parallel execution, but only
if the user chooses to. 
      
         TEST_LOGS contains the list of log files. The rule seems to say
         after all log files are generated then the $(TEST_SUITE_LOG)
         preconditions are satisfied and $(TEST_SUITE_LOG) is valid. This
         doesn't seem to address how the log files get generated. From
         the manual it seems that .log files are the output (stdout and
         stderr) of a test case, and that there is no way for the user
         to bypass this. The rule is neutral with respect to execution
         time semantics. My conceptual pseudo-code seems to be valid
         (at least the 'for' part).
         
         
      If the user run make single-threaded the test suite will be run on a
single cpu. This is by design. If a user issues 'make check' you want one
single cpu to be used; it would be very annoying if make spawned away
processes. If a user issues 'make -jX' then the structure allows make to run
tests in parallel. This is not possible in the old serial test suite, which
basically just ran the tests in a loop.
      
         Thanks. I didn't get this from my reading. I think you are saying
         that if the user wants to execute the tests in parallel the user
         must specify this on the command line.
         
         And, if I guess correctly, the user can write 
             "make check TESTSUITEFLAGS=-jN"
             
         As a nit-noy, don't you mean "processor" and not "cpu"? And
         does -jN specify processors or processes or both?




reply via email to

[Prev in Thread] Current Thread [Next in Thread]