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

daisytuner / sdfglib / 17559474002

08 Sep 2025 05:49PM UTC coverage: 61.347% (+2.2%) from 59.145%
17559474002

Pull #219

github

web-flow
Merge 2ae413ec1 into b8fdeb232
Pull Request #219: stdlib Library Nodes and ConstantNodes

424 of 1301 new or added lines in 74 files covered. (32.59%)

89 existing lines in 31 files now uncovered.

9318 of 15189 relevant lines covered (61.35%)

109.36 hits per line

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

66.67
/src/data_flow/tasklet.cpp
1
#include "sdfg/data_flow/tasklet.h"
2

3
#include "sdfg/data_flow/data_flow_graph.h"
4
#include "sdfg/symbolic/symbolic.h"
5

6
namespace sdfg {
7
namespace data_flow {
8

9
Tasklet::Tasklet(
363✔
10
    size_t element_id,
11
    const DebugInfo& debug_info,
12
    const graph::Vertex vertex,
13
    DataFlowGraph& parent,
14
    const TaskletCode code,
15
    const std::string& output,
16
    const std::vector<std::string>& inputs
17
)
18
    : CodeNode(element_id, debug_info, vertex, parent, {output}, inputs), code_(code) {};
363✔
19

20
void Tasklet::validate(const Function& function) const {
164✔
21
    if (arity(this->code_) != this->inputs_.size()) {
164✔
NEW
22
        throw InvalidSDFGException(
×
NEW
23
            "Tasklet: Invalid number of inputs for code " + std::to_string(this->code_) + ": expected " +
×
NEW
24
            std::to_string(arity(this->code_)) + ", got " + std::to_string(this->inputs_.size())
×
25
        );
26
    }
27

28
    auto& graph = this->get_parent();
164✔
29

30
    std::unordered_map<std::string, const AccessNode*> input_names;
164✔
31
    for (auto& iedge : graph.in_edges(*this)) {
401✔
32
        auto& src = static_cast<const AccessNode&>(iedge.src());
237✔
33
        if (input_names.find(src.data()) != input_names.end()) {
237✔
34
            if (input_names.at(src.data()) != &src) {
1✔
35
                throw InvalidSDFGException("Tasklet: Two access nodes with the same data as iedge: " + src.data());
×
36
            }
37
        } else {
1✔
38
            input_names.insert({src.data(), &src});
236✔
39
        }
40
    }
41
}
164✔
42

43
TaskletCode Tasklet::code() const { return this->code_; };
798✔
44

45
const std::string& Tasklet::output() const { return this->outputs_[0]; };
202✔
46

47
std::unique_ptr<DataFlowNode> Tasklet::clone(size_t element_id, const graph::Vertex vertex, DataFlowGraph& parent)
×
48
    const {
NEW
49
    return std::unique_ptr<Tasklet>(
×
NEW
50
        new Tasklet(element_id, this->debug_info_, vertex, parent, this->code_, this->outputs_.at(0), this->inputs_)
×
51
    );
UNCOV
52
};
×
53

54
void Tasklet::replace(const symbolic::Expression& old_expression, const symbolic::Expression& new_expression) {};
2✔
55

56
} // namespace data_flow
57
} // namespace sdfg
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