• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

Alan-Jowett / ebpf-verifier / 18658728485

18 Oct 2025 05:56PM UTC coverage: 88.47% (+0.4%) from 88.11%
18658728485

push

github

elazarg
Bump external/bpf_conformance from `8f3c2fe` to `6fa6a20`

Bumps [external/bpf_conformance](https://github.com/Alan-Jowett/bpf_conformance) from `8f3c2fe` to `6fa6a20`.
- [Release notes](https://github.com/Alan-Jowett/bpf_conformance/releases)
- [Commits](https://github.com/Alan-Jowett/bpf_conformance/compare/8f3c2fe88...<a class=hub.com/Alan-Jowett/ebpf-verifier/commit/6fa6a20ac6fd3612ea9338312a67408687b9f06b">6fa6a20ac)

---
updated-dependencies:
- dependency-name: external/bpf_conformance
  dependency-version: 6fa6a20ac6fd3612ea9338312a67408687b9f06b
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

8954 of 10121 relevant lines covered (88.47%)

18293099.16 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

84.21
/src/string_constraints.hpp
1
// Copyright (c) Prevail Verifier contributors.
2
// SPDX-License-Identifier: MIT
3

4
#pragma once
5

6
#include <optional>
7
#include <set>
8
#include <string>
9
#include <tuple>
10
#include <vector>
11

12
#include "arith/linear_constraint.hpp"
13
#include "crab/interval.hpp"
14

15
namespace prevail {
16
struct StringInvariant {
4,482✔
17
    std::optional<std::set<std::string>> maybe_inv{};
18

19
    StringInvariant() = default;
188✔
20

21
    explicit StringInvariant(std::set<std::string> inv) : maybe_inv(std::move(inv)) {}
256,474✔
22

23
    StringInvariant(const StringInvariant& inv) = default;
218,098✔
24
    StringInvariant& operator=(const StringInvariant& inv) = default;
120✔
25

26
    [[nodiscard]]
27
    bool is_bottom() const {
11,840✔
28
        return !maybe_inv;
11,840✔
29
    }
30
    [[nodiscard]]
31
    bool empty() const {
×
32
        return maybe_inv && maybe_inv->empty();
×
33
    }
34

35
    static StringInvariant top() { return StringInvariant{{}}; }
1,830✔
36
    static StringInvariant bottom() { return StringInvariant{}; }
188✔
37

38
    [[nodiscard]]
39
    const std::set<std::string>& value() const {
4,300✔
40
        if (is_bottom()) {
4,300✔
41
            throw std::runtime_error("cannot iterate bottom");
×
42
        }
43
        return *maybe_inv;
4,300✔
44
    }
45

46
    StringInvariant operator-(const StringInvariant& b) const;
47
    StringInvariant operator+(const StringInvariant& b) const;
48

49
    bool operator==(const StringInvariant& other) const { return maybe_inv == other.maybe_inv; }
2,088✔
50

51
    [[nodiscard]]
52
    bool contains(const std::string& item) const {
4,880✔
53
        return maybe_inv.value().contains(item);
4,880✔
54
    }
55

56
    friend std::ostream& operator<<(std::ostream&, const StringInvariant& inv);
57
};
58

59
struct TypeValueConstraints {
914✔
60
    std::vector<LinearConstraint> type_csts;
61
    std::vector<LinearConstraint> value_csts;
62
};
63

64
TypeValueConstraints parse_linear_constraints(const std::set<std::string>& constraints,
65
                                              std::vector<Interval>& numeric_ranges);
66
} // namespace prevail
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc