From e9718cf7acf638f5438715efe43d2740abfa0a6f Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Wed, 16 Jan 2019 19:32:40 +0000 Subject: Enable some clang-tidy checks and fix up accordingly --- Jamroot.jam | 4 ++++ libadhocutil/Jamfile.jam | 3 ++- libadhocutil/buffer.cpp | 1 - libadhocutil/curlHandle.cpp | 5 ++--- libadhocutil/lexer-regex.cpp | 8 ++++---- libadhocutil/processPipes.cpp | 7 ++++++- libadhocutil/unittests/testBuffer.cpp | 3 +-- libadhocutil/unittests/testCompileTimeFormatter.cpp | 2 ++ libadhocutil/unittests/testFileUtils.cpp | 11 ++++++----- libadhocutil/unittests/testResourcePool.cpp | 1 + libadhocutil/uriParse.cpp | 1 - 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 debug:"-W -Wall -Werror -Wextra" coverage:"--coverage" coverage:"--coverage" + tidy:boost-* + tidy:bugprone-* + tidy:clang-* + tidy: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 : . tidy:none ] : . 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()); 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 & 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 & 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 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::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(); int ffd = f.fh; REQUIRE_VALID_FH(f.fh); - auto y = std::make_unique(std::move(f)); + auto y = std::make_unique(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; } } -- cgit v1.2.3