Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
374 commits
Select commit Hold shift + click to select a range
9eb343e
Fixes and refactor in Bin, Call, Assume, and Mem transformers
a-hamza-r Sep 13, 2023
fdec8af
Implemented Un, fixed/improved multiple operations
a-hamza-r Sep 26, 2023
1085e8e
Printing fix to fix unnecessary analysis
a-hamza-r Sep 26, 2023
e8289f2
Fixes with handling Assume
a-hamza-r Sep 29, 2023
45a97e4
Implemented stack all numeric in valid access
a-hamza-r Oct 6, 2023
63ddd8e
Fixed issues with Valid Access for all domains
a-hamza-r Oct 6, 2023
a9ffe77
Proper forgetting of registers and stack cells in Call and Un
a-hamza-r Oct 6, 2023
8d85ba7
Implementing scratch caller saved registers, and packet reallocate
a-hamza-r Oct 6, 2023
f044718
Fixed an issue with Un, along with printing it
a-hamza-r Oct 9, 2023
ca7ff86
Implemented ValidDivisor, refactored multiple
a-hamza-r Oct 10, 2023
92c5d26
Refactoring in all domains
a-hamza-r Oct 17, 2023
90e6333
Refactoring: removing unnecessary print option not needed
a-hamza-r Oct 17, 2023
46b44a7
Better checks for Assume across multiple domains
a-hamza-r Oct 20, 2023
4be6248
Disabling the asserts related to checking types
a-hamza-r Oct 20, 2023
c1b7082
Support for null checks for shared ptrs
a-hamza-r Oct 25, 2023
cb55812
Updated tests to add for type domain
a-hamza-r Nov 2, 2023
e389226
Refactoring and simplifying printing functionality
a-hamza-r Nov 14, 2023
6f14855
Making setup_entry method parametric
a-hamza-r Nov 14, 2023
0cc1fe5
Added implementation to support string_invariants
a-hamza-r Nov 14, 2023
a9a26b9
Added support for running tests for type domain
a-hamza-r Nov 27, 2023
78c536b
Added some test cases for type domain
a-hamza-r Nov 27, 2023
0830919
Correctly computing limits for packet region
a-hamza-r Nov 27, 2023
bef2f55
Split interval domain into signed and unsigned
a-hamza-r Dec 26, 2023
f716517
Better handling for bottom/top for multiple domains
a-hamza-r Dec 26, 2023
32d0ce0
Refactoring, and simplifying a check in stack
a-hamza-r Dec 26, 2023
a88419a
Avoid setting to top when handling assume for shared pointers
a-hamza-r Dec 26, 2023
7ac4485
Added a definition of symbols for offset domain
a-hamza-r Mar 25, 2024
e5096fa
Added a definition for expression for offset domain
a-hamza-r Mar 25, 2024
9d2c0f8
Added a definition for constraint for offset domain
a-hamza-r Mar 25, 2024
d9f0014
Added a definition for refinement types
a-hamza-r Mar 25, 2024
684be05
Better printing for offset and interval domains
a-hamza-r Mar 25, 2024
6907f7a
Some fixes in the interval domain
a-hamza-r Mar 25, 2024
7c27531
Added a new offset domain
a-hamza-r Mar 26, 2024
27bf7cd
Fixed initialization of registers state in domains
a-hamza-r Mar 26, 2024
6ec70f6
Activated some run-time checks previously removed
a-hamza-r Mar 28, 2024
f54cd84
Support for precise packet pointers subtraction
a-hamza-r Mar 28, 2024
0d3feae
Better handling for mem_store in offset domain
a-hamza-r Mar 28, 2024
78c8072
Certain case when checking packet access fixed
a-hamza-r Mar 28, 2024
fbed2cd
Added a small heuristic for assume
a-hamza-r Mar 30, 2024
292ce61
Fixed assert type constraint for numbers
a-hamza-r Mar 30, 2024
a3bb3a3
Removing redundant code from offset domain
a-hamza-r Apr 1, 2024
898494f
Bump ebpf-samples from `ce6d479` to `5d65552`
dependabot[bot] Apr 6, 2024
934951e
Stack memory tracking improvements
dthaler Jan 22, 2024
28ce3ea
Revert "Stack memory tracking improvements" (#613)
elazarg Apr 11, 2024
079b180
Gracefully handle a negative size
dthaler Apr 19, 2024
9796b15
Bump external/libbtf from `6e28ce2` to `8536d31`
dependabot[bot] Apr 20, 2024
4944945
Bump external/bpf_conformance from `73b6ea3` to `41ec319`
dependabot[bot] Apr 20, 2024
e107ff7
Only allow aligned loads from stack
a-hamza-r Apr 22, 2024
67ffc1c
Adding support for Atomic operation
a-hamza-r Apr 25, 2024
9b37971
Set the /fsanitize=fuzzer for the compiler
May 2, 2024
b8ac6af
Bump external/libbtf from `8536d31` to `ada4e96`
dependabot[bot] Apr 27, 2024
366b208
Bump external/libbtf from `ada4e96` to `5ae35c7`
dependabot[bot] May 4, 2024
edf88e2
Pickup latest bpf_conformance (#629)
Alan-Jowett May 7, 2024
e382b39
Add checks for malformed EbpfHelperPrototype
May 9, 2024
69d1538
Add test for issue620 (#621)
Alan-Jowett May 9, 2024
42e9991
Add git and ca-certificates to the docker image
viniciusd Mar 18, 2024
64ab8c0
Add MacOS instructions to the README file (#606)
viniciusd May 9, 2024
917fd17
Bump external/bpf_conformance from `35201b4` to `7c2ef8b`
dependabot[bot] May 11, 2024
ef17f7a
Bump ebpf-samples from `038fa47` to `5d65552`
dependabot[bot] May 11, 2024
78a6c82
Stack memory tracking improvements (#614)
dthaler May 12, 2024
07620ad
Permit shared region as key or value for map (#623)
Alan-Jowett May 12, 2024
400f0a7
Add CI/CD workflow to validate YAML files (#618)
dthaler May 13, 2024
ad7a861
Fix YAML lint errors and warnings (#636)
elazarg May 13, 2024
f7f871d
Bump external/bpf_conformance from `7c2ef8b` to `ce95710`
dependabot[bot] May 13, 2024
e3e1efa
Support multiple programs per section (#638)
dthaler May 15, 2024
97a55dd
Bump ebpf-samples from `5d65552` to `b6e7d26`
dependabot[bot] May 18, 2024
01d26e5
Bump external/libbtf from `5ae35c7` to `ab8d59b`
dependabot[bot] May 18, 2024
df34181
Fix BTF line info for sections with multiple programs (#642)
dthaler May 23, 2024
2018df9
bump CLI11 to v2.4.2 and organize usage (#644)
elazarg May 28, 2024
20bdd4a
Bump external/libbtf from `ab8d59b` to `a02cd25`
dependabot[bot] Jun 1, 2024
6721fec
Bump external/bpf_conformance from `ce95710` to `bdd8c3e`
dependabot[bot] Jun 1, 2024
e1beedc
Update docker base image
viniciusd Jun 9, 2024
6d0d7c0
Bump external/libbtf from `a02cd25` to `b2b9eac`
dependabot[bot] Jun 8, 2024
4e68d5e
Bump external/bpf_conformance from `bdd8c3e` to `16c80f4`
dependabot[bot] Jun 8, 2024
372eae7
Bump external/bpf_conformance from `16c80f4` to `252ec2c`
dependabot[bot] Jun 15, 2024
c6dd88b
Bump external/libbtf from `b2b9eac` to `0fe51e6`
dependabot[bot] Jun 15, 2024
8104222
Bump external/libbtf from `0fe51e6` to `0ff1ef7`
dependabot[bot] Jun 22, 2024
cd399bb
Bump external/bpf_conformance from `252ec2c` to `a407af3`
dependabot[bot] Jun 22, 2024
14b27b2
Bump ebpf-samples from `b6e7d26` to `498d2f7`
dependabot[bot] Jun 29, 2024
324ebf0
Fixed a bug that was caused by introducing Atomic Operation
a-hamza-r Jul 8, 2024
19872f1
Some refactoring related to FuncConstraint and Callx
a-hamza-r Apr 25, 2024
55a1997
Removing packet end and packet meta from offset domain registers
a-hamza-r Jul 7, 2024
9b07a54
Refactor
a-hamza-r Jul 7, 2024
3fbfcdc
Simplifications in offset domain
a-hamza-r Jul 8, 2024
1034a62
Removing duplicate lemmas after join operation
a-hamza-r Jul 9, 2024
76e2961
Fixing a seg fault due to slacks not found
a-hamza-r Jul 9, 2024
65c6016
Fixing an issue with simplifying refinements; Refactor
a-hamza-r Jul 9, 2024
5bb2938
Printing slack values, along with other constraints
a-hamza-r Jul 9, 2024
ad8eb63
Removing redundant constraints directly when adding
a-hamza-r Jul 9, 2024
5cebed8
Fix in printing of refinement types
a-hamza-r Jul 9, 2024
dca7021
Bump external/bpf_conformance from `a407af3` to `b8bd0e3`
dependabot[bot] Jul 20, 2024
84fcbe6
Bump external/libbtf from `0ff1ef7` to `f967638`
dependabot[bot] Jul 20, 2024
f090ed5
Bump external/bpf_conformance from `b8bd0e3` to `3e95a39`
dependabot[bot] Aug 3, 2024
f390808
Bump external/libbtf from `f967638` to `b685ba3`
dependabot[bot] Aug 3, 2024
105cb1e
Bump external/bpf_conformance from `3e95a39` to `b975188`
dependabot[bot] Aug 10, 2024
dc2d6ea
Bump external/libbtf from `b685ba3` to `125507b`
dependabot[bot] Aug 10, 2024
cd9344b
Bump external/bpf_conformance from `b975188` to `57db562`
dependabot[bot] Aug 17, 2024
59588d6
Bump external/bpf_conformance from `57db562` to `23d01c2`
dependabot[bot] Aug 24, 2024
e32012a
Bump external/libbtf from `125507b` to `2231942`
dependabot[bot] Aug 24, 2024
559482c
Bump external/bpf_conformance from `23d01c2` to `89c3d74`
dependabot[bot] Aug 31, 2024
37bf146
Statically inline bpf2bpf function calls (#608)
dthaler Sep 2, 2024
3bb5b4e
clang-format
elazarg Sep 3, 2024
40c9079
Use explicit strings in PRINT_CASE
elazarg Sep 3, 2024
525b8b3
sort includes. Don't use TRUE and FALSE
elazarg Sep 3, 2024
8947b92
Bump external/bpf_conformance from `89c3d74` to `b2fc14a`
dependabot[bot] Sep 7, 2024
3275280
Bump external/libbtf from `2231942` to `4d33198`
dependabot[bot] Sep 7, 2024
04f78a9
remove cfg_bgl.hpp
elazarg Sep 8, 2024
d5df1a0
Bump external/bpf_conformance from `b2fc14a` to `62e3f49`
dependabot[bot] Sep 14, 2024
6dc6b83
Bump external/bpf_conformance from `62e3f49` to `7a773b3`
dependabot[bot] Sep 21, 2024
0a56b27
Bump external/libbtf from `4d33198` to `58fcade`
dependabot[bot] Sep 21, 2024
6d5631c
use template for truncation
elazarg Sep 24, 2024
4ee1d77
bump catch2 to v3.7.1
elazarg Sep 24, 2024
0095525
use explicit width for finite width parameters
elazarg Sep 25, 2024
cbe1224
address review comments by coderabbit
elazarg Sep 25, 2024
2ceb6de
address review comments by coderabbit
elazarg Sep 25, 2024
84ab5a0
refactor handling of division
elazarg Sep 25, 2024
3d14be0
use only generic conversion functions
elazarg Sep 25, 2024
47c68ba
cleanup number_t interface and implementation
elazarg Sep 25, 2024
696ee74
consistent weight handling
elazarg Sep 26, 2024
20ab9d5
do not check before truncating
elazarg Sep 26, 2024
519c3cd
hash_value()
elazarg Sep 26, 2024
0852a8c
hash_value()
elazarg Sep 26, 2024
4907f1b
move semantics for extended integers
elazarg Sep 26, 2024
4d0a5a7
cleanup and modernize
elazarg Sep 26, 2024
90182d4
minor
elazarg Sep 26, 2024
feb3d8e
rename bound_t to extended_number everywhere except in interval files
elazarg Sep 26, 2024
c50905b
cleanup and modernize array_domain
elazarg Sep 26, 2024
28a9aee
Support bpf2bpf calls from ELF files (#693)
dthaler Sep 27, 2024
149a915
Cleanup interval bound handling (#692)
elazarg Sep 27, 2024
07a6da0
Cleanup asm_files.cpp (#694)
elazarg Sep 27, 2024
9e5781b
Fail verification on infinite calllocal recursion (#695)
dthaler Sep 28, 2024
f2f9c6c
Bump external/libbtf from `58fcade` to `18569b3`
dependabot[bot] Sep 28, 2024
55bac8e
Bump external/bpf_conformance from `7a773b3` to `8bd493f`
dependabot[bot] Sep 28, 2024
231c98c
simplify lazy_allocator.hpp
elazarg Sep 28, 2024
fba0299
Cleanup wto: cpp+hpp, remove recursive version (#699)
elazarg Sep 29, 2024
12d3121
modernize heap.hpp (#700)
elazarg Sep 29, 2024
7b6a27f
reorganize type domain (#701)
elazarg Sep 29, 2024
6842a10
shorten test names
elazarg Sep 29, 2024
17f2bb9
use get_if instead of holds_alternative to avoid repetition
elazarg Sep 29, 2024
07b546b
cleanup, modernize and silence compiler warnings
elazarg Sep 29, 2024
21818e0
Cleanup and modernize (#706)
elazarg Sep 30, 2024
e6752ba
use the radix_tree_20 fork
elazarg Sep 29, 2024
4147cf6
number_t: rename operator T to narrow<T>
elazarg Sep 30, 2024
db564ae
fetch and use Microsoft.GSL
elazarg Sep 30, 2024
2b849fd
use gsl::narrow on casts outside the main domains
elazarg Sep 30, 2024
3ef3cba
fix narrowing enum on extended_number
elazarg Sep 30, 2024
130ef6c
use gsl::narrow and gsl::narrow_cast in array_domain.cpp
elazarg Sep 30, 2024
1ef02eb
Use gsl::narrow in ebpf_domain.cpp (#709)
elazarg Sep 30, 2024
6d84933
use gsl::narrow in asm files (#710)
elazarg Oct 1, 2024
23e8382
modernize graph_ops.hpp
elazarg Oct 1, 2024
00683a5
use gsl::narrow in asm_marshal.cpp
elazarg Oct 2, 2024
e50f545
Bump external/libbtf from `18569b3` to `eac5f80`
dependabot[bot] Oct 5, 2024
898813a
Bump external/bpf_conformance from `8bd493f` to `0b55764`
dependabot[bot] Oct 5, 2024
86eee70
Bump external/radix_tree from `b1792eb` to `9eedb58`
dependabot[bot] Oct 5, 2024
a2b84ac
Log line info when dumping invariants (#716)
Alan-Jowett Oct 5, 2024
257897c
Fix bpf2bpf bug when multiple branches in a subprogram go to exit (#715)
dthaler Oct 5, 2024
77821c6
Bump external/libbtf from `eac5f80` to `6781bf2`
dependabot[bot] Oct 12, 2024
37e34db
Bump external/bpf_conformance from `0b55764` to `e149d36`
dependabot[bot] Oct 12, 2024
a476ecd
fix: include for yaml-cpp
agurfinkel Oct 12, 2024
3427faa
Option to build tests (#727)
Alan-Jowett Oct 14, 2024
0d1d5c3
When doing module and division, first cast to unsigned 32 bit then pr…
Oct 15, 2024
b369e12
PR feedback
Oct 15, 2024
3656437
clang-format and tidy
elazarg Oct 15, 2024
915978c
Bump ebpf-samples from `498d2f7` to `325cce1`
dependabot[bot] Oct 12, 2024
80ada1c
Update test that used to fail to pass
dthaler Oct 16, 2024
6ea08e0
Add test cases for INTMIN/-1
dthaler Oct 15, 2024
3c9f6c0
Put bpf2bpf caller in a named section
dthaler Oct 2, 2024
c8f085e
Restrict udiv optimization to case where both are singletons
Oct 16, 2024
f14b927
PR feedback
Oct 16, 2024
dd0a8ec
PR feedback
Oct 16, 2024
82f56c1
Fix failing test
Oct 16, 2024
1907bd4
PR feedback
Oct 16, 2024
9f25cee
clang-format and tidy interval.cpp
elazarg Oct 17, 2024
9d0df3b
Reject binary ops where the source is an uninitialized register (#740)
Alan-Jowett Oct 19, 2024
82c440c
Bump external/libbtf from `6781bf2` to `69e0268`
dependabot[bot] Oct 19, 2024
a8207c9
Bump external/bpf_conformance from `e80df99` to `b1b1c21`
dependabot[bot] Oct 19, 2024
17bc9e1
chore: fix readme instructions for generating dot file
jetafese Oct 18, 2024
4832643
Move all yaml related code into test (#750)
Alan-Jowett Oct 20, 2024
e6ceb8f
When including ebpf-verifier as a submodule, default to tests off
Oct 21, 2024
8be5828
Reserve the space for the _succs and _preds in AdaptGraph::growTo
Oct 22, 2024
6f944ff
Fix off-by-one error in stack access check
Oct 23, 2024
3308618
Restrict comparisons with pointers to legal operations (#758)
Alan-Jowett Oct 24, 2024
16e06cf
Havoc register if truncating non-number
Oct 17, 2024
8d83c85
Merge branch 'main' into types-dev
a-hamza-r Nov 1, 2024
553dbe7
Changing "type domain" to "type inference domain"
a-hamza-r Nov 4, 2024
f50e55e
Removed redundant ebpf_proof files
a-hamza-r Nov 4, 2024
0454a19
Fixes in Unary Op
a-hamza-r Nov 12, 2024
653053e
Added the yaml test data for Unary op for types
a-hamza-r Nov 12, 2024
6c6563c
Updated add_types.yml with correct types
a-hamza-r Nov 12, 2024
d006986
Making ebpf_domain_t parametric to abstract_domain_t
a-hamza-r Nov 13, 2024
e6ea980
Updated all benchmarks script
a-hamza-r Nov 19, 2024
e65d7cc
Added the script to run benchmarks with -v
a-hamza-r Nov 19, 2024
c049997
Fixes needed after merge, mainly with Bin op
a-hamza-r Nov 19, 2024
262bda0
Better printing and clean up the printing interface
a-hamza-r Nov 19, 2024
21dfa95
Printing simplification in refinement types
a-hamza-r Nov 20, 2024
b3c870c
Some fixes and refactoring in expression_t class
a-hamza-r Nov 20, 2024
acbf9ca
Some refactoring in constraint_t class
a-hamza-r Nov 20, 2024
a340be0
Refactoring and minor changes
a-hamza-r Nov 20, 2024
db94589
Refactoring in refinement_t class
a-hamza-r Nov 20, 2024
49f63a6
Refactoring in basic classes
a-hamza-r Nov 28, 2024
467451c
Removed redundant ctx representation in region domain
a-hamza-r Nov 29, 2024
87dede5
Standardize names in domains for readability
a-hamza-r Nov 29, 2024
04fdb65
Cleanup in all domains
a-hamza-r Nov 30, 2024
760b716
Refactoring in refinement, expression, constraint, and symbol class
a-hamza-r Nov 30, 2024
2d95301
Changing representation to refinement-related code
a-hamza-r Dec 1, 2024
54a021c
Add ctx to region domain previously removed
a-hamza-r Dec 1, 2024
f4a6a35
Fixing issues with Copy constructors and assignments
a-hamza-r Dec 2, 2024
0479f62
Restructure the entire type inference domain
a-hamza-r Dec 5, 2024
c9ff387
Fixed error reporting caused by last comment
a-hamza-r Dec 5, 2024
657545e
initial support for inclusion/widen operations
a-hamza-r Jul 5, 2024
c49fca6
Adding full but imprecise support for widen
a-hamza-r Dec 2, 2024
9314447
Support 64-bit immediate instruction for relocation
a-hamza-r Nov 22, 2024
8d8c2e2
Removing some extra error messages
a-hamza-r Dec 10, 2024
4bdfda4
Adding the GE and LT cases to Assume in Offset D
a-hamza-r Dec 10, 2024
b7e86a7
Added a very specific heuristic
a-hamza-r Dec 10, 2024
26cf8cf
Refactoring
a-hamza-r Jun 20, 2025
3d4ab52
Refactoring: cleanups and some comments added
a-hamza-r Jun 21, 2025
7b32b22
Refactoring in multiple segments
a-hamza-r Jun 22, 2025
d0a3158
Refactoring in ValidAccess function
a-hamza-r Jun 22, 2025
899b8a8
Refactoring in multiple transfer functions
a-hamza-r Jun 22, 2025
4d562ef
Refactoring: Better, cleaner reasoning in Call
a-hamza-r Jun 22, 2025
9f8d2e1
Refactoring: Better Mem load and store reasoning, and error reporting
a-hamza-r Jun 22, 2025
53dbbc8
Refactoring: Cleaning up Atomic
a-hamza-r Jun 22, 2025
3ffb86e
Refactoring: Cleanup in LoadMapFd and LoadVariable
a-hamza-r Jun 22, 2025
8f38d6a
Refactoring: Cleanup in ValidMapKey
a-hamza-r Jun 22, 2025
425411b
Refactor: Minor change in an error text
a-hamza-r Jun 22, 2025
18034a4
Refactoring in Bin transformer
a-hamza-r Jun 23, 2025
5efc528
Changes in Assume function
a-hamza-r Jun 23, 2025
4a6d2af
Refactoring in Refinement, expression, constraint, symbol class
a-hamza-r Jun 24, 2025
d5f5e75
Fixed ValidAccess check issues in Packet
a-hamza-r Jun 25, 2025
6b0c9b8
Fixed Memory operations issues
a-hamza-r Jun 25, 2025
9fa13e7
Fixed Bin operation issues
a-hamza-r Jun 25, 2025
aa2e32f
Fixed issues with Shared Ptr nullness initialization and updates
a-hamza-r Jun 25, 2025
2f210d7
Small refactor
a-hamza-r Jun 25, 2025
f3e4f7c
Fixed incorrect reporting of error in Comparable
a-hamza-r Jun 25, 2025
4a49e2d
Fixed the functionality for detecting non-numeric stack access
a-hamza-r Jun 25, 2025
f2910dc
Fixed solving some trivial constraints which do not contain pkt symbols
a-hamza-r Jun 25, 2025
c6cc6ba
Fixed error while checking ctx loads
a-hamza-r Jun 25, 2025
9f9eb73
Removed a redundant error reporting
a-hamza-r Jun 25, 2025
d535452
Removed a redundant error
a-hamza-r Jun 25, 2025
66a125f
Changed how add and subtract on refinements is done
a-hamza-r Jun 25, 2025
ca65852
Fixed nullness for ptr in LoadVariable function
a-hamza-r Jun 26, 2025
aa6d824
Added checks for checking bottom intervals, but disabled
a-hamza-r Jun 26, 2025
c344e89
Removed creating top interval refinements with slacks
a-hamza-r Jun 26, 2025
3755f2b
Removed the check for min width for pointer joins
a-hamza-r Jun 26, 2025
3a18d66
Refactoring in Assume function
a-hamza-r Jun 26, 2025
4b372ae
Better printing for initial and in-instruction types
a-hamza-r Jun 26, 2025
a7fba2a
Better printing of types
a-hamza-r Jun 27, 2025
5039042
Added proper printing for Call instruction annotations
a-hamza-r Jun 27, 2025
ef5fe11
Small print change
a-hamza-r Jun 27, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion .clang-format
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@ AlwaysBreakTemplateDeclarations: Yes
AllowShortCaseLabelsOnASingleLine: true
PointerAlignment: Left
AlignEscapedNewlines: Left
#BreakAfterAttributes: Always
BreakAfterAttributes: Always
PenaltyReturnTypeOnItsOwnLine: 60
AlwaysBreakAfterReturnType: None
Cpp11BracedListStyle: true
BreakBeforeBraces: Attach
InsertBraces: true
2 changes: 1 addition & 1 deletion .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
#
# For documentation on the format of this file, see
# https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file

---
version: 2
updates:

Expand Down
32 changes: 26 additions & 6 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
---
name: CPP CI

on:
"on":
pull_request:
paths-ignore:
- '**.md'
Expand All @@ -17,6 +18,7 @@ jobs:
strategy:
matrix:
configurations: [Debug, Release]
target: [tests, library]
runs-on: ubuntu-latest
env:
# Configuration type to build. For documentation on how build matrices work, see
Expand All @@ -26,22 +28,34 @@ jobs:
steps:
- name: Install dependencies
run: |
sudo apt install libboost-dev libboost-filesystem-dev libboost-program-options-dev libyaml-cpp-dev valgrind
sudo apt-get update
sudo apt install libboost-dev libboost-filesystem-dev libboost-program-options-dev

- uses: actions/checkout@v3
- name: Install test dependencies
if: ${{matrix.target == 'tests'}}
run: |
sudo apt install libyaml-cpp-dev valgrind

- uses: actions/checkout@v4
with:
submodules: 'recursive'

- name: Build
run: |
mkdir build
cmake -B build -DCMAKE_BUILD_TYPE=${{env.BUILD_CONFIGURATION}}
if [ "${{matrix.target}}" = "library" ]; then
cmake -B build -DCMAKE_BUILD_TYPE=${{env.BUILD_CONFIGURATION}} -DVERIFIER_ENABLE_TESTS=OFF
else
cmake -B build -DCMAKE_BUILD_TYPE=${{env.BUILD_CONFIGURATION}} -DVERIFIER_ENABLE_TESTS=ON
fi
cmake --build build -j $(nproc)

- name: Run unit tests
if: ${{matrix.target == 'tests'}}
run: ./tests -d yes

- name: Test for memory leaks
if: ${{matrix.target == 'tests'}}
# Any memory leaks will cause the test to fail
# This BPF program was chosen because it is the largest one in the repo
run: valgrind --leak-check=full --errors-for-leak-kinds=all --show-leak-kinds=all --error-exitcode=1 ./check ebpf-samples/cilium/bpf_xdp_snat_linux_v1.o 2/1
Expand All @@ -50,22 +64,28 @@ jobs:
strategy:
matrix:
configurations: [Debug, Release]
target: [tests, library]
runs-on: windows-2022
env:
# Configuration type to build. For documentation on how build matrices work, see
# https://docs.github.com/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
BUILD_CONFIGURATION: ${{matrix.configurations}}

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
submodules: 'recursive'

- name: Build
run: |
mkdir build
cmake -B build
if ("${{matrix.target}}" -eq "library") {
cmake -B build -DVERIFIER_ENABLE_TESTS=OFF
} else {
cmake -B build -DVERIFIER_ENABLE_TESTS=ON
}
cmake --build build -j $(nproc) --config ${{env.BUILD_CONFIGURATION}}

- name: Run unit tests
if: ${{matrix.target == 'tests'}}
run: ./${{env.BUILD_CONFIGURATION}}/tests -d yes
73 changes: 37 additions & 36 deletions .github/workflows/codeql-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,15 @@
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
#
---
name: "CodeQL"

on:
"on":
push:
branches: [ main ]
branches: [main]
pull_request:
# The branches below must be a subset of the branches above
branches: [ main ]
branches: [main]
schedule:
- cron: '43 12 * * 2'

Expand All @@ -28,46 +29,46 @@ jobs:
strategy:
fail-fast: false
matrix:
language: [ 'cpp' ]
language: ['cpp']
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ]
# Learn more:
# https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed

steps:
- name: Checkout repository
uses: actions/checkout@v3
with:
submodules: 'recursive'
- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: 'recursive'

# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v2
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# queries: ./path/to/local/query, your-org/your-repo/queries@main
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# queries: ./path/to/local/query, your-org/your-repo/queries@main

# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
# - name: Autobuild
# uses: github/codeql-action/autobuild@v1
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
# - name: Autobuild
# uses: github/codeql-action/autobuild@v1

# ℹ️ Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
# ℹ️ Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl

# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
# and modify them (or add more) to build your code if your project
# uses a compiled language
- name: Install dependencies
run: |
sudo apt install libboost-dev libboost-filesystem-dev libboost-program-options-dev libyaml-cpp-dev

- run: |
mkdir build
cmake -B build -DCMAKE_BUILD_TYPE=Debug
cmake --build build -j $(nproc)
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
# and modify them (or add more) to build your code if your project
# uses a compiled language
- name: Install dependencies
run: |
sudo apt install libboost-dev libboost-filesystem-dev libboost-program-options-dev libyaml-cpp-dev

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2
- run: |
mkdir build
cmake -B build -DCMAKE_BUILD_TYPE=Debug
cmake --build build -j $(nproc)

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
20 changes: 10 additions & 10 deletions .github/workflows/coverage.yml
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
# Copyright (c) Prevail Verifier contributors.
# SPDX-License-Identifier: MIT

---
name: CPP Code Coverage

on:
"on":
push:
branches: [ main ]
branches: [main]
pull_request:
branches: [ main ]
branches: [main]

jobs:
build_ubuntu:
Expand All @@ -26,7 +26,7 @@ jobs:
sudo apt install libboost-dev libboost-filesystem-dev libboost-program-options-dev libyaml-cpp-dev lcov
pip install gcovr

- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
submodules: 'recursive'

Expand Down Expand Up @@ -55,8 +55,8 @@ jobs:
needs: build_ubuntu
runs-on: ubuntu-20.04
steps:
- name: Coveralls Finished
uses: coverallsapp/github-action@master
with:
github-token: ${{ secrets.github_token }}
parallel-finished: true
- name: Coveralls Finished
uses: coverallsapp/github-action@master
with:
github-token: ${{ secrets.github_token }}
parallel-finished: true
30 changes: 30 additions & 0 deletions .github/workflows/validate-yaml.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# Copyright (c) Prevail Verifier contributors.
# SPDX-License-Identifier: MIT
#
# For documentation on the github environment, see
# https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners
#
# For documentation on the syntax of this file, see
# https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions
---
name: Validate-YAML

"on":
push:
branches: [main]
pull_request:
branches: [main]

permissions:
contents: read

jobs:
validate-yaml:
runs-on: ubuntu-latest

steps:
- name: Checkout GEDCOM.io
uses: actions/checkout@v4

- name: Validate YAML
run: yamllint . .github .github/workflows test-data
5 changes: 1 addition & 4 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,7 @@
url = https://github.com/vbpf/ebpf-samples.git
[submodule "external/radix_tree"]
path = external/radix_tree
url = https://github.com/ytakano/radix_tree
[submodule "external/ELFIO"]
path = external/ELFIO
url = https://github.com/serge1/ELFIO.git
url = https://github.com/elazarg/radix_tree_20
[submodule "external/bpf_conformance"]
path = external/bpf_conformance
url = https://github.com/Alan-Jowett/bpf_conformance.git
Expand Down
10 changes: 10 additions & 0 deletions .yamllint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Copyright (c) Prevail Verifier contributors.
# SPDX-License-Identifier: MIT
#
# Configuration file for yamllint. For documentation, see
# https://yamllint.readthedocs.io/en/stable/configuration.html
---
extends: default

rules:
line-length: disable
Loading