Quanto codice stai testando ? (5)
馃Л Dove eravamo rimasti Bentornati a questa nuova tappa del nostro viaggio nella misurazione della test coverage sui binari precompilati! Nel quarto capitolo abbiamo introdotto funkoverage, uno strumento nativo ad alte prestazioni basato su eBPF, che sfrutta uprobe_multi per catturare l鈥檌ngresso nelle funzioni in GNU/Linux con un overhead inferiore al 2%. Fino ad ora, le librerie statiche venivano scoperte all鈥檌nstallazione analizzando i binari con ldd (tramite le dipendenze DT_NEEDED). Tuttavia, c鈥檈ra un enorme elefante nella stanza: dlopen(). Alcuni dei software pi霉 complessi e modulari al mondo, come i web server con moduli dinamici, le applicazioni enterprise basate su plugin e i database multi-protocollo, caricano le proprie dipendenze a runtime, al volo. Poich茅 queste librerie non sono dichiarate nell鈥檋eader ELF DT_NEEDED, risultano invisibili a ldd durante l鈥檌nstallazione. Oggi diamo la caccia a questo fuggiasco tecnologico: scopriremo come lo abbiamo risolto con una strategia elegante ed estremamente scalabile, la strumentazione eBPF JIT event-driven, e la metteremo alla prova sul campo con binari di produzione reali e non modificati come Nginx e OpenSSL! ...