@@ -162,7 +162,8 @@ TYPED_TEST(ConnectionTest, TestSQLGetEnvAttrOutputNTS) {
162162
163163TYPED_TEST (ConnectionTest, DISABLED_TestSQLGetEnvAttrGetLength) {
164164  //  Test is disabled because call to SQLGetEnvAttr is handled by the driver manager on
165-   //  Windows. This test case can be potentially used on macOS/Linux
165+   //  Windows. Windows driver manager ignores the length pointer.
166+   //  This test case can be potentially used on macOS/Linux
166167  SQLINTEGER length;
167168  ASSERT_EQ (SQL_SUCCESS,
168169            SQLGetEnvAttr (this ->env , SQL_ATTR_ODBC_VERSION, nullptr , 0 , &length));
@@ -172,7 +173,8 @@ TYPED_TEST(ConnectionTest, DISABLED_TestSQLGetEnvAttrGetLength) {
172173
173174TYPED_TEST (ConnectionTest, DISABLED_TestSQLGetEnvAttrNullValuePointer) {
174175  //  Test is disabled because call to SQLGetEnvAttr is handled by the driver manager on
175-   //  Windows. This test case can be potentially used on macOS/Linux
176+   //  Windows. The Windows driver manager doesn't error out when null pointer is passed.
177+   //  This test case can be potentially used on macOS/Linux
176178  ASSERT_EQ (SQL_ERROR,
177179            SQLGetEnvAttr (this ->env , SQL_ATTR_ODBC_VERSION, nullptr , 0 , nullptr ));
178180}
@@ -229,7 +231,8 @@ TYPED_TEST(ConnectionHandleTest, TestSQLDriverConnect) {
229231  ASSERT_EQ (SQL_SUCCESS,
230232            SQLDriverConnect (this ->conn , NULL , &connect_str0[0 ],
231233                             static_cast <SQLSMALLINT>(connect_str0.size ()), out_str,
232-                              kOdbcBufferSize , &out_str_len, SQL_DRIVER_NOPROMPT));
234+                              kOdbcBufferSize , &out_str_len, SQL_DRIVER_NOPROMPT))
235+       << GetOdbcErrorMessage (SQL_HANDLE_DBC, this ->conn );
233236
234237  //  Check that out_str has same content as connect_str
235238  std::string out_connection_string = ODBC::SqlWcharToString (out_str, out_str_len);
@@ -241,10 +244,11 @@ TYPED_TEST(ConnectionHandleTest, TestSQLDriverConnect) {
241244  ASSERT_TRUE (CompareConnPropertyMap (out_properties, in_properties));
242245
243246  //  Disconnect from ODBC
244-   ASSERT_EQ (SQL_SUCCESS, SQLDisconnect (this ->conn ));
247+   ASSERT_EQ (SQL_SUCCESS, SQLDisconnect (this ->conn ))
248+       << GetOdbcErrorMessage (SQL_HANDLE_DBC, this ->conn );
245249}
246250
247- #if  defined _WIN32 || defined _WIN64 
251+ #if  defined _WIN32
248252TYPED_TEST (ConnectionHandleTest, TestSQLDriverConnectDsn) {
249253  //  Connect string
250254  std::string connect_str = this ->GetConnectionString ();
@@ -270,13 +274,15 @@ TYPED_TEST(ConnectionHandleTest, TestSQLDriverConnectDsn) {
270274  ASSERT_EQ (SQL_SUCCESS,
271275            SQLDriverConnect (this ->conn , NULL , &connect_str0[0 ],
272276                             static_cast <SQLSMALLINT>(connect_str0.size ()), out_str,
273-                              kOdbcBufferSize , &out_str_len, SQL_DRIVER_NOPROMPT));
277+                              kOdbcBufferSize , &out_str_len, SQL_DRIVER_NOPROMPT))
278+       << GetOdbcErrorMessage (SQL_HANDLE_DBC, this ->conn );
274279
275280  //  Remove DSN
276281  ASSERT_TRUE (UnregisterDsn (wdsn));
277282
278283  //  Disconnect from ODBC
279-   ASSERT_EQ (SQL_SUCCESS, SQLDisconnect (this ->conn ));
284+   ASSERT_EQ (SQL_SUCCESS, SQLDisconnect (this ->conn ))
285+       << GetOdbcErrorMessage (SQL_HANDLE_DBC, this ->conn );
280286}
281287
282288TYPED_TEST (ConnectionHandleTest, TestSQLConnect) {
@@ -300,13 +306,15 @@ TYPED_TEST(ConnectionHandleTest, TestSQLConnect) {
300306  ASSERT_EQ (SQL_SUCCESS,
301307            SQLConnect (this ->conn , dsn0.data (), static_cast <SQLSMALLINT>(dsn0.size ()),
302308                       uid0.data (), static_cast <SQLSMALLINT>(uid0.size ()), pwd0.data (),
303-                        static_cast <SQLSMALLINT>(pwd0.size ())));
309+                        static_cast <SQLSMALLINT>(pwd0.size ())))
310+       << GetOdbcErrorMessage (SQL_HANDLE_DBC, this ->conn );
304311
305312  //  Remove DSN
306313  ASSERT_TRUE (UnregisterDsn (wdsn));
307314
308315  //  Disconnect from ODBC
309-   ASSERT_EQ (SQL_SUCCESS, SQLDisconnect (this ->conn ));
316+   ASSERT_EQ (SQL_SUCCESS, SQLDisconnect (this ->conn ))
317+       << GetOdbcErrorMessage (SQL_HANDLE_DBC, this ->conn );
310318}
311319
312320TEST_F (ConnectionRemoteTest, TestSQLConnectInputUidPwd) {
@@ -339,13 +347,15 @@ TEST_F(ConnectionRemoteTest, TestSQLConnectInputUidPwd) {
339347  ASSERT_EQ (SQL_SUCCESS,
340348            SQLConnect (this ->conn , dsn0.data (), static_cast <SQLSMALLINT>(dsn0.size ()),
341349                       uid0.data (), static_cast <SQLSMALLINT>(uid0.size ()), pwd0.data (),
342-                        static_cast <SQLSMALLINT>(pwd0.size ())));
350+                        static_cast <SQLSMALLINT>(pwd0.size ())))
351+       << GetOdbcErrorMessage (SQL_HANDLE_DBC, conn);
343352
344353  //  Remove DSN
345354  ASSERT_TRUE (UnregisterDsn (wdsn));
346355
347356  //  Disconnect from ODBC
348-   ASSERT_EQ (SQL_SUCCESS, SQLDisconnect (this ->conn ));
357+   ASSERT_EQ (SQL_SUCCESS, SQLDisconnect (this ->conn ))
358+       << GetOdbcErrorMessage (SQL_HANDLE_DBC, conn);
349359}
350360
351361TEST_F (ConnectionRemoteTest, TestSQLConnectInvalidUid) {
@@ -411,13 +421,15 @@ TEST_F(ConnectionRemoteTest, TestSQLConnectDSNPrecedence) {
411421  ASSERT_EQ (SQL_SUCCESS,
412422            SQLConnect (this ->conn , dsn0.data (), static_cast <SQLSMALLINT>(dsn0.size ()),
413423                       uid0.data (), static_cast <SQLSMALLINT>(uid0.size ()), pwd0.data (),
414-                        static_cast <SQLSMALLINT>(pwd0.size ())));
424+                        static_cast <SQLSMALLINT>(pwd0.size ())))
425+       << GetOdbcErrorMessage (SQL_HANDLE_DBC, conn);
415426
416427  //  Remove DSN
417428  ASSERT_TRUE (UnregisterDsn (wdsn));
418429
419430  //  Disconnect from ODBC
420-   ASSERT_EQ (SQL_SUCCESS, SQLDisconnect (this ->conn ));
431+   ASSERT_EQ (SQL_SUCCESS, SQLDisconnect (this ->conn ))
432+       << GetOdbcErrorMessage (SQL_HANDLE_DBC, conn);
421433}
422434
423435#endif 
@@ -456,5 +468,4 @@ TYPED_TEST(ConnectionHandleTest, TestSQLDisconnectWithoutConnection) {
456468TYPED_TEST (ConnectionTest, TestConnect) {
457469  //  Verifies connect and disconnect works on its own
458470}
459- 
460471}  //  namespace arrow::flight::sql::odbc
0 commit comments