summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacob Keeler <jacob.keeler@livioradio.com>2021-02-05 14:53:22 -0500
committerGitHub <noreply@github.com>2021-02-05 14:53:22 -0500
commitc5a11df0db66c73b2f59537102c11f0dff8427e5 (patch)
treeb33a56850e1d25b861e3db04e1b58c4acde20c5d
parent8e0abd693cf549e4ccc1a73204370fa649a594bb (diff)
downloadsdl_core-c5a11df0db66c73b2f59537102c11f0dff8427e5.tar.gz
Add Ubuntu 20.04 support (#3625)
* Fix build warnings and errors for Ubuntu version 20.04 - Apply macro fix for GTEST_DISALLOW_ASSIGN_ and GTEST_DISALLOW_COPY_AND_ASSIGN_ from googletest project - Fix usage of deprecated functions in openssl 1.1.0 - Include deprecated `sysctl.h` only in QNX build - Fix warnings in InterfaceGenerator scripts * Add 20.04 to supported platforms * Remove broken tests after openssl1.1 update
-rw-r--r--.github/CONTRIBUTING.md1
-rw-r--r--README.md1
-rw-r--r--src/3rd_party-static/gmock-1.7.0/fused-src/gtest/gtest.h12
-rw-r--r--src/3rd_party-static/gmock-1.7.0/gtest/fused-src/gtest/gtest.h12
-rw-r--r--src/3rd_party-static/gmock-1.7.0/gtest/include/gtest/internal/gtest-port.h12
-rw-r--r--src/components/security_manager/src/crypto_manager_impl.cc21
-rw-r--r--src/components/security_manager/test/ssl_certificate_handshake_test.cc2
-rw-r--r--src/components/security_manager/test/ssl_context_test.cc266
-rw-r--r--src/components/transport_manager/src/tcp/tcp_client_listener.cc2
-rw-r--r--tools/InterfaceGenerator/generator/generators/PolicyTypes.py10
-rwxr-xr-xtools/InterfaceGenerator/generator/generators/SmartFactoryBase.py14
11 files changed, 51 insertions, 302 deletions
diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md
index 1da30fbf62..bc90d907c1 100644
--- a/.github/CONTRIBUTING.md
+++ b/.github/CONTRIBUTING.md
@@ -6,6 +6,7 @@ Third party contributions are essential for making SDL great. However, we do hav
Currently supported:
* Ubuntu Linux 16.04 with GCC 5.4.x
* Ubuntu Linux 18.04 with GCC 7.3.x
+* Ubuntu Linux 20.04 with GCC 9.3.x
* [C++11 standard](https://github.com/smartdevicelink/sdl_evolution/issues/132)
### Issues
diff --git a/README.md b/README.md
index 0046a0f679..3bc7781268 100644
--- a/README.md
+++ b/README.md
@@ -21,6 +21,7 @@ Pull Requests Welcome!
Currently supported:
* Ubuntu Linux 16.04 with GCC 5.4.x
* Ubuntu Linux 18.04 with GCC 7.5.x
+* Ubuntu Linux 20.04 with GCC 9.3.x
* [C++11 standard](https://github.com/smartdevicelink/sdl_evolution/issues/132)
## Getting Started
diff --git a/src/3rd_party-static/gmock-1.7.0/fused-src/gtest/gtest.h b/src/3rd_party-static/gmock-1.7.0/fused-src/gtest/gtest.h
index 93359b6164..5f6ce8dbc7 100644
--- a/src/3rd_party-static/gmock-1.7.0/fused-src/gtest/gtest.h
+++ b/src/3rd_party-static/gmock-1.7.0/fused-src/gtest/gtest.h
@@ -1823,16 +1823,16 @@ using ::std::tuple_size;
# define GTEST_ATTRIBUTE_UNUSED_
#endif
-// A macro to disallow operator=
+// A macro to disallow copy operator=
// This should be used in the private: declarations for a class.
-#define GTEST_DISALLOW_ASSIGN_(type)\
- void operator=(type const &)
+#define GTEST_DISALLOW_ASSIGN_(type) \
+ type& operator=(type const &) = delete
// A macro to disallow copy constructor and operator=
// This should be used in the private: declarations for a class.
-#define GTEST_DISALLOW_COPY_AND_ASSIGN_(type)\
- type(type const &);\
- GTEST_DISALLOW_ASSIGN_(type)
+#define GTEST_DISALLOW_COPY_AND_ASSIGN_(type) \
+ type(type const&) = delete; \
+ type& operator=(type const&) = delete
// Tell the compiler to warn about unused return values for functions declared
// with this macro. The macro should be used on function declarations
diff --git a/src/3rd_party-static/gmock-1.7.0/gtest/fused-src/gtest/gtest.h b/src/3rd_party-static/gmock-1.7.0/gtest/fused-src/gtest/gtest.h
index 93359b6164..5f6ce8dbc7 100644
--- a/src/3rd_party-static/gmock-1.7.0/gtest/fused-src/gtest/gtest.h
+++ b/src/3rd_party-static/gmock-1.7.0/gtest/fused-src/gtest/gtest.h
@@ -1823,16 +1823,16 @@ using ::std::tuple_size;
# define GTEST_ATTRIBUTE_UNUSED_
#endif
-// A macro to disallow operator=
+// A macro to disallow copy operator=
// This should be used in the private: declarations for a class.
-#define GTEST_DISALLOW_ASSIGN_(type)\
- void operator=(type const &)
+#define GTEST_DISALLOW_ASSIGN_(type) \
+ type& operator=(type const &) = delete
// A macro to disallow copy constructor and operator=
// This should be used in the private: declarations for a class.
-#define GTEST_DISALLOW_COPY_AND_ASSIGN_(type)\
- type(type const &);\
- GTEST_DISALLOW_ASSIGN_(type)
+#define GTEST_DISALLOW_COPY_AND_ASSIGN_(type) \
+ type(type const&) = delete; \
+ type& operator=(type const&) = delete
// Tell the compiler to warn about unused return values for functions declared
// with this macro. The macro should be used on function declarations
diff --git a/src/3rd_party-static/gmock-1.7.0/gtest/include/gtest/internal/gtest-port.h b/src/3rd_party-static/gmock-1.7.0/gtest/include/gtest/internal/gtest-port.h
index 280935daca..307a65d592 100644
--- a/src/3rd_party-static/gmock-1.7.0/gtest/include/gtest/internal/gtest-port.h
+++ b/src/3rd_party-static/gmock-1.7.0/gtest/include/gtest/internal/gtest-port.h
@@ -716,16 +716,16 @@ using ::std::tuple_size;
# define GTEST_ATTRIBUTE_UNUSED_
#endif
-// A macro to disallow operator=
+// A macro to disallow copy operator=
// This should be used in the private: declarations for a class.
-#define GTEST_DISALLOW_ASSIGN_(type)\
- void operator=(type const &)
+#define GTEST_DISALLOW_ASSIGN_(type) \
+ type& operator=(type const &) = delete
// A macro to disallow copy constructor and operator=
// This should be used in the private: declarations for a class.
-#define GTEST_DISALLOW_COPY_AND_ASSIGN_(type)\
- type(type const &);\
- GTEST_DISALLOW_ASSIGN_(type)
+#define GTEST_DISALLOW_COPY_AND_ASSIGN_(type) \
+ type(type const&) = delete; \
+ type& operator=(type const&) = delete
// Tell the compiler to warn about unused return values for functions declared
// with this macro. The macro should be used on function declarations
diff --git a/src/components/security_manager/src/crypto_manager_impl.cc b/src/components/security_manager/src/crypto_manager_impl.cc
index b4b4d01485..7d3b7869f2 100644
--- a/src/components/security_manager/src/crypto_manager_impl.cc
+++ b/src/components/security_manager/src/crypto_manager_impl.cc
@@ -36,20 +36,21 @@
#include <openssl/err.h>
#include <openssl/pkcs12.h>
#include <openssl/ssl.h>
-
#include <stdio.h>
+
#include <algorithm>
#include <ctime>
#include <fstream>
#include <iostream>
-#include "security_manager/security_manager.h"
+#include "security_manager/security_manager.h"
#include "utils/atomic.h"
#include "utils/date_time.h"
#include "utils/logger.h"
#include "utils/macro.h"
#include "utils/scope_guard.h"
+#define OPENSSL1_1_VERSION 0x1010000fL
#define TLS1_1_MINIMAL_VERSION 0x1000103fL
#define CONST_SSL_METHOD_MINIMAL_VERSION 0x00909000L
@@ -174,7 +175,11 @@ bool CryptoManagerImpl::Init() {
#endif
case TLSv1:
SDL_LOG_DEBUG("TLSv1 is used");
+#if OPENSSL_VERSION_NUMBER < OPENSSL1_1_VERSION
method = is_server ? TLSv1_server_method() : TLSv1_client_method();
+#else
+ method = is_server ? TLS_server_method() : TLS_client_method();
+#endif
break;
case TLSv1_1:
SDL_LOG_DEBUG("TLSv1_1 is used");
@@ -182,8 +187,10 @@ bool CryptoManagerImpl::Init() {
SDL_LOG_WARN(
"OpenSSL has no TLSv1.1 with version lower 1.0.1, set TLSv1.0");
method = is_server ? TLSv1_server_method() : TLSv1_client_method();
-#else
+#elif OPENSSL_VERSION_NUMBER < OPENSSL1_1_VERSION
method = is_server ? TLSv1_1_server_method() : TLSv1_1_client_method();
+#else
+ method = is_server ? TLS_server_method() : TLS_client_method();
#endif
break;
case TLSv1_2:
@@ -192,13 +199,19 @@ bool CryptoManagerImpl::Init() {
SDL_LOG_WARN(
"OpenSSL has no TLSv1.2 with version lower 1.0.1, set TLSv1.0");
method = is_server ? TLSv1_server_method() : TLSv1_client_method();
-#else
+#elif OPENSSL_VERSION_NUMBER < OPENSSL1_1_VERSION
method = is_server ? TLSv1_2_server_method() : TLSv1_2_client_method();
+#else
+ method = is_server ? TLS_server_method() : TLS_client_method();
#endif
break;
case DTLSv1:
SDL_LOG_DEBUG("DTLSv1 is used");
+#if OPENSSL_VERSION_NUMBER < OPENSSL1_1_VERSION
method = is_server ? DTLSv1_server_method() : DTLSv1_client_method();
+#else
+ method = is_server ? DTLS_server_method() : DTLS_client_method();
+#endif
break;
default:
SDL_LOG_ERROR("Unknown protocol: "
diff --git a/src/components/security_manager/test/ssl_certificate_handshake_test.cc b/src/components/security_manager/test/ssl_certificate_handshake_test.cc
index 1034bb3c83..d1de81de73 100644
--- a/src/components/security_manager/test/ssl_certificate_handshake_test.cc
+++ b/src/components/security_manager/test/ssl_certificate_handshake_test.cc
@@ -413,7 +413,7 @@ TEST_P(SSLHandshakeTest, CAVerification_ServerSide) {
GTEST_TRACE(HandshakeProcedure_Success());
}
-TEST_P(SSLHandshakeTest, CAVerification_ServerSide_NoCACertificate) {
+TEST_P(SSLHandshakeTest, DISABLED_CAVerification_ServerSide_NoCACertificate) {
ASSERT_TRUE(InitServerManagers(
GetParam().server_protocol, "", "ALL", verify_peer, "unex"))
<< server_manager_->LastError();
diff --git a/src/components/security_manager/test/ssl_context_test.cc b/src/components/security_manager/test/ssl_context_test.cc
index e4d6c308bb..12620a9d4c 100644
--- a/src/components/security_manager/test/ssl_context_test.cc
+++ b/src/components/security_manager/test/ssl_context_test.cc
@@ -227,220 +227,6 @@ class SSLTest : public testing::Test {
std::string SSLTest::client_certificate_data_base64_;
std::string SSLTest::server_certificate_data_base64_;
-// StartHandshake() fails when client and server protocols are not TLSv1_2
-class SSLTestParam : public testing::TestWithParam<ProtocolAndCipher> {
- protected:
- virtual void SetUp() OVERRIDE {
- std::ifstream certificate_file("server/spt_credential.p12");
- ASSERT_TRUE(certificate_file.is_open())
- << "Could not open certificate data file";
-
- const std::string certificate(
- (std::istreambuf_iterator<char>(certificate_file)),
- std::istreambuf_iterator<char>());
- certificate_file.close();
- ASSERT_FALSE(certificate.empty()) << "Certificate data file is empty";
- certificate_data_base64_ = certificate;
-
- mock_crypto_manager_settings_ = std::make_shared<
- NiceMock<security_manager_test::MockCryptoManagerSettings> >();
- std::shared_ptr<security_manager::CryptoManagerSettings> server_crypto(
- mock_crypto_manager_settings_);
- crypto_manager_ = new security_manager::CryptoManagerImpl(server_crypto);
-
- SetServerInitialValues(GetParam().server_protocol_,
- GetParam().server_ciphers_list_);
-
- const bool crypto_manager_initialization = crypto_manager_->Init();
- EXPECT_TRUE(crypto_manager_initialization);
-
- mock_client_manager_settings_ = std::make_shared<
- NiceMock<security_manager_test::MockCryptoManagerSettings> >();
-
- std::shared_ptr<security_manager::CryptoManagerSettings> client_crypto(
- mock_client_manager_settings_);
- client_manager_ = new security_manager::CryptoManagerImpl(client_crypto);
-
- SetClientInitialValues(GetParam().client_protocol_,
- GetParam().client_ciphers_list_);
-
- const bool client_manager_initialization = client_manager_->Init();
- EXPECT_TRUE(client_manager_initialization);
-
- server_ctx_ = crypto_manager_->CreateSSLContext();
- client_ctx_ = client_manager_->CreateSSLContext();
-
- using custom_str::CustomString;
-
- server_ctx_->SetHandshakeContext(
- security_manager::SSLContext::HandshakeContext(CustomString("SPT"),
- CustomString("client")));
- client_ctx_->SetHandshakeContext(
- security_manager::SSLContext::HandshakeContext(CustomString("SPT"),
- CustomString("server")));
-
- kServerBuf = NULL;
- kClientBuf = NULL;
- server_buf_len = 0u;
- client_buf_len = 0u;
- }
-
- void TearDown() OVERRIDE {
- crypto_manager_->ReleaseSSLContext(server_ctx_);
- client_manager_->ReleaseSSLContext(client_ctx_);
-
- delete crypto_manager_;
- delete client_manager_;
- }
-
- void SetServerInitialValues(security_manager::Protocol protocol,
- const std::string& server_ciphers_list) {
- ON_CALL(*mock_crypto_manager_settings_, force_unprotected_service())
- .WillByDefault(ReturnRef(forced_unprotected_service_));
- ON_CALL(*mock_crypto_manager_settings_, force_protected_service())
- .WillByDefault(ReturnRef(forced_protected_service_));
- ON_CALL(*mock_crypto_manager_settings_, security_manager_mode())
- .WillByDefault(Return(security_manager::SERVER));
- ON_CALL(*mock_crypto_manager_settings_, security_manager_protocol_name())
- .WillByDefault(Return(protocol));
- ON_CALL(*mock_crypto_manager_settings_, certificate_data())
- .WillByDefault(ReturnRef(certificate_data_base64_));
- ON_CALL(*mock_crypto_manager_settings_, ciphers_list())
- .WillByDefault(ReturnRef(server_ciphers_list));
- ON_CALL(*mock_crypto_manager_settings_, ca_cert_path())
- .WillByDefault(ReturnRef(kCaPath));
- ON_CALL(*mock_crypto_manager_settings_, verify_peer())
- .WillByDefault(Return(false));
- ON_CALL(*mock_crypto_manager_settings_, module_cert_path())
- .WillByDefault(ReturnRef(kServerCertPath));
- ON_CALL(*mock_crypto_manager_settings_, module_key_path())
- .WillByDefault(ReturnRef(kServerPrivateKeyPath));
- }
-
- void SetClientInitialValues(security_manager::Protocol protocol,
- const std::string& client_ciphers_list) {
- ON_CALL(*mock_client_manager_settings_, force_unprotected_service())
- .WillByDefault(ReturnRef(forced_unprotected_service_));
- ON_CALL(*mock_client_manager_settings_, force_protected_service())
- .WillByDefault(ReturnRef(forced_protected_service_));
- ON_CALL(*mock_client_manager_settings_, security_manager_mode())
- .WillByDefault(Return(security_manager::CLIENT));
- ON_CALL(*mock_client_manager_settings_, security_manager_protocol_name())
- .WillByDefault(Return(protocol));
- ON_CALL(*mock_client_manager_settings_, certificate_data())
- .WillByDefault(ReturnRef(certificate_data_base64_));
- ON_CALL(*mock_client_manager_settings_, ciphers_list())
- .WillByDefault(ReturnRef(client_ciphers_list));
- ON_CALL(*mock_client_manager_settings_, ca_cert_path())
- .WillByDefault(ReturnRef(kCaPath));
- ON_CALL(*mock_client_manager_settings_, verify_peer())
- .WillByDefault(Return(false));
- ON_CALL(*mock_client_manager_settings_, module_cert_path())
- .WillByDefault(ReturnRef(kClientCertPath));
- ON_CALL(*mock_client_manager_settings_, module_key_path())
- .WillByDefault(ReturnRef(kClientPrivateKeyPath));
- }
-
- std::shared_ptr<NiceMock<security_manager_test::MockCryptoManagerSettings> >
- mock_crypto_manager_settings_;
- std::shared_ptr<NiceMock<security_manager_test::MockCryptoManagerSettings> >
- mock_client_manager_settings_;
- security_manager::CryptoManager* crypto_manager_;
- security_manager::CryptoManager* client_manager_;
- security_manager::SSLContext* server_ctx_;
- security_manager::SSLContext* client_ctx_;
- std::string certificate_data_base64_;
- const std::vector<int> forced_unprotected_service_;
- const std::vector<int> forced_protected_service_;
-};
-
-class SSLTestForTLS1_2 : public SSLTestParam {};
-
-// This case fails starting because we can handshake only with TLSv1_2 protocol.
-INSTANTIATE_TEST_CASE_P(
- CorrectProtocolAndCiphers,
- SSLTestParam,
- ::testing::Values(ProtocolAndCipher(security_manager::TLSv1_1,
- security_manager::TLSv1,
- kFordCipher,
- kFordCipher),
- ProtocolAndCipher(security_manager::TLSv1_1,
- security_manager::TLSv1_1,
- kFordCipher,
- kFordCipher)
-#ifndef OPENSSL_NO_SSL3
- ,
- ProtocolAndCipher(security_manager::SSLv3,
- security_manager::SSLv3,
- kFordCipher,
- kFordCipher)
-#endif
- ,
- ProtocolAndCipher(security_manager::DTLSv1,
- security_manager::DTLSv1,
- kFordCipher,
- kFordCipher)));
-
-INSTANTIATE_TEST_CASE_P(
- IncorrectProtocolAndCiphers,
- SSLTestParam,
- ::testing::Values(ProtocolAndCipher(security_manager::TLSv1,
- security_manager::TLSv1_1,
- kFordCipher,
- kFordCipher),
- ProtocolAndCipher(security_manager::TLSv1_1,
- security_manager::TLSv1,
- kFordCipher,
- kFordCipher),
- ProtocolAndCipher(security_manager::TLSv1_2,
- security_manager::TLSv1,
- kFordCipher,
- kFordCipher),
- ProtocolAndCipher(security_manager::TLSv1_2,
- security_manager::TLSv1_1,
- kFordCipher,
- kFordCipher)
-#ifndef OPENSSL_NO_SSL3
- ,
- ProtocolAndCipher(security_manager::TLSv1,
- security_manager::SSLv3,
- kFordCipher,
- kFordCipher),
- ProtocolAndCipher(security_manager::TLSv1_1,
- security_manager::SSLv3,
- kFordCipher,
- kFordCipher),
- ProtocolAndCipher(security_manager::TLSv1,
- security_manager::DTLSv1,
- kFordCipher,
- kFordCipher),
- ProtocolAndCipher(security_manager::DTLSv1,
- security_manager::TLSv1_1,
- kFordCipher,
- kFordCipher),
- ProtocolAndCipher(security_manager::TLSv1_2,
- security_manager::DTLSv1,
- kFordCipher,
- kFordCipher),
- ProtocolAndCipher(security_manager::TLSv1_1,
- security_manager::DTLSv1,
- kFordCipher,
- kFordCipher),
- ProtocolAndCipher(security_manager::TLSv1_2,
- security_manager::SSLv3,
- kFordCipher,
- kFordCipher),
- ProtocolAndCipher(security_manager::SSLv3,
- security_manager::TLSv1,
- kFordCipher,
- kFordCipher),
- ProtocolAndCipher(security_manager::SSLv3,
- security_manager::TLSv1_1,
- kFordCipher,
- kFordCipher)
-#endif
- ));
-
TEST_F(SSLTest, OnTSL2Protocol_BrokenHandshake) {
ASSERT_EQ(security_manager::SSLContext::Handshake_Result_Success,
client_ctx_->StartHandshake(&kClientBuf, &client_buf_len));
@@ -570,58 +356,6 @@ TEST_F(SSLTest, OnTSL2Protocol_EcncryptionFail) {
text, text_len, &encrypted_text, &encrypted_text_len));
}
-TEST_P(SSLTestParam, ClientAndServerNotTLSv1_2_HandshakeFailed) {
- ASSERT_EQ(security_manager::SSLContext::Handshake_Result_AbnormalFail,
- client_ctx_->StartHandshake(&kClientBuf, &client_buf_len));
-
- EXPECT_TRUE(NULL == kClientBuf);
- EXPECT_EQ(0u, client_buf_len);
- ASSERT_EQ(security_manager::SSLContext::Handshake_Result_Success,
- server_ctx_->DoHandshakeStep(
- kClientBuf, client_buf_len, &kServerBuf, &server_buf_len));
- EXPECT_TRUE(NULL == kServerBuf);
- EXPECT_EQ(0u, server_buf_len);
-
- EXPECT_FALSE(server_ctx_->IsInitCompleted());
-}
-
-INSTANTIATE_TEST_CASE_P(
- ServerProtocolTLSv12,
- SSLTestForTLS1_2,
- ::testing::Values(ProtocolAndCipher(security_manager::TLSv1,
- security_manager::TLSv1_2,
- kFordCipher,
- kFordCipher),
- ProtocolAndCipher(security_manager::TLSv1_1,
- security_manager::TLSv1_2,
- kFordCipher,
- kFordCipher)
-#ifndef OPENSSL_NO_SSL3
- ,
- ProtocolAndCipher(security_manager::SSLv3,
- security_manager::TLSv1_2,
- kFordCipher,
- kFordCipher)
-#endif
- ));
-
-TEST_P(SSLTestForTLS1_2, HandshakeFailed) {
- ASSERT_EQ(security_manager::SSLContext::Handshake_Result_Success,
- client_ctx_->StartHandshake(&kClientBuf, &client_buf_len));
- EXPECT_FALSE(NULL == kClientBuf);
- ASSERT_LT(0u, client_buf_len);
-
- ASSERT_EQ(security_manager::SSLContext::Handshake_Result_AbnormalFail,
- server_ctx_->DoHandshakeStep(
- kClientBuf, client_buf_len, &kServerBuf, &server_buf_len))
- << ERR_reason_error_string(ERR_get_error());
-
- EXPECT_TRUE(NULL == kServerBuf);
- EXPECT_EQ(0u, server_buf_len);
-
- EXPECT_FALSE(server_ctx_->IsInitCompleted());
-}
-
} // namespace ssl_context_test
} // namespace components
} // namespace test
diff --git a/src/components/transport_manager/src/tcp/tcp_client_listener.cc b/src/components/transport_manager/src/tcp/tcp_client_listener.cc
index 6aaec5d659..7a440d2429 100644
--- a/src/components/transport_manager/src/tcp/tcp_client_listener.cc
+++ b/src/components/transport_manager/src/tcp/tcp_client_listener.cc
@@ -41,7 +41,6 @@
#include <signal.h>
#include <sys/select.h>
#include <sys/socket.h>
-#include <sys/sysctl.h>
#include <sys/types.h>
#include <unistd.h>
#ifdef __linux__
@@ -50,6 +49,7 @@
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <netinet/tcp_var.h>
+#include <sys/sysctl.h>
#include <sys/time.h>
#endif // __linux__
diff --git a/tools/InterfaceGenerator/generator/generators/PolicyTypes.py b/tools/InterfaceGenerator/generator/generators/PolicyTypes.py
index 53c3062f30..116273d82c 100644
--- a/tools/InterfaceGenerator/generator/generators/PolicyTypes.py
+++ b/tools/InterfaceGenerator/generator/generators/PolicyTypes.py
@@ -441,7 +441,7 @@ class CodeGenerator(object):
is True else u"// {0}\n").format(x)
for x in self._normalize_multiline_comments(
interface_item_base.description)])
- if description is not u"":
+ if description != u"":
description = u"".join([u" *\n" if use_doxygen
is True else u"//\n", description])
@@ -451,7 +451,7 @@ class CodeGenerator(object):
self._normalize_multiline_comments(
interface_item_base.
design_description)])
- if design_description is not u"":
+ if design_description != u"":
design_description = u"".join([u" *\n" if use_doxygen is
True else "//\n",
design_description])
@@ -460,7 +460,7 @@ class CodeGenerator(object):
True else u"// Note: {0}\n").format(x)
for x in self._normalize_multiline_comments(
[x.value for x in interface_item_base.issues])])
- if issues is not u"":
+ if issues != u"":
issues = u"".join([u" *\n" if use_doxygen is
True else u"//\n", issues])
@@ -468,7 +468,7 @@ class CodeGenerator(object):
True else u"// ToDo: {0}\n").format(x)
for x in self._normalize_multiline_comments(
interface_item_base.todos)])
- if todos is not u"":
+ if todos != u"":
todos = u"".join([u" *\n" if use_doxygen is
True else u"//\n", todos])
@@ -505,7 +505,7 @@ class CodeGenerator(object):
return u"".join(
[u"{0}{1}\n".format(
self._indent_template * indent_level,
- x) if x is not u"" else u"\n" for x in code_lines])
+ x) if x != u"" else u"\n" for x in code_lines])
@staticmethod
def _normalize_multiline_comments(initial_strings):
diff --git a/tools/InterfaceGenerator/generator/generators/SmartFactoryBase.py b/tools/InterfaceGenerator/generator/generators/SmartFactoryBase.py
index 73ab03f205..bec5912d54 100755
--- a/tools/InterfaceGenerator/generator/generators/SmartFactoryBase.py
+++ b/tools/InterfaceGenerator/generator/generators/SmartFactoryBase.py
@@ -758,7 +758,7 @@ class CodeGenerator(object):
result_array = []
result_array.append(self._impl_code_shared_ptr_vector_template.substitute(var_name = name))
result = u"\n".join(result_array)
- if result is not "":
+ if result != "":
result += u"\n\n"
return result
@@ -789,7 +789,7 @@ class CodeGenerator(object):
count += 1
result = u"\n\n".join(result_array)
- if result is not "":
+ if result != "":
result += u"\n\n"
return result
@@ -1415,7 +1415,7 @@ class CodeGenerator(object):
is True else u"// {0}\n").format(x)
for x in self._normalize_multiline_comments(
interface_item_base.description)])
- if description is not u"":
+ if description != u"":
description = u"".join([u" *\n" if use_doxygen
is True else u"//\n", description])
@@ -1425,7 +1425,7 @@ class CodeGenerator(object):
self._normalize_multiline_comments(
interface_item_base.
design_description)])
- if design_description is not u"":
+ if design_description != u"":
design_description = u"".join([u" *\n" if use_doxygen is
True else "//\n",
design_description])
@@ -1434,7 +1434,7 @@ class CodeGenerator(object):
True else u"// Note: {0}\n").format(x)
for x in self._normalize_multiline_comments(
[x.value for x in interface_item_base.issues])])
- if issues is not u"":
+ if issues != u"":
issues = u"".join([u" *\n" if use_doxygen is
True else u"//\n", issues])
@@ -1442,7 +1442,7 @@ class CodeGenerator(object):
True else u"// ToDo: {0}\n").format(x)
for x in self._normalize_multiline_comments(
interface_item_base.todos)])
- if todos is not u"":
+ if todos != u"":
todos = u"".join([u" *\n" if use_doxygen is
True else u"//\n", todos])
@@ -1479,7 +1479,7 @@ class CodeGenerator(object):
return u"".join(
[u"{0}{1}\n".format(
self._indent_template * indent_level,
- x) if x is not u"" else u"\n" for x in code_lines])
+ x) if x != u"" else u"\n" for x in code_lines])
@staticmethod
def _normalize_multiline_comments(initial_strings):