summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Goodliffe <dan@randomdan.homeip.net>2019-01-16 19:32:40 +0000
committerDan Goodliffe <dan@randomdan.homeip.net>2019-02-12 21:10:48 +0000
commite9718cf7acf638f5438715efe43d2740abfa0a6f (patch)
tree582381f39b64ab34391926f8dbd6850336f47dcd
parentExplicitly disable stream operator() of formatter (diff)
downloadlibadhocutil-e9718cf7acf638f5438715efe43d2740abfa0a6f.tar.bz2
libadhocutil-e9718cf7acf638f5438715efe43d2740abfa0a6f.tar.xz
libadhocutil-e9718cf7acf638f5438715efe43d2740abfa0a6f.zip
Enable some clang-tidy checks and fix up accordingly
-rw-r--r--Jamroot.jam4
-rw-r--r--libadhocutil/Jamfile.jam3
-rw-r--r--libadhocutil/buffer.cpp1
-rw-r--r--libadhocutil/curlHandle.cpp5
-rw-r--r--libadhocutil/lexer-regex.cpp8
-rw-r--r--libadhocutil/processPipes.cpp7
-rw-r--r--libadhocutil/unittests/testBuffer.cpp3
-rw-r--r--libadhocutil/unittests/testCompileTimeFormatter.cpp2
-rw-r--r--libadhocutil/unittests/testFileUtils.cpp11
-rw-r--r--libadhocutil/unittests/testResourcePool.cpp1
-rw-r--r--libadhocutil/uriParse.cpp1
11 files changed, 28 insertions, 18 deletions
diff --git a/Jamroot.jam b/Jamroot.jam
index 0ffaffb..6c48dae 100644
--- a/Jamroot.jam
+++ b/Jamroot.jam
@@ -17,6 +17,10 @@ project
<variant>debug:<cxxflags>"-W -Wall -Werror -Wextra"
<variant>coverage:<cxxflags>"--coverage"
<variant>coverage:<linkflags>"--coverage"
+ <toolset>tidy:<checkxx>boost-*
+ <toolset>tidy:<checkxx>bugprone-*
+ <toolset>tidy:<checkxx>clang-*
+ <toolset>tidy:<checkxx>misc-*
;
build-project libadhocutil ;
diff --git a/libadhocutil/Jamfile.jam b/libadhocutil/Jamfile.jam
index 715874c..3bbd3df 100644
--- a/libadhocutil/Jamfile.jam
+++ b/libadhocutil/Jamfile.jam
@@ -8,7 +8,8 @@ lib curl ;
lib dl ;
lib adhocutil :
- [ glob *.ll *.cpp *.ice : bin ]
+ [ glob *.cpp *.ice : bin ]
+ [ obj nvpParse : nvpParse.ll : <include>. <toolset>tidy:<checker>none ]
:
<include>.
<library>Ice++11
diff --git a/libadhocutil/buffer.cpp b/libadhocutil/buffer.cpp
index 934aee5..f0deedc 100644
--- a/libadhocutil/buffer.cpp
+++ b/libadhocutil/buffer.cpp
@@ -223,7 +223,6 @@ Buffer::writeto(char * buf, size_t bufSize, size_t off) const
*buf++ = (**f)[c++];
}
++f;
- off = 0;
}
*buf = '\0';
}
diff --git a/libadhocutil/curlHandle.cpp b/libadhocutil/curlHandle.cpp
index f68eb10..3f0263b 100644
--- a/libadhocutil/curlHandle.cpp
+++ b/libadhocutil/curlHandle.cpp
@@ -112,12 +112,11 @@ void
CurlHandle::checkCurlCode(CURLcode res) const
{
if (res != CURLE_OK) {
- AdHoc::Net::CurlException ce(res, curl_easy_strerror(res), IceUtil::Optional<Ice::Short>());
long http_code = 0;
if (curl_easy_getinfo(curl_handle, CURLINFO_RESPONSE_CODE, &http_code) == CURLE_OK) {
- ce.httpcode = http_code;
+ throw AdHoc::Net::CurlException(res, curl_easy_strerror(res), http_code);
}
- throw ce;
+ throw AdHoc::Net::CurlException(res, curl_easy_strerror(res), IceUtil::None);
}
}
diff --git a/libadhocutil/lexer-regex.cpp b/libadhocutil/lexer-regex.cpp
index 9b2be79..493c823 100644
--- a/libadhocutil/lexer-regex.cpp
+++ b/libadhocutil/lexer-regex.cpp
@@ -10,9 +10,9 @@ namespace AdHoc {
info(nullptr)
{
if (!regex) {
- std::runtime_error e(std::string("Failed to create GRegex: ") + err->message);
+ auto msg = std::string("Failed to create GRegex: ") + err->message;
g_error_free(err);
- throw e;
+ throw std::runtime_error(msg);
}
}
@@ -34,9 +34,9 @@ namespace AdHoc {
}
g_regex_match_full(regex, string, length, position, G_REGEX_MATCH_ANCHORED, &info, &err);
if (err) {
- std::runtime_error e(std::string("Failed to execute regex: ") + err->message);
+ auto msg = std::string("Failed to create GRegex: ") + err->message;
g_error_free(err);
- throw e;
+ throw std::runtime_error(msg);
}
str = string;
return g_match_info_matches(info);
diff --git a/libadhocutil/processPipes.cpp b/libadhocutil/processPipes.cpp
index cca7cce..5e243d5 100644
--- a/libadhocutil/processPipes.cpp
+++ b/libadhocutil/processPipes.cpp
@@ -28,6 +28,9 @@ ProcessPipes::ProcessPipes(const std::vector<std::string> & args, bool i, bool o
out(-1),
error(-1)
{
+ if (args.empty()) {
+ throw std::invalid_argument("args is empty");
+ }
int ipipes[2], opipes[2], epipes[2];
ScopeExit tidyUp;
if (i) {
@@ -76,7 +79,9 @@ ProcessPipes::ProcessPipes(const std::vector<std::string> & args, bool i, bool o
*w++ = strdup(p.c_str());
}
*w = NULL;
- execv(buf[0], buf);
+ if (*buf) {
+ execv(buf[0], buf);
+ }
abort();
break;
}
diff --git a/libadhocutil/unittests/testBuffer.cpp b/libadhocutil/unittests/testBuffer.cpp
index 46a4242..d421443 100644
--- a/libadhocutil/unittests/testBuffer.cpp
+++ b/libadhocutil/unittests/testBuffer.cpp
@@ -9,8 +9,7 @@ BOOST_AUTO_TEST_CASE ( create )
{
Buffer empty;
Buffer copy("const", Buffer::Copy);
- auto nonconst = (char*)malloc(9);
- strcpy(nonconst, "nonconst");
+ auto nonconst = strdup("nonconst");
Buffer use(nonconst, Buffer::Use);
Buffer fre(nonconst, Buffer::Free);
diff --git a/libadhocutil/unittests/testCompileTimeFormatter.cpp b/libadhocutil/unittests/testCompileTimeFormatter.cpp
index 7313252..001349f 100644
--- a/libadhocutil/unittests/testCompileTimeFormatter.cpp
+++ b/libadhocutil/unittests/testCompileTimeFormatter.cpp
@@ -55,6 +55,7 @@ namespace AdHoc {
template<typename P, typename ... Pn>
static void write(stream & s, const P & p, const Pn & ... pn)
{
+ // NOLINTNEXTLINE(bugprone-string-constructor)
std::string d(dashes, '-');
s << d << "( " << p << " )" << d;
StreamWriter::next(s, pn...);
@@ -301,6 +302,7 @@ BOOST_AUTO_TEST_CASE( filestar )
size_t len = 0;
FILE * strm = open_memstream(&buf, &len);
BOOST_REQUIRE(strm);
+ // NOLINTNEXTLINE(misc-non-copyable-objects)
Formatter<formatStringMulti>::write(*strm, "file", "star");
fclose(strm);
BOOST_CHECK_EQUAL(len, 22);
diff --git a/libadhocutil/unittests/testFileUtils.cpp b/libadhocutil/unittests/testFileUtils.cpp
index 0dd61a7..2a823df 100644
--- a/libadhocutil/unittests/testFileUtils.cpp
+++ b/libadhocutil/unittests/testFileUtils.cpp
@@ -44,15 +44,15 @@ T moveTest(P ... p)
return fh;
}
-class X {
+class Base {
public:
- X(AdHoc::FileUtils::FileHandle h) : fh(std::move(h)) { }
+ Base(AdHoc::FileUtils::FileHandle h) : fh(std::move(h)) { }
AdHoc::FileUtils::FileHandle fh;
};
-class Y : public X {
+class Sub : public Base {
public:
- Y(AdHoc::FileUtils::FileHandle h) : X(std::move(h)) { }
+ Sub(AdHoc::FileUtils::FileHandle h) : Base(std::move(h)) { }
};
BOOST_AUTO_TEST_CASE( movePassThrough )
@@ -60,9 +60,10 @@ BOOST_AUTO_TEST_CASE( movePassThrough )
auto f = openfh<AdHoc::FileUtils::FileHandle>();
int ffd = f.fh;
REQUIRE_VALID_FH(f.fh);
- auto y = std::make_unique<Y>(std::move(f));
+ auto y = std::make_unique<Sub>(std::move(f));
BOOST_REQUIRE_EQUAL(y->fh, ffd);
REQUIRE_VALID_FH(y->fh);
+ // NOLINTNEXTLINE(bugprone-use-after-move)
BOOST_REQUIRE_EQUAL(f.fh, -1);
REQUIRE_INVALID_FH(f.fh);
y.reset();
diff --git a/libadhocutil/unittests/testResourcePool.cpp b/libadhocutil/unittests/testResourcePool.cpp
index ddbd57b..a7837b8 100644
--- a/libadhocutil/unittests/testResourcePool.cpp
+++ b/libadhocutil/unittests/testResourcePool.cpp
@@ -151,6 +151,7 @@ BOOST_AUTO_TEST_CASE( discard )
TRP pool;
try {
auto r1 = pool.get();
+ BOOST_REQUIRE(r1);
BOOST_REQUIRE_EQUAL(0, pool.availableCount());
BOOST_REQUIRE_EQUAL(1, pool.inUseCount());
throw std::exception();
diff --git a/libadhocutil/uriParse.cpp b/libadhocutil/uriParse.cpp
index c42f133..2419bb6 100644
--- a/libadhocutil/uriParse.cpp
+++ b/libadhocutil/uriParse.cpp
@@ -168,7 +168,6 @@ namespace AdHoc {
}
len = tmpstr - curstr;
puri->fragment = std::string(curstr, len);
- curstr = tmpstr;
}
}