• Stanislav Fomichev's avatar
    selftests/bpf: test_progs: switch to open_memstream · 946152b3
    Stanislav Fomichev authored
    Use open_memstream to override stdout during test execution.
    The copy of the original stdout is held in env.stdout and used
    to print subtest info and dump failed log.
    
    test_{v,}printf are now simple wrappers around stdout and will be
    removed in the next patch.
    
    v5:
    * fix -v crash by always setting env.std{in,err} (Alexei Starovoitov)
    * drop force_log check from stdio_hijack (Andrii Nakryiko)
    
    v4:
    * one field per line for stdout/stderr (Andrii Nakryiko)
    
    v3:
    * don't do strlen over log_buf, log_cnt has it already (Andrii Nakryiko)
    
    v2:
    * add ifdef __GLIBC__ around open_memstream (maybe pointless since
      we already depend on glibc for argp_parse)
    * hijack stderr as well (Andrii Nakryiko)
    * don't hijack for every test, do it once (Andrii Nakryiko)
    * log_cap -> log_size (Andrii Nakryiko)
    * do fseeko in a proper place (Andrii Nakryiko)
    * check open_memstream returned value (Andrii Nakryiko)
    
    Cc: Andrii Nakryiko <andriin@fb.com>
    Acked-by: default avatarAndrii Nakryiko <andriin@fb.com>
    Signed-off-by: default avatarStanislav Fomichev <sdf@google.com>
    Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
    946152b3
test_progs.c 10.7 KB