Přeskočit na obsah

Tato stránka byla automaticky přeložena z angličtiny, jediného jazyka, ve kterém se tento web píše. Číst originál.

Každý záznam vytvoří záznam běhu pojmenovávající svůj commit, strom, který měřil běh každého reportu, jeho součty a to, co chybělo, bylo zahozeno nebo neznámé, a souhrn pokrytí se k němu připojí jen svázaný s commitem a stromem, na kterých byl měřen

majordomus evidence record vrací vedle toho, co sloučil do ledgeru, záznam

deklarovaný stavdeklarovaný stav: zaručeno Deklarováno jako deterministické a blokující, implementováno a s uvedeným behaviorálním testem, který to má dokázat. Zda to zaznamenaný běh podporuje, říká verdikt důkazů zobrazený vedle.

zaznamenané důkazyzaznamenané důkazy: nespuštěno Deklarováno jako zaručené, ale nepodložené zaznamenaným během: test je pojmenován, ale žádný úspěšný běh nad současnými vstupy zaznamenán není. jak se zaznamenávají důkazy

evidence record vrací EvidenceRunRecord a zapisuje jej přes --run-record; --coverage naváže souhrn scripts/rust-coverage na jeho commit a změřený strom s minimy, která uvádějí soubory prahů. Záznam běhu o verdiktu nerozhoduje; může pouze odepřít proven jediným monotónním pravidlem, které zatím žádný povrch neaplikuje.

Co to znamená

majordomus evidence record vrací vedle toho, co sloučil do knihy, i záznam jako jeden typovaný běh, EvidenceRunRecord:

  • jeho id: běh CI, kterým byl (ci:<provider>:<run>:<attempt>), nebo lokální commit a čas;
  • jeho původ, jeho commit a nejslabší strom ze zpráv, které dostal;
  • měření každého reportu;
  • součty podle výsledku a podle runneru;
  • které reporty chyběly a proč, co reporty držely a žádné tvrzení to nedokáže pojmenovat (dropped), a testy, které pojmenovaly a tento repozitář je nemá (unknown);
  • provedení, z nichž každé se mapuje zpět na id záznamu.

--run-record <file> zapíše stejný záznam. --coverage <summary> připojí souhrn, který scripts/rust-coverage --summary-json zapsal jako EvidenceCoverage, jenž nelze sestavit bez úplného commitu, nese strom, který jeho běh změřil, a hranice, které uvádějí soubory prahů, a je aktuální jen pro svůj vlastní commit na čistých stromech.

Princip

evidence::record v apps/majordomus-cli/src/evidence/record.rs sestaví záznam ze stejných hodnot, které sloučilo: součty přes ledger::outcome_counts, jediný počet, který používá vlastní souhrn evidenční knihy, a seznam vynechaných, který vytvořil adaptér cratu, takže odpověď záznamu a samotný záznam se nikdy nerozcházejí. Typy jsou v apps/majordomus-cli/src/evidence/run.rs a apps/majordomus-cli/src/evidence/coverage.rs; CommitId odmítne zkrácené id nebo id s velkými písmeny při parsování i deserializaci.

V CI scripts/ci/evidence-collect čte součty, strom a absence svého manifestu ze záznamu běhu, místo aby je počítal podruhé z řádků ledgeru.

Jak to vidět

majordomus evidence stamp --producer suite --report suite.tsv --out suite.provenance.json
majordomus evidence record --suite suite.tsv --provenance suite.provenance.json \
  --run-record run.json --format json | jq '.run_record | del(.executions)'
bash test/run.sh 505_a_recording_carries_what_its_run_measured
bash test/run.sh 506_a_crate_binary_that_ran_nothing_is_not_a_pass

Co nepokrývá

Neexistuje index záznamů běhů ani omezení, kolik jich se uchovává, a záznam běhu drží jeden výsledek na testovací binárku, ne na test. Nic záznam běhu nečte, aby posoudilo tvrzení: pozdější povrch dovolí zadržet proven jediným monotónním pravidlem, ale zatím žádný takový není.

Proč existuje

Co nahrávka věděla jako běh, bylo zahozeno: ledger drží jedno provedení na test a souhrn pokrytí nenesl žádný commit, takže šlo o číslo o nějakém stromu, který nikdo neuměl pojmenovat. Typovaný běh drží pohromadě, co běh změřil, a váže pokrytí na commit, který popisuje. ADR 0087 (navrženo) model zaznamenává.

Detail vykreslený z docs/claims/evidence-a-recording-is-a-typed-run.md.

Od tvrzení k důkazu

  1. 1 · veřejné tvrzení

    Každý záznam vytvoří záznam běhu pojmenovávající svůj commit, strom, který měřil běh každého reportu, jeho součty a to, co chybělo, bylo zahozeno nebo neznámé, a souhrn pokrytí se k němu připojí jen svázaný s commitem a stromem, na kterých byl měřen

    Vzniklo na Důkazy.

  2. 2 · kanonické tvrzení

    evidence-a-recording-is-a-typed-rundeklarovaný stav: zaručeno v docs/CLAIMS.yaml

    Definováno v přečtěte si to na tomto webu · docs/EVIDENCE.md

  3. 3 · implementace

    apps/majordomus-cli/src/evidence/run.rs

  4. 4 · test a scénáře

    Test: test/cases/505_a_recording_carries_what_its_run_measured.sh

  5. 5 · zaznamenané běhy

    zaznamenané důkazy: nespuštěno jak se zaznamenávají důkazy

Ověřte si to sami

Test běží v jednorázovém dočasném repozitáři a ověřuje chování, ne řetězec ve zdrojovém kódu.

z klonu repozitáře
bash test/run.sh 505_a_recording_carries_what_its_run_measured

Prohledává názvy a popisy všech stránek, které tento web publikuje.