• Yucong Sun's avatar
    selftests/bpf: Add parallelism to test_progs · 91b2c0af
    Yucong Sun authored
    This patch adds "-j" mode to test_progs, executing tests in multiple
    process.  "-j" mode is optional, and works with all existing test
    selection mechanism, as well as "-v", "-l" etc.
    
    In "-j" mode, main process use UDS/SEQPACKET to communicate to each forked
    worker, commanding it to run tests and collect logs. After all tests are
    finished, a summary is printed. main process use multiple competing
    threads to dispatch work to worker, trying to keep them all busy.
    
    The test status will be printed as soon as it is finished, if there are
    error logs, it will be printed after the final summary line.
    
    By specifying "--debug", additional debug information on server/worker
    communication will be printed.
    
    Example output:
      > ./test_progs -n 15-20 -j
      [   12.801730] bpf_testmod: loading out-of-tree module taints kernel.
      Launching 8 workers.
      #20 btf_split:OK
      #16 btf_endian:OK
      #18 btf_module:OK
      #17 btf_map_in_map:OK
      #19 btf_skc_cls_ingress:OK
      #15 btf_dump:OK
      Summary: 6/20 PASSED, 0 SKIPPED, 0 FAILED
    Signed-off-by: default avatarYucong Sun <sunyucong@gmail.com>
    Signed-off-by: default avatarAndrii Nakryiko <andrii@kernel.org>
    Link: https://lore.kernel.org/bpf/20211006185619.364369-2-fallentree@fb.com
    91b2c0af
test_progs.c 31.5 KB