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

mendersoftware / mender / 1001210836

12 Sep 2023 01:20PM UTC coverage: 79.201% (+0.09%) from 79.112%
1001210836

push

gitlab-ci

vpodzime
feat: Add support for signals delivering two strings

Ticket: MEN-6651
Changelog: none
Signed-off-by: Vratislav Podzimek <v.podzimek@mykolab.com>

5731 of 7236 relevant lines covered (79.2%)

256.26 hits per line

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

56.0
/common/processes/processes.cpp
1
// Copyright 2023 Northern.tech AS
2
//
3
//    Licensed under the Apache License, Version 2.0 (the "License");
4
//    you may not use this file except in compliance with the License.
5
//    You may obtain a copy of the License at
6
//
7
//        http://www.apache.org/licenses/LICENSE-2.0
8
//
9
//    Unless required by applicable law or agreed to in writing, software
10
//    distributed under the License is distributed on an "AS IS" BASIS,
11
//    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
//    See the License for the specific language governing permissions and
13
//    limitations under the License.
14

15
#include <common/processes.hpp>
16

17
#include <common/log.hpp>
18
#include <common/common.hpp>
19

20
namespace mender {
21
namespace common {
22
namespace processes {
23

24
namespace log = mender::common::log;
25

26
const chrono::seconds DEFAULT_GENERATE_LINE_DATA_TIMEOUT {10};
27

28
const ProcessesErrorCategoryClass ProcessesErrorCategory;
29

30
const char *ProcessesErrorCategoryClass::name() const noexcept {
×
31
        return "ProcessesErrorCategory";
×
32
}
33

34
string ProcessesErrorCategoryClass::message(int code) const {
50✔
35
        switch (code) {
50✔
36
        case NoError:
×
37
                return "Success";
×
38
        case SpawnError:
×
39
                return "Spawn error";
×
40
        case ProcessAlreadyStartedError:
×
41
                return "Process already started";
×
42
        case NonZeroExitStatusError:
50✔
43
                return "Process returned non-zero exit status";
50✔
44
        }
45
        assert(false);
×
46
        return "Unknown";
47
}
48

49
error::Error MakeError(ProcessesErrorCode code, const string &msg) {
191✔
50
        return error::Error(error_condition(code, ProcessesErrorCategory), msg);
382✔
51
};
52

53
void OutputHandler::operator()(const char *data, size_t size) {
110✔
54
        if (size == 0) {
110✔
55
                return;
×
56
        }
57
        // Get rid of exactly one trailing newline, if there is one. This is because
58
        // we unconditionally print one at the end of every log line. If the string
59
        // does not contain a trailing newline, add a "{...}" instead, since we
60
        // cannot avoid breaking the line apart then.
61
        string content(data, size);
220✔
62
        if (content.back() == '\n') {
110✔
63
                content.pop_back();
110✔
64
        } else {
65
                content.append("{...}");
×
66
        }
67
        auto lines = mender::common::SplitString(content, "\n");
330✔
68
        for (auto line : lines) {
223✔
69
                log::Info(prefix + line);
113✔
70
        }
71
}
72

73
} // namespace processes
74
} // namespace common
75
} // namespace mender
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

© 2025 Coveralls, Inc