Skip to content

Support C/C++ coverage for Lua tests #14859

Description

@ligurio

Now coverage job is failed with not a dynamic executable:

Step #6: Coverage error, creating log file: /workspace/out/libfuzzer-coverage-x86_64/fuzzer_stats/sql_fuzzer_error.log
Step #6: [2026-01-30 06:49:40,686 INFO] Finding shared libraries for targets (if any).
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: 	not a dynamic executable
Step #6: Traceback (most recent call last):
Step #6:   File "/opt/code_coverage/coverage_utils.py", line 829, in <module>
Step #6:     sys.exit(Main())
Step #6:              ^^^^^^
Step #6:   File "/opt/code_coverage/coverage_utils.py", line 821, in Main
Step #6:     return _CmdSharedLibraries(args)
Step #6:            ^^^^^^^^^^^^^^^^^^^^^^^^^
Step #6:   File "/opt/code_coverage/coverage_utils.py", line 757, in _CmdSharedLibraries
Step #6:     library_paths = GetSharedLibraries(args.object, args.build_dir, None)
Step #6:                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Step #6:   File "/opt/code_coverage/coverage_utils.py", line 694, in GetSharedLibraries
Step #6:     output = subprocess.check_output(cmd).decode('utf-8', 'ignore')
Step #6:              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Step #6:   File "/usr/local/lib/python3.11/subprocess.py", line 466, in check_output
Step #6:     return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
Step #6:            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Step #6:   File "/usr/local/lib/python3.11/subprocess.py", line 571, in run
Step #6:     raise CalledProcessError(retcode, process.args,
Step #6: subprocess.CalledProcessError: Command '['ldd', 'builtin_loadfile_test', 'math_sin_test', 'xrow_decode_error_fuzzer', 'builtin_getfenv_test', 'builtin_unpack_test', 'http_parser_fuzzer', 'xrow_decode_auth_fuzzer', 'builtin_dofile_test', 'os_difftime_test', 'xrow_greeting_decode_fuzzer', 'bitop_bxor_test', 'bitop_tobit_test', 'string_format_test', 'math_randomseed_test', 'builtin_rawequal_test', 'builtin_assert_test', 'string_upper_test', 'luaL_loadbufferx_test', 'coroutine_torture_test', 'bitop_ror_test', 'xrow_decode_id_fuzzer', 'luaL_loadbuffer_fuzzer', 'table_sort_test', 'math_exp_test', 'xrow_decode_raft_fuzzer', 'table_clear_test', 'xrow_decode_dml_fuzzer', 'string_byte_test', 'math_floor_test', 'bitop_band_test', 'xrow_decode_sql_fuzzer', 'math_sqrt_test', 'table_foreach_test', 'os_getenv_test', 'string_dump_test', 'string_lower_test', 'builtin_collectgarbage_test', 'math_rad_test', 'package_require_test', 'vclock_from_string_fuzzer', 'bitop_rshift_test', 'builtin_length_test', 'table_create_test', 'decimal_to_int64_fuzzer', 'table_concat_test', 'builtin_setmetatable_test', 'luaL_gsub_test', 'string_char_test', 'table_foreachi_test', 'xrow_decode_call_fuzzer', 'math_tan_test', 'math_acos_test', 'csv_fuzzer', 'string_gsub_test', 'table_move_test', 'bitop_bswap_test', 'math_atan_test', 'bitop_tohex_test', 'builtin_tonumber_test', 'torture_test', 'table_insert_test', 'xrow_decode_watch_fuzzer', 'string_sub_test', 'string_reverse_test', 'math_cos_test', 'swim_proto_member_fuzzer', 'table_remove_test', 'string_match_test', 'os_setlocale_test', 'os_date_test', 'os_time_test', 'bitop_arshift_test', 'swim_proto_meta_fuzzer', 'luaL_traceback_test', 'math_abs_test', 'string_gmatch_test', 'math_pow_test', 'builtin_dostring_test', 'xrow_header_decode_fuzzer', 'math_modf_test', 'lua_load_test', 'ffi_cdef_proto_test', 'math_log_test', 'builtin_getmetatable_test', 'string_len_test', 'builtin_tostring_test', 'math_fmod_test', 'math_ceil_test', 'builtin_loadstring_test', 'builtin_next_test', 'bitop_rol_test', 'lua_dump_test', 'builtin_pairs_test', 'debug_torture_test', 'builtin_rawget_test', 'table_maxn_test', 'builtin_concat_test', 'sql_fuzzer', 'math_asin_test', 'datetime_parse_full_fuzzer', 'datetime_strptime_fuzzer', 'string_find_test', 'bitop_bor_test', 'io_torture_test', 'bitop_lshift_test', 'uri_fuzzer', 'math_deg_test', 'builtin_select_test', 'string_rep_test', 'mp_datetime_fuzzer', 'builtin_load_test', 'builtin_rawset_test', 'builtin_ipairs_test', 'xrow_decode_begin_fuzzer', 'bitop_bnot_test', 'builtin_error_test', 'jit_p_test']' returned non-zero exit status 1.

Full log: https://oss-fuzz-build-logs.storage.googleapis.com/log-10c9dc4c-cb2f-471d-8e86-5f545489d60f.txt

log-10c9dc4c-cb2f-471d-8e86-5f545489d60f.txt

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions