Commit Graph

4394 Commits

Author SHA1 Message Date
Gerwin Klein 349309ebf5 github: trigger proof run on manifest update
The repository_dispatch event will be generated in the
verification-manifest repo when devel.xml is updated by anyone other
than the seL4-ci user.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2021-08-18 10:44:48 +10:00
Gerwin Klein 944df7055b github: no PR proof run for text file updates
Save some CI cycles by not running the full proofs for each
documentation update.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2021-08-16 21:55:00 +10:00
Gerwin Klein 4b6d390ecd trivial: misc/bump/README update
Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2021-08-16 17:06:52 +10:00
Gerwin Klein b64bd15816 cleanup: fix indent and warnings
This fixes up some atrocious indentation and removes some warnings for
duplicate rules etc.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2021-08-16 16:47:10 +10:00
Gerwin Klein 5d895508a2 arm: fix Machine_C assumptions
Some of the assumptions in Machine_C were about C functions that do not
exist (any more, presumably after some change in C). This means these
names were free variables and the rules could in theory be applied to
any function, potentially causing unsoundness. Luckily, we were
disciplined enough in the proofs not to have done that. The proofs with
the names fixed go through unchanged.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2021-08-16 16:47:10 +10:00
Gerwin Klein 6fd6d6bd48 arm/arm-hyp: proof updates for Arm cache fix
This commit updates the proofs for seL4/seL4#485, which fixes
the security and correctness bug seL4/seL4#481. The bug was that
caches are not sufficiently flushed in retype for frames that can
be mapped uncached later.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2021-08-16 16:47:10 +10:00
Gerwin Klein 34eaf81367 testboard: print GitHub commit URL
Useful for copy/paste into PR comments to link to the testboard
results, or just to see them manually.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2021-08-16 10:35:11 +10:00
Gerwin Klein 4cf76886f4 testboard: add dry-run option
Mostly for testing, to inspect what manifest is being constructed
without triggering tests.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2021-08-16 10:35:11 +10:00
Gerwin Klein 494ea6af8d testboard: less noise standard output
Use '> ' instead of '[log] ', since this is not a log file but
usually read interactively.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2021-08-16 10:35:11 +10:00
Gerwin Klein afdcbf13ee testboard: use https URLs
The test runner does not have ssh access to GitHub, so can't use
ssh:// URLs. This means the tested revisions need to be public, but
since this is meant for foundation use, that should be fine.

(The testboard itself is public anway)

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2021-08-16 10:35:11 +10:00
Gerwin Klein 6bb3f6e64f README.md: show CI status for master and rt
Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2021-08-14 15:59:10 +10:00
Gerwin Klein 100cf0c281 github: run push-checks on rt branch as well
Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2021-08-14 15:59:10 +10:00
Gerwin Klein 3c1f9a8f58
github: deploy manifest after test on master (#323)
This refactors the proof runs into a separate run for the master branch
(which has deployment) and development branches (currently RT and PRs).

For the test on the master branch, we need to make sure that all tests
and the deployment action see the same revisions of all participating
repos.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2021-08-12 09:09:32 +10:00
Zoltan A. Kocsis 179a4d7acc
docs: add setup instructions for PIDE plug-ins (#319)
Signed-off-by: Zoltan Kocsis <zoltan.kocsis@data61.csiro.au>
2021-08-06 16:33:35 +10:00
Gerwin Klein bd844fbfff github: scheduled external + weekly clean proofs
External means default.xml and vanilla Isabelle instead of internal TS
Isabelle and devel.xml.

The weekly clean test runs without reading the proof image cache,
writing back a fresh cache state.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2021-07-31 08:57:50 +10:00
Miki Tanaka 7648bf01e1 arm/arm_hyp/x64/riscv refine: add a method for setter valid_idle' rules
- in VSpace_R
- the same method added to each arch; would be good to unify via
  arch split in the future
- also includes some style cleanup

Signed-off-by: Miki Tanaka <miki.tanaka@data61.csiro.au>
2021-07-24 12:09:57 +10:00
Miki Tanaka 99223bdb7e riscv crefine: proof fix for idle_tcb'/valid_idle' change
Signed-off-by: Miki Tanaka <miki.tanaka@data61.csiro.au>
2021-07-24 12:09:57 +10:00
Miki Tanaka bfef8d9601 arm InfoFlowC: proof fix for removing magic number cleanup etc
Signed-off-by: Miki Tanaka <miki.tanaka@data61.csiro.au>
2021-07-24 12:09:57 +10:00
Miki Tanaka ff755a945d x64 crefine: fixes for idle_tcb'/valid_idle' change
Signed-off-by: Miki Tanaka <miki.tanaka@data61.csiro.au>
2021-07-24 12:09:57 +10:00
Miki Tanaka fe2329dbb9 arm_hyp crefine: fixes for idle_tcb'/valid_idle' change
Signed-off-by: Miki Tanaka <miki.tanaka@data61.csiro.au>
2021-07-24 12:09:57 +10:00
Mitchell Buckley 376cc707b6 crefine ARM: fixup for recent cleanup
Signed-off-by: Mitchell Buckley <Mitchell.Buckley@data61.csiro.au>
2021-07-24 12:09:57 +10:00
Miki Tanaka 09434ab8ff x64 refine: define valid_idle' directly, without using itcb
Signed-off-by: Miki Tanaka <miki.tanaka@data61.csiro.au>
2021-07-24 12:09:57 +10:00
Miki Tanaka 4da06d81ad armhyp refine: define valid_idle' directly, without using itcb
- this introduces idle_tcb' which is defined directly using tcb fields
- backport from MCS ARM Refine

Signed-off-by: Miki Tanaka <miki.tanaka@data61.csiro.au>
2021-07-24 12:09:57 +10:00
Miki Tanaka d054484474 arm refine: define valid_idle' directly, without using itcb
- introduces idle_tcb' defined using tcb fields
- backport from MCS

Signed-off-by: Miki Tanaka <miki.tanaka@data61.csiro.au>
2021-07-24 12:09:57 +10:00
Miki Tanaka de7c2f7605 riscv refine: define valid_idle' directly, without using itcb
- this introduces idle_tcb' which is defined directly using tcb fields
- backport from MCS ARM Refine

Signed-off-by: Miki Tanaka <miki.tanaka@data61.csiro.au>
2021-07-24 12:09:57 +10:00
Miki Tanaka 4ecf7755f3 arm refine: remove magic numbers from valid_irq_node' and global_refs'
Signed-off-by: Miki Tanaka <miki.tanaka@data61.csiro.au>
2021-07-24 12:09:57 +10:00
Ryan Barry a99a2bf739 various: resolve some existing fixmes
Signed-off-by: Ryan Barry <ryan.barry@unsw.edu.au>
2021-07-22 10:44:43 +10:00
Ryan Barry 0d53d6909f lib+ainvs+access+refine: resolve most of the new fixmes
Signed-off-by: Ryan Barry <ryan.barry@unsw.edu.au>
2021-07-22 10:44:43 +10:00
Ryan Barry c7cb94f8bf run_tests: enable RISCV64 access control test
Signed-off-by: Ryan Barry <ryan.barry@unsw.edu.au>
2021-07-22 10:44:43 +10:00
Ryan Barry 2c03d8cd27 infoflow: misc fixes
Signed-off-by: Ryan Barry <ryan.barry@unsw.edu.au>
2021-07-22 10:44:43 +10:00
Ryan Barry 1fbe4895ed access: update ARM proofs
Signed-off-by: Ryan Barry <ryan.barry@unsw.edu.au>
2021-07-22 10:44:43 +10:00
Ryan Barry cb9249cb4a riscv access: add ExampleSystem
Signed-off-by: Ryan Barry <ryan.barry@unsw.edu.au>
2021-07-22 10:44:43 +10:00
Ryan Barry 9f85f6c2d2 riscv access: add proofs for ADT_AC
Signed-off-by: Ryan Barry <ryan.barry@unsw.edu.au>
2021-07-22 10:44:43 +10:00
Ryan Barry b61aaa7ce6 riscv access: add proofs for Syscall_AC
Signed-off-by: Ryan Barry <ryan.barry@unsw.edu.au>
2021-07-22 10:44:43 +10:00
Ryan Barry 638bc490d2 riscv access: add proofs for DomainSepInv
Signed-off-by: Ryan Barry <ryan.barry@unsw.edu.au>
2021-07-22 10:44:43 +10:00
Ryan Barry c3a88fa901 riscv access: add proofs for Ipc_AC
Signed-off-by: Ryan Barry <ryan.barry@unsw.edu.au>
2021-07-22 10:44:43 +10:00
Ryan Barry 1bf9139886 riscv access: add proofs for Tcb_AC
Signed-off-by: Ryan Barry <ryan.barry@unsw.edu.au>
2021-07-22 10:44:43 +10:00
Ryan Barry 5ea4d2b6ba riscv access: add proofs for Interrupt_AC
Signed-off-by: Ryan Barry <ryan.barry@unsw.edu.au>
2021-07-22 10:44:43 +10:00
Ryan Barry a485d26f23 riscv access: add proofs for Finalise_AC
Signed-off-by: Ryan Barry <ryan.barry@unsw.edu.au>
2021-07-22 10:44:43 +10:00
Ryan Barry ed8971a269 riscv access: add proofs for Arch_AC
Signed-off-by: Ryan Barry <ryan.barry@unsw.edu.au>
2021-07-22 10:44:43 +10:00
Ryan Barry cc5014240d riscv ainvs+access: add proofs for Retype_AC
Signed-off-by: Ryan Barry <ryan.barry@unsw.edu.au>
2021-07-22 10:44:43 +10:00
Ryan Barry 9478264f19 riscv access: add proofs for CNode_AC
Signed-off-by: Ryan Barry <ryan.barry@unsw.edu.au>
2021-07-22 10:44:43 +10:00
Ryan Barry 52abdf42de riscv access: add proofs for Access_AC
Signed-off-by: Ryan Barry <ryan.barry@unsw.edu.au>
2021-07-22 10:44:43 +10:00
Ryan Barry 16e9242665 riscv access: specify riscv access control
Signed-off-by: Ryan Barry <ryan.barry@unsw.edu.au>
2021-07-22 10:44:43 +10:00
Rafal Kolanski 2248d34495 abstract x64+riscv: clean up some Word_Lib imports
These are already imported upstream.

Signed-off-by: Rafal Kolanski <rafal.kolanski@proofcraft.systems>
2021-07-16 23:39:39 +10:00
Mitchell Buckley 2cf89e20c8 Cleanup some FIXMEs in AInvs and related sessions
Mostly moving lemmas up into various lemma bucket theories. Also:
* replace cte_wp_at_eqD with cte_wp_at_norm (equal lemmas)
* pd_shifting_gen generalise pd_shifting' in 2 architectures
* remove some redundant crunch lemmas

Signed-off-by: Mitchell Buckley <Mitchell.Buckley@data61.csiro.au>
2021-07-16 14:13:07 +10:00
Gerwin Klein 115b12f1e2 run_tests: flush output
On GitHub, the output of external processes such as isabelle overtake
the stdout/stderr output of the test driver. Flushing stdout/stderr
in the right spots avoids that.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2021-07-15 13:53:14 +10:00
Gerwin Klein 0ac43566d7 run_tests.py: use colour on github
Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2021-07-15 13:53:14 +10:00
Gerwin Klein d8699b0222 github: provide pull request head
Easier to provide at the call site than trying to extract it from within
the GitHub action.

Signed-off-by: Gerwin Klein <kleing@unsw.edu.au>
2021-07-14 19:25:00 +10:00
Gerwin Klein 92cdf47946 runtests.py: nicer logs on GitHub
Add a folding group for verbose log output if running in a GitHub
context. GITHUB_REPOSITORY will be set for all GitHub contexts we're
interested in.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2021-07-13 21:28:21 +10:00