Quanto codice stai testando? (1)

☂️ Introduzione Quando il vostro codice include una suite di unit test, la copertura del codice (code coverage) è una metrica importante per misurare l’efficacia dei test ed è piuttosto facile da ottenere; ci sono moltissimi strumenti in circolazione. Crediti immagine: Nataliya Vaitkevich D’altra parte, spesso abbiamo anche bisogno di eseguire test di integrazione o E2E (end-to-end), poiché nei nostri flussi di QA eseguiamo principalmente applicazioni reali piuttosto che singole funzioni isolate. ...

23 febbraio 2025 · Andrea Manzini

Spiegazione della Socket Activation di systemd

💭 Di cosa si tratta? Immaginate un server web che si avvia solo quando qualcuno tenta effettivamente di accedervi. O un database che si attiva solo quando arriva una query: questa è la magia della socket activation (attivazione tramite socket). Il concetto non è nuovo, poiché gli amministratori di sistema di vecchia scuola ricorderanno l’uso in passato di strumenti come inetd o xinetd per l’attivazione dei servizi su richiesta (on-demand). Poiché alcuni progetti interessanti come cockpit hanno già iniziato a utilizzare questa funzionalità poco conosciuta, in questo blog post vedremo le basi e cercheremo di familiarizzare con gli strumenti. ...

2 febbraio 2025 · Andrea Manzini

Il ftrace del kernel Linux

👣 Introduzione Gli strumenti di tracciamento sono piuttosto popolari nell’ecosistema Unix/Linux; ad esempio, nello userspace abbiamo ltrace per tracciare le chiamate di libreria dei programmi e strace per andare più a fondo e ispezionare l’uso delle syscall. Una delle molte caratteristiche che il kernel Linux offre dal 2008 (poi evolutasi nel tempo) è ftrace, che permette diversi tipi di tracciamento a runtime. Sebbene non sia flessibile come la tecnologia eBPF, può rivelarsi utile in alcune occasioni e non richiede un vero e proprio linguaggio di programmazione. ...

1 ottobre 2024 · Andrea Manzini

Giocare con le capabilities del kernel Linux

🔐 Introduzione Come sysadmin esperti, avrete probabilmente familiarità con il tradizionale approccio “tutto o niente”: se una shell o un processo è in esecuzione con UID==0, può fare quasi tutto sul sistema; al contrario, un processo utente comune è limitato in vari modi: tipicamente non può aprire socket RAW, non può fare il bind di porte “privilegiate” inferiori alla 1024, non può cambiare la proprietà di un file (chown) e così via. ...

2 agosto 2024 · Andrea Manzini
Buy Me a Coffee at ko-fi.com Buy Me A Coffee

This site does not use cookies or collect any personal data. © 2026 Andrea Manzini.