From 8eee62d388fc04ee72a42fee16034c49a3135b4b Mon Sep 17 00:00:00 2001 From: Florian Albrechtskirchinger Date: Sun, 7 Aug 2022 13:52:43 +0200 Subject: [PATCH] Miscellaneous small fixes (#3643) * serve_header: suppress lgtm warning * serve_header: fix exit code * serve_header: replace deprecated ssl.wrap_socket() * Add checks to unit test readme * Add lgtm configuration file --- .lgtm.yml | 4 ++++ tests/src/unit-readme.cpp | 33 +++++++++++++++--------------- tools/serve_header/serve_header.py | 14 ++++++------- 3 files changed, 27 insertions(+), 24 deletions(-) create mode 100644 .lgtm.yml diff --git a/.lgtm.yml b/.lgtm.yml new file mode 100644 index 000000000..b62f9fb37 --- /dev/null +++ b/.lgtm.yml @@ -0,0 +1,4 @@ +path_classifiers: + thirdparty: + - /tools/amalgamate + - /tools/cpplint diff --git a/tests/src/unit-readme.cpp b/tests/src/unit-readme.cpp index 6d296f02f..00d34c170 100644 --- a/tests/src/unit-readme.cpp +++ b/tests/src/unit-readme.cpp @@ -106,12 +106,10 @@ TEST_CASE("README" * doctest::skip()) json j = "{ \"happy\": true, \"pi\": 3.141 }"_json; // NOLINT(modernize-raw-string-literal) // or even nicer with a raw string literal - auto j2 = R"( - { - "happy": true, - "pi": 3.141 - } - )"_json; + auto j2 = R"({ + "happy": true, + "pi": 3.141 + })"_json; // or explicitly auto j3 = json::parse(R"({"happy": true, "pi": 3.141})"); @@ -160,10 +158,10 @@ TEST_CASE("README" * doctest::skip()) CHECK(foo == true); // other stuff - j.size(); // 3 entries - j.empty(); // false - j.type(); // json::value_t::array - j.clear(); // the array is empty again + CHECK(j.size() == 3); // 3 entries + CHECK_FALSE(j.empty()); // false + CHECK(j.type() == json::value_t::array); // json::value_t::array + j.clear(); // the array is empty again // create an object json o; @@ -172,6 +170,7 @@ TEST_CASE("README" * doctest::skip()) o["baz"] = 3.141; // find an entry + CHECK(o.find("foo") != o.end()); if (o.find("foo") != o.end()) { // there is an entry with key "foo" @@ -266,9 +265,9 @@ TEST_CASE("README" * doctest::skip()) { // a JSON value json j_original = R"({ - "baz": ["one", "two", "three"], - "foo": "bar" - })"_json; + "baz": ["one", "two", "three"], + "foo": "bar" + })"_json; // access members with a JSON pointer (RFC 6901) j_original["/baz/1"_json_pointer]; @@ -276,10 +275,10 @@ TEST_CASE("README" * doctest::skip()) // a JSON patch (RFC 6902) json j_patch = R"([ - { "op": "replace", "path": "/baz", "value": "boo" }, - { "op": "add", "path": "/hello", "value": ["world"] }, - { "op": "remove", "path": "/foo"} - ])"_json; + { "op": "replace", "path": "/baz", "value": "boo" }, + { "op": "add", "path": "/hello", "value": ["world"] }, + { "op": "remove", "path": "/foo"} + ])"_json; // apply the patch json j_result = j_original.patch(j_patch); diff --git a/tools/serve_header/serve_header.py b/tools/serve_header/serve_header.py index 666fa57c3..9844e6800 100755 --- a/tools/serve_header/serve_header.py +++ b/tools/serve_header/serve_header.py @@ -240,7 +240,7 @@ class WorkTrees(FileSystemEventHandler): self.observer.stop() self.observer.join() -class HeaderRequestHandler(SimpleHTTPRequestHandler): +class HeaderRequestHandler(SimpleHTTPRequestHandler): # lgtm[py/missing-call-to-init] def __init__(self, request, client_address, server): """.""" self.worktrees = server.worktrees @@ -388,11 +388,11 @@ if __name__ == '__main__': if https.get('enabled', True): cert_file = https.get('cert_file', 'localhost.pem') key_file = https.get('key_file', 'localhost-key.pem') - ssl.minimum_version = ssl.TLSVersion.TLSv1_3 - ssl.maximum_version = ssl.TLSVersion.MAXIMUM_SUPPORTED - httpd.socket = ssl.wrap_socket(httpd.socket, - certfile=cert_file, keyfile=key_file, - server_side=True, ssl_version=ssl.PROTOCOL_TLS) + ssl_ctx = ssl.create_default_context(ssl.Purpose.CLIENT_AUTH) + ssl_ctx.minimum_version = ssl.TLSVersion.TLSv1_2 + ssl_ctx.maximum_version = ssl.TLSVersion.MAXIMUM_SUPPORTED + ssl_ctx.load_cert_chain(cert_file, key_file) + httpd.socket = ssl_ctx.wrap_socket(httpd.socket, server_side=True) scheme = 'HTTPS' host, port = httpd.socket.getsockname()[:2] log.info(f'serving {scheme} on {host} port {port}') @@ -402,8 +402,8 @@ if __name__ == '__main__': except KeyboardInterrupt: log.info('exiting') except Exception: - log.exception('an error occurred:') ec = 1 + log.exception('an error occurred:') finally: if worktrees is not None: worktrees.stop()