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

daisytuner / sdfglib / 16345126205

17 Jul 2025 12:29PM UTC coverage: 64.863% (-0.3%) from 65.184%
16345126205

Pull #147

github

web-flow
Merge 28b2c5314 into 56ea48e3e
Pull Request #147: Adds metadata library node

106 of 200 new or added lines in 9 files covered. (53.0%)

1 existing line in 1 file now uncovered.

8717 of 13439 relevant lines covered (64.86%)

176.14 hits per line

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

0.0
/src/data_flow/library_nodes/metadata_node.cpp
1
#include "sdfg/data_flow/library_nodes/metadata_node.h"
2

3
namespace sdfg {
4
namespace data_flow {
5

NEW
6
MetadataNode::MetadataNode(
×
7
    size_t element_id, const DebugInfo& debug_info, const graph::Vertex vertex, DataFlowGraph& parent,
8
    const std::vector<std::string>& outputs, const std::vector<std::string>& inputs,
9
    std::unordered_map<std::string, std::string> metadata
10
)
NEW
11
    : LibraryNode(element_id, debug_info, vertex, parent, LibraryNodeType_Metadata, outputs, inputs, false),
×
NEW
12
      metadata_(metadata) {}
×
13

NEW
14
const std::unordered_map<std::string, std::string>& MetadataNode::metadata() const {
×
NEW
15
    return metadata_;
×
16
}
17

NEW
18
symbolic::SymbolSet MetadataNode::symbols() const {
×
NEW
19
    return symbolic::SymbolSet();
×
20
}
21

NEW
22
std::unique_ptr<DataFlowNode> MetadataNode::clone(size_t element_id, const graph::Vertex vertex, DataFlowGraph& parent) const {
×
NEW
23
    return std::make_unique<MetadataNode>(element_id, debug_info_, vertex, parent, outputs_, inputs_, metadata_);
×
24
}
25

NEW
26
void MetadataNode::replace(const symbolic::Expression& old_expression, const symbolic::Expression& new_expression) {
×
27
    // Do nothing
NEW
28
    return;
×
29
}
30

NEW
31
nlohmann::json MetadataNodeSerializer::serialize(const LibraryNode& library_node) {
×
NEW
32
    const MetadataNode& metadata_node = static_cast<const MetadataNode&>(library_node);
×
NEW
33
    nlohmann::json j;
×
34

NEW
35
    j["code"] = metadata_node.code().value();
×
NEW
36
    j["outputs"] = metadata_node.outputs();
×
NEW
37
    j["inputs"] = metadata_node.inputs();
×
NEW
38
    j["side_effect"] = metadata_node.side_effect();
×
NEW
39
    j["metadata"] = metadata_node.metadata();
×
40

NEW
41
    return j;
×
NEW
42
}
×
43

NEW
44
LibraryNode& MetadataNodeSerializer::deserialize(const nlohmann::json& j,
×
45
                                        builder::StructuredSDFGBuilder& builder,
46
                                        structured_control_flow::Block& parent) {
47
    // Assertions for required fields
NEW
48
    assert(j.contains("element_id"));
×
NEW
49
    assert(j.contains("code"));
×
NEW
50
    assert(j.contains("outputs"));
×
NEW
51
    assert(j.contains("inputs"));
×
NEW
52
    assert(j.contains("debug_info"));
×
NEW
53
    assert(j.contains("metadata"));
×
54

NEW
55
    auto code = j["code"].get<std::string>();
×
NEW
56
    if (code != LibraryNodeType_Metadata.value()) {
×
NEW
57
        throw std::runtime_error("Invalid library node code");
×
58
    }
59

60
    // Extract debug info using JSONSerializer
NEW
61
    sdfg::serializer::JSONSerializer serializer;
×
NEW
62
    DebugInfo debug_info = serializer.json_to_debug_info(j["debug_info"]);
×
63

64
    // Extract properties
NEW
65
    auto outputs = j.at("outputs").get<std::vector<std::string>>();
×
NEW
66
    auto inputs = j.at("inputs").get<std::vector<std::string>>();
×
NEW
67
    auto metadata = j.at("metadata").get<std::unordered_map<std::string, std::string>>();
×
68

NEW
69
    return builder.add_library_node<MetadataNode>(parent, debug_info, outputs, inputs, metadata);
×
NEW
70
}
×
71

NEW
72
MetadataDispatcher::MetadataDispatcher(codegen::LanguageExtension& language_extension, const Function& function,
×
73
                            const DataFlowGraph& data_flow_graph,
74
                            const MetadataNode& node)
NEW
75
    : codegen::LibraryNodeDispatcher(language_extension, function, data_flow_graph, node) {}
×
76

NEW
77
void MetadataDispatcher::dispatch(codegen::PrettyPrinter& stream) {
×
NEW
78
    throw std::runtime_error("MetadataNode is not supported");
×
NEW
79
}
×
80

81
} // namespace data_flow
82
} // 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