Oletustestit
Testaus on oletuksena käytössä normalisoidussa reseptissä, ja siinä on neljä
ennalta määriteltyä testin nimeä: boot, login, packages ja network.
Nämä ovat pieniä vieraskoneen tarkistuksia, eivät täydellistä
hyväksyntäkokonaisuutta. Resepti voi poistaa testauksen käytöstä tai korvata
listan, ja jotkin artefaktityypit noudattavat kapeampaa sopimusta.
Mitä oletukset todella osoittavat
| Testi | Suoritettu tarkistus | Ei osoita |
|---|---|---|
boot | uptime päättyy onnistuneesti QEMU guest agentin kautta | Jokaista käynnistysohjelmapolkua, laitteistokäynnistystä tai ytimen varoitusten puuttumista |
login | whoami voi ajaa root guest-agent -kanavan kautta | Interaktiivista salasanaa, SSH-avainta, PAMia, työpöytägreeteriä tai loppukäyttäjän kirjautumista |
packages | Yksi komennoista dpkg --list, rpm -qa tai pacman -Q onnistuu | Että jokainen promptissa pyydetty paketti on asennettu |
network | DNS ratkaisee example.com ja TCP-yhteys porttiin 443 onnistuu rajattujen uudelleenyritysten jälkeen | Yleistä internetyhteyden kuntoa, HTTP-sisältöä, jokaista liittymää tai air-gapped-suunnittelua |
Ubuntu 24.04 CIS -polku poistaa yleisen verkkotarkistuksen ja käyttää sen sijaan readiness-gated feature assertion -väitettä. Reseptillä ilman odotettua internet-reittiä epäonnistunut yleinen verkkotarkistus voidaan muuttaa varoitukseksi.
Feature- ja capability-tarkistukset
Runner yhdistää myös käytössä olevien feature-metatietojen, legacy hook test files -tiedostojen, frozen capability planin, eksplisiittisten custom tests -testien ja benchmark tests -testien tuomat tarkistukset. Päällekkäiset assertions poistetaan. Assertions, joilta puuttuu tunnettuja parametreja, pudotetaan palvelinvaroituksella; tarkista syntynyt testisuunnitelma, jotta pudotettua tarkistusta ei luule onnistuneeksi.
Esimerkkejä ovat määritetty SSH-portti, palvelun tila, pyydetty paketti tai reseptikohtainen artefakti. Kattavuus riippuu käytössä olevasta featuresta: featuren sisällyttäminen ei itsessään takaa täydellistä assertion-joukkoa kyseiselle featurelle.
Tuloksen lukeminen
Käytä assertion-rivejä ja evidencea, älä vain aggregate badgea:
passedtarkoittaa, että suoritettava tarkistus palautti odotetun tuloksen.failedtarkoittaa, että tarkistus ajettiin ja oli ristiriidassa odotuksen kanssa.errortarkoittaa, että harness ei voinut tuottaa verdictiä.skippedtarkoittaa, että tarkistusta ei ajettu, esimerkiksi koska kohde-VM puuttui.
Virheet ja skipit eivät ole passeja. Valmis image ja passed test run ovat erillisiä tiloja; sertifiointi on kolmas portti.
Vahvempien hyväksymiskriteerien määrittely
Todelliseen workloadiin lisää promptiin liittyviä assertions-väittämiä. Esimerkiksi:
{
"description": "Nginx serves the local health endpoint",
"assertions": [
{
"type": "service_running",
"description": "Nginx is active",
"params": { "service": "nginx" }
},
{
"type": "http_responds",
"description": "Health endpoint returns 200",
"params": { "url": "http://localhost/health", "status": 200 }
}
]
}Tarkista sitten rakennettu image konsolissa ja testaa hardware-bound claims edustavalla laitteistolla. Katso Omat väittämät ja Väitetyypit.