Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
1db5b3f
[AD-427] Tracer Code - Limited Capability to load metadata - work-in-…
Feb 1, 2022
3ad4c66
[AD-427] Fix Mac build.
Feb 1, 2022
460ac61
[AD-427] Fix Mac build.
Feb 1, 2022
af5780f
[AD-427] Fix Windows build.
Feb 1, 2022
1f52bc2
[AD-427] Fix Windows build.
Feb 1, 2022
0e2afc3
[AD-427] Fix Windows build.
Feb 1, 2022
749a1c8
[AD-427] Fix Mac build.
Feb 1, 2022
37acdf1
[AD-427] Fix Mac build.
Feb 1, 2022
e6df2db
[AD-427] Fix Mac build.
Feb 1, 2022
22bf6f3
[AD-427] Fix Mac build.
Feb 1, 2022
d85c63f
[AD-427] Fix Mac build.
Feb 1, 2022
0d04813
[AD-427] Fix Mac build.
Feb 1, 2022
af19810
[AD-427] Fix Mac build.
Feb 1, 2022
77e9489
[AD-427] Fix Mac build.
Feb 2, 2022
f8a7225
[AD-427] Fix Mac build.
Feb 2, 2022
db8a769
[AD-427] Fix Mac build.
Feb 2, 2022
49085ee
[AD-427] Fix Mac build.
Feb 2, 2022
09e1f30
[AD-427] Fix Mac build.
Feb 2, 2022
e5eb2dc
[AD-427] Fix Mac build.
Feb 2, 2022
e59c35f
[AD-427] Added ResultSet.next and ResultSet.GetString()
Feb 3, 2022
92b2737
Merge branch 'develop' into birschick-bq/ad-427/metadata
Feb 4, 2022
4048965
Merge branch 'develop' into birschick-bq/ad-427/metadata
Feb 4, 2022
f36690c
[AD-427] Updated JDBC driver version. Expanded tests.
Feb 4, 2022
2feb6a8
Merge branch 'birschick-bq/ad-427/metadata' of https://github.com/aws…
Feb 4, 2022
755bfd8
Merge branch 'develop' into birschick-bq/ad-427/metadata
Feb 4, 2022
16f5feb
Merge branch 'develop' into birschick-bq/ad-427/metadata
Feb 4, 2022
c7db642
[AD-427] Use loop to iterate all results in ResultSet test.
Feb 4, 2022
6a1e352
Merge branch 'develop' into birschick-bq/ad-427/metadata
Feb 7, 2022
aab9968
[AD-427] Changed from code review.
Feb 8, 2022
cd33856
[AD-427] Changed from code review.
Feb 8, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions src/common/os/win/include/ignite/common/concurrent_os.h
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,9 @@ namespace ignite
{
namespace concurrent
{
// Forward declaration
class ConditionVariable;

/**
* Static class to manage memory visibility semantics.
*/
Expand Down
111 changes: 48 additions & 63 deletions src/odbc-test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ find_package(Boost 1.53 REQUIRED COMPONENTS unit_test_framework chrono thread sy
find_package(ODBC REQUIRED)

include_directories(SYSTEM ${ODBC_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS} ${JNI_INCLUDE_DIRS})
include_directories(include ../odbc/include ../network/include)
include_directories(include ../odbc/include)
if (WIN32)
include_directories(../odbc/os/win/include)
else ()
Expand All @@ -40,91 +40,75 @@ set(SOURCES
src/configuration_test.cpp
src/connection_test.cpp
src/dummy_test.cpp
src/java_test.cpp
src/odbc_test_suite.cpp
src/test_utils.cpp
../odbc/src/app/application_data_buffer.cpp
../odbc/src/common_types.cpp
../odbc/src/common/big_integer.cpp
../odbc/src/common/bits.cpp
../odbc/src/app/application_data_buffer.cpp
../odbc/src/app/parameter.cpp
../odbc/src/app/parameter_set.cpp
../odbc/src/column.cpp
../odbc/src/common/big_integer.cpp
../odbc/src/common/bits.cpp
../odbc/src/common/concurrent.cpp
../odbc/src/common/decimal.cpp
../odbc/src/common/utils.cpp
../odbc/src/config/config_tools.cpp
../odbc/src/common_types.cpp
../odbc/src/config/configuration.cpp
../odbc/src/config/config_tools.cpp
../odbc/src/config/connection_info.cpp
../odbc/src/config/connection_string_parser.cpp
../odbc/src/diagnostic/diagnostic_record.cpp
../odbc/src/connection.cpp
../odbc/src/cursor.cpp
../odbc/src/diagnostic/diagnosable_adapter.cpp
../odbc/src/diagnostic/diagnostic_record_storage.cpp
../odbc/src/diagnostic/diagnostic_record.cpp
../odbc/src/dsn_config.cpp
../odbc/src/environment.cpp
../odbc/src/ignite_error.cpp
../odbc/src/jni/java.cpp
../odbc/src/jni/java.cpp
../odbc/src/log.cpp
../odbc/src/message.cpp
../odbc/src/meta/column_meta.cpp
../odbc/src/meta/table_meta.cpp
../odbc/src/nested_tx_mode.cpp
../odbc/src/protocol_version.cpp
../odbc/src/query/batch_query.cpp
../odbc/src/query/column_metadata_query.cpp
../odbc/src/query/data_query.cpp
../odbc/src/query/foreign_keys_query.cpp
../odbc/src/query/primary_keys_query.cpp
../odbc/src/query/special_columns_query.cpp
../odbc/src/query/streaming_query.cpp
../odbc/src/query/type_info_query.cpp
../odbc/src/query/table_metadata_query.cpp
../odbc/src/sql/sql_lexer.cpp
../odbc/src/sql/sql_parser.cpp
../odbc/src/sql/sql_set_streaming_command.cpp
../odbc/src/sql/sql_utils.cpp
../odbc/src/read_preference.cpp
../odbc/src/result_page.cpp
../odbc/src/row.cpp
../odbc/src/scan_method.cpp
../odbc/src/utility.cpp
# TODO uncomment/rework the tests after get some connectivity and functionalities working.
# src/teamcity/teamcity_boost.cpp
# src/teamcity/teamcity_messages.cpp
# src/parser_test.cpp
# src/cursor_test.cpp
# src/connection_info_test.cpp
# src/application_data_buffer_test.cpp
# src/column_test.cpp
# src/configuration_test.cpp
# src/row_test.cpp
# src/meta_queries_test.cpp
# src/utility_test.cpp
# src/queries_test.cpp
# src/queries_ssl_test.cpp
# src/sql_test_suite_fixture.cpp
# src/sql_string_functions_test.cpp
# src/sql_numeric_functions_test.cpp
# src/sql_aggregate_functions_test.cpp
# src/sql_system_functions_test.cpp
# src/sql_esc_convert_function_test.cpp
# src/sql_operators_test.cpp
# src/sql_value_expressions_test.cpp
# src/sql_types_test.cpp
# src/sql_date_time_functions_test.cpp
# src/sql_outer_join_test.cpp
# src/sql_get_info_test.cpp
# src/api_robustness_test.cpp
# src/attributes_test.cpp
# src/errors_test.cpp
# src/types_test.cpp
# src/transaction_test.cpp
# src/authentication_test.cpp
# src/sql_parsing_test.cpp
# src/streaming_test.cpp
# src/cursor_binding_test.cpp
# src/test_server.cpp
# ../odbc/src/log.cpp
# ../odbc/src/cursor.cpp
# ../odbc/src/diagnostic/diagnostic_record.cpp
# ../odbc/src/diagnostic/diagnostic_record_storage.cpp
# ../odbc/src/config/config_tools.cpp
# ../odbc/src/config/configuration.cpp
# ../odbc/src/config/connection_info.cpp
# ../odbc/src/config/connection_string_parser.cpp
# ../odbc/src/app/application_data_buffer.cpp
# ../odbc/src/ssl_mode.cpp
# ../odbc/src/sql/sql_parser.cpp
# ../odbc/src/sql/sql_lexer.cpp
# ../odbc/src/sql/sql_set_streaming_command.cpp
# ../odbc/src/sql/sql_utils.cpp
# ../odbc/src/row.cpp
# ../odbc/src/protocol_version.cpp
# ../odbc/src/column.cpp
# ../odbc/src/common_types.cpp
# ../odbc/src/utility.cpp
# ../odbc/src/result_page.cpp
# ../odbc/src/nested_tx_mode.cpp
../odbc/src/statement.cpp
../odbc/src/streaming/streaming_batch.cpp
../odbc/src/streaming/streaming_context.cpp
../odbc/src/type_traits.cpp
../odbc/src/utility.cpp
)

if (WIN32)
list(APPEND SOURCES
../odbc/os/win/src/common/concurrent_os.cpp
../odbc/os/win/src/common/platform_utils.cpp
../odbc/src/jni/os/win/utils.cpp
../odbc/os/win/src/system_dsn.cpp
../odbc/os/win/src/system/ui/custom_window.cpp
../odbc/os/win/src/system/ui/dsn_configuration_window.cpp
../odbc/os/win/src/system/ui/window.cpp
)
else()
# TODO: Ensure MacOS is portable. https://bitquill.atlassian.net/browse/AD-525
Expand All @@ -137,7 +121,8 @@ endif()

add_executable(${TARGET} ${SOURCES})

target_link_libraries(${TARGET} ${Boost_LIBRARIES} ignite ${ODBC_LIBRARY})
target_link_libraries(${TARGET} ${ODBC_LIBRARIES})
target_link_libraries(${TARGET} ${Boost_LIBRARIES} ignite)
target_code_coverage(${TARGET} PUBLIC AUTO ALL)

if (WIN32)
Expand Down
8 changes: 6 additions & 2 deletions src/odbc-test/include/odbc_test_suite.h
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,6 @@

#include <string>

#include "ignite/ignite.h"

namespace ignite
{
namespace odbc
Expand Down Expand Up @@ -352,6 +350,12 @@ namespace ignite
*/
SQLRETURN PrepareQuery(const std::string& qry);

/**
* Creates the standard DSN connection string.
*/
void CreateDsnConnectionString(std::string& connectionString,
const std::string& username = std::string()) const;

/** ODBC Environment. */
SQLHENV env;

Expand Down
73 changes: 5 additions & 68 deletions src/odbc-test/src/connection_test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
*/

#ifdef _WIN32
# include <windows.h>
# include <Windows.h>
#endif

#include <sql.h>
Expand All @@ -39,14 +39,7 @@ using namespace boost::unit_test;
*/
struct ConnectionTestSuiteFixture: odbc::OdbcTestSuite
{
/**
* Constructor.
*/
ConnectionTestSuiteFixture() :
OdbcTestSuite()
{
// No-op.
}
using odbc::OdbcTestSuite::OdbcTestSuite;

/**
* Execute the query and return an error code.
Expand Down Expand Up @@ -83,32 +76,10 @@ struct ConnectionTestSuiteFixture: odbc::OdbcTestSuite
return code;
}

static void SetConnectionString(std::string& connectionString,
const std::string& username = std::string()) {
// NOTE: Assuming we are using internal SSH tunnel
std::string user = common::GetEnv("DOC_DB_USER_NAME", "documentdb");
std::string password = common::GetEnv("DOC_DB_PASSWORD", "");
std::string host = common::GetEnv("DOC_DB_HOST", "");
std::string port = "27017";
if (!username.empty()) {
user = username;
}

connectionString =
"DRIVER={Apache Ignite};"
"HOSTNAME=" + host + ":" + port + ";"
"DATABASE=test;"
"USER=" + user + ";"
"PASSWORD=" + password + ";";
}

/**
* Destructor.
*/
~ConnectionTestSuiteFixture()
{
// No-op.
}
~ConnectionTestSuiteFixture() override = default;
};


Expand All @@ -117,54 +88,20 @@ BOOST_FIXTURE_TEST_SUITE(ConnectionTestSuite, ConnectionTestSuiteFixture)
BOOST_AUTO_TEST_CASE(TestConnectionRestore)
{
std::string connectionString;
SetConnectionString(connectionString);

Connect(connectionString);
Disconnect();

// TODO: [AD-507] Re-enable when querying is supported.
// https://bitquill.atlassian.net/browse/AD-507

//// Check that query was successfully executed.
//BOOST_CHECK_EQUAL(ExecQueryAndReturnError(), "");

//// Query execution should throw ODBC error.
//BOOST_CHECK_EQUAL(ExecQueryAndReturnError(), "08S01");

//// Reusing a closed connection should not crash an application.
//BOOST_CHECK_EQUAL(ExecQueryAndReturnError(), "08001");

//// Check that connection was restored.
//BOOST_CHECK_EQUAL(ExecQueryAndReturnError(), "");

}

BOOST_AUTO_TEST_CASE(TestConnectionMemoryLeak)
{
std::string connectionString;
SetConnectionString(connectionString);
CreateDsnConnectionString(connectionString);

Connect(connectionString);

// TODO: [AD-507] Re-enable when querying is supported.
// https://bitquill.atlassian.net/browse/AD-507
// ExecQuery("Select * from Test");

Disconnect();
}

BOOST_AUTO_TEST_CASE(TestConnectionInvalidUser) {
std::string connectionString;
SetConnectionString(connectionString, "invaliduser");
CreateDsnConnectionString(connectionString, "invaliduser");

ExpectConnectionReject(connectionString, "08001: Failed to establish connection with the host.\n"
"Invalid username or password or user is not authorized on database 'test'. "
"Please check your settings. Authorization failed for user 'invaliduser' on database 'admin' with mechanism");

// TODO: [AD-507] Re-enable when querying is supported.
// https://bitquill.atlassian.net/browse/AD-507
// ExecQuery("Select * from Test");

Disconnect();
}

Expand Down
Loading