Skip to content

Commit 87e4526

Browse files
committed
Fix more tests for Linux
1 parent c1e8e5c commit 87e4526

File tree

6 files changed

+79
-93
lines changed

6 files changed

+79
-93
lines changed

cpp/src/arrow/flight/sql/odbc/tests/columns_test.cc

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1237,7 +1237,7 @@ TYPED_TEST(ColumnsTest, SQLColAttributeTestInputData) {
12371237
// All character values populated
12381238
EXPECT_EQ(SQL_SUCCESS,
12391239
SQLColAttribute(stmt, idx, SQL_DESC_NAME, character_attr,
1240-
std::wcslen(const_cast<wchar_t*>(character_attr)),
1240+
kOdbcBufferSize,
12411241
&character_attr_len, nullptr));
12421242

12431243
// All numeric values populated
@@ -1280,8 +1280,7 @@ TYPED_TEST(ColumnsTest, SQLColAttributeInvalidFieldId) {
12801280
SQLSMALLINT character_attr_len = 0;
12811281

12821282
ASSERT_EQ(SQL_ERROR, SQLColAttribute(stmt, idx, invalid_field_id, character_attr,
1283-
std::wcslen(const_cast<wchar_t*>(character_attr)),
1284-
&character_attr_len, nullptr));
1283+
kOdbcBufferSize, &character_attr_len, nullptr));
12851284
// Verify invalid descriptor field identifier error state is returned
12861285
VerifyOdbcErrorState(SQL_HANDLE_STMT, stmt, kErrorStateHY091);
12871286
}
@@ -1299,7 +1298,7 @@ TYPED_TEST(ColumnsTest, SQLColAttributeInvalidColId) {
12991298

13001299
ASSERT_EQ(SQL_ERROR, SQLColAttribute(stmt, invalid_col_id, SQL_DESC_BASE_COLUMN_NAME,
13011300
character_attr,
1302-
std::wcslen(const_cast<wchar_t*>(character_attr)),
1301+
kOdbcBufferSize,
13031302
&character_attr_len, nullptr));
13041303
// Verify invalid descriptor index error state is returned
13051304
VerifyOdbcErrorState(SQL_HANDLE_STMT, stmt, kErrorState07009);
@@ -2576,11 +2575,10 @@ TEST_F(ColumnsMockTest, SQLDescribeColUnicodeTableMetadata) {
25762575
SQLDescribeCol(stmt, column_index, column_name, buf_char_len, &name_length,
25772576
&column_data_type, &column_size, &decimal_digits, &nullable));
25782577

2579-
EXPECT_EQ(name_length, expected_column_name_len));
2578+
EXPECT_EQ(name_length, expected_column_name_len);
25802579

25812580
std::wstring returned(column_name, column_name + name_length);
2582-
std::wstring expected_col_name_str =
2583-
ConvertToWString(expected_column_name, expected_column_name_len);
2581+
std::wstring expected_col_name_str = ConvertToWString(expected_column_name);
25842582
EXPECT_EQ(expected_col_name_str, returned);
25852583
EXPECT_EQ(expected_column_data_type, column_data_type);
25862584
EXPECT_EQ(expected_column_size, column_size);

cpp/src/arrow/flight/sql/odbc/tests/connection_info_test.cc

Lines changed: 38 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ TYPED_TEST(ConnectionInfoTest, TestSQLGetInfoDataSourceName) {
138138
SQLWCHAR value[kOdbcBufferSize] = {};
139139
GetInfoSQLWCHAR(conn, SQL_DATA_SOURCE_NAME, value);
140140

141-
std::wstring result = ConvertToWString(value, std::wcslen(const_cast<wchar_t*>(value)));
141+
std::wstring result = ConvertToWString(value);
142142
EXPECT_EQ(std::wstring(L""), result);
143143
}
144144

@@ -209,23 +209,23 @@ TYPED_TEST(ConnectionInfoTest, TestSQLGetInfoDriverName) {
209209
SQLWCHAR value[kOdbcBufferSize] = {};
210210
GetInfoSQLWCHAR(conn, SQL_DRIVER_NAME, value);
211211

212-
std::wstring result = ConvertToWString(value, std::wcslen(const_cast<wchar_t*>(value)));
212+
std::wstring result = ConvertToWString(value);
213213
EXPECT_EQ(std::wstring(L"Arrow Flight ODBC Driver"), result);
214214
}
215215

216216
TYPED_TEST(ConnectionInfoTest, TestSQLGetInfoDriverOdbcVer) {
217217
SQLWCHAR value[kOdbcBufferSize] = {};
218218
GetInfoSQLWCHAR(conn, SQL_DRIVER_ODBC_VER, value);
219219

220-
std::wstring result = ConvertToWString(value, std::wcslen(const_cast<wchar_t*>(value)));
220+
std::wstring result = ConvertToWString(value);
221221
EXPECT_EQ(std::wstring(L"03.80"), result);
222222
}
223223

224224
TYPED_TEST(ConnectionInfoTest, TestSQLGetInfoDriverVer) {
225225
SQLWCHAR value[kOdbcBufferSize] = {};
226226
GetInfoSQLWCHAR(conn, SQL_DRIVER_VER, value);
227227

228-
std::wstring result = ConvertToWString(value, std::wcslen(const_cast<wchar_t*>(value)));
228+
std::wstring result = ConvertToWString(value);
229229
EXPECT_EQ(std::wstring(L"00.09.0000.0"), result);
230230
}
231231

@@ -327,7 +327,7 @@ TYPED_TEST(ConnectionInfoTest, TestSQLGetInfoOdbcVer) {
327327
SQLWCHAR value[kOdbcBufferSize] = {};
328328
GetInfoSQLWCHAR(conn, SQL_ODBC_VER, value);
329329

330-
std::wstring result = ConvertToWString(value, std::wcslen(const_cast<wchar_t*>(value)));
330+
std::wstring result = ConvertToWString(value);
331331

332332
#ifdef __APPLE__
333333
EXPECT_EQ(std::wstring(L"03.52.0000"), result);
@@ -354,23 +354,23 @@ TYPED_TEST(ConnectionInfoTest, TestSQLGetInfoRowUpdates) {
354354
SQLWCHAR value[kOdbcBufferSize] = {};
355355
GetInfoSQLWCHAR(conn, SQL_ROW_UPDATES, value);
356356

357-
std::wstring result = ConvertToWString(value, std::wcslen(const_cast<wchar_t*>(value)));
357+
std::wstring result = ConvertToWString(value);
358358
EXPECT_EQ(std::wstring(L"N"), result);
359359
}
360360

361361
TYPED_TEST(ConnectionInfoTest, TestSQLGetInfoSearchPatternEscape) {
362362
SQLWCHAR value[kOdbcBufferSize] = {};
363363
GetInfoSQLWCHAR(conn, SQL_SEARCH_PATTERN_ESCAPE, value);
364364

365-
std::wstring result = ConvertToWString(value, std::wcslen(const_cast<wchar_t*>(value)));
365+
std::wstring result = ConvertToWString(value);
366366
EXPECT_EQ(std::wstring(L"\\"), result);
367367
}
368368

369369
TYPED_TEST(ConnectionInfoTest, TestSQLGetInfoServerName) {
370370
SQLWCHAR value[kOdbcBufferSize] = {};
371371
GetInfoSQLWCHAR(conn, SQL_SERVER_NAME, value);
372372

373-
EXPECT_GT(wcslen(const_cast<wchar_t*>(value)), 0);
373+
EXPECT_GT(wcslen(reinterpret_cast<wchar_t*>(value)), 0);
374374
}
375375

376376
TYPED_TEST(ConnectionInfoTest, TestSQLGetInfoStaticCursorAttributes1) {
@@ -393,22 +393,22 @@ TYPED_TEST(ConnectionInfoTest, TestSQLGetInfoDatabaseName) {
393393
SQLWCHAR value[kOdbcBufferSize] = {};
394394
GetInfoSQLWCHAR(conn, SQL_DATABASE_NAME, value);
395395

396-
std::wstring result = ConvertToWString(value, std::wcslen(const_cast<wchar_t*>(value)));
396+
std::wstring result = ConvertToWString(value);
397397
EXPECT_EQ(std::wstring(L""), result);
398398
}
399399

400400
TYPED_TEST(ConnectionInfoTest, TestSQLGetInfoDbmsName) {
401401
SQLWCHAR value[kOdbcBufferSize] = {};
402402
GetInfoSQLWCHAR(conn, SQL_DBMS_NAME, value);
403403

404-
EXPECT_GT(wcslen(const_cast<wchar_t*>(value)), 0);
404+
EXPECT_GT(wcslen(reinterpret_cast<wchar_t*>(value)), 0);
405405
}
406406

407407
TYPED_TEST(ConnectionInfoTest, TestSQLGetInfoDbmsVer) {
408408
SQLWCHAR value[kOdbcBufferSize] = {};
409409
GetInfoSQLWCHAR(conn, SQL_DBMS_VER, value);
410410

411-
EXPECT_GT(wcslen(const_cast<wchar_t*>(value)), 0);
411+
EXPECT_GT(wcslen(reinterpret_cast<wchar_t*>(value)), 0);
412412
}
413413

414414
// Data Source Information
@@ -417,15 +417,15 @@ TYPED_TEST(ConnectionInfoTest, TestSQLGetInfoAccessibleProcedures) {
417417
SQLWCHAR value[kOdbcBufferSize] = {};
418418
GetInfoSQLWCHAR(conn, SQL_ACCESSIBLE_PROCEDURES, value);
419419

420-
std::wstring result = ConvertToWString(value, std::wcslen(const_cast<wchar_t*>(value)));
420+
std::wstring result = ConvertToWString(value);
421421
EXPECT_EQ(std::wstring(L"N"), result);
422422
}
423423

424424
TYPED_TEST(ConnectionInfoTest, TestSQLGetInfoAccessibleTables) {
425425
SQLWCHAR value[kOdbcBufferSize] = {};
426426
GetInfoSQLWCHAR(conn, SQL_ACCESSIBLE_TABLES, value);
427427

428-
std::wstring result = ConvertToWString(value, std::wcslen(const_cast<wchar_t*>(value)));
428+
std::wstring result = ConvertToWString(value);
429429
EXPECT_EQ(std::wstring(L"Y"), result);
430430
}
431431

@@ -440,15 +440,15 @@ TYPED_TEST(ConnectionInfoTest, TestSQLGetInfoCatalogTerm) {
440440
SQLWCHAR value[kOdbcBufferSize] = {};
441441
GetInfoSQLWCHAR(conn, SQL_CATALOG_TERM, value);
442442

443-
std::wstring result = ConvertToWString(value, std::wcslen(const_cast<wchar_t*>(value)));
443+
std::wstring result = ConvertToWString(value);
444444
EXPECT_EQ(std::wstring(L""), result);
445445
}
446446

447447
TYPED_TEST(ConnectionInfoTest, TestSQLGetInfoCollationSeq) {
448448
SQLWCHAR value[kOdbcBufferSize] = {};
449449
GetInfoSQLWCHAR(conn, SQL_COLLATION_SEQ, value);
450450

451-
std::wstring result = ConvertToWString(value, std::wcslen(const_cast<wchar_t*>(value)));
451+
std::wstring result = ConvertToWString(value);
452452
EXPECT_EQ(std::wstring(L""), result);
453453
}
454454

@@ -484,7 +484,7 @@ TYPED_TEST(ConnectionInfoTest, TestSQLGetInfoDataSourceReadOnly) {
484484
SQLWCHAR value[kOdbcBufferSize] = {};
485485
GetInfoSQLWCHAR(conn, SQL_DATA_SOURCE_READ_ONLY, value);
486486

487-
std::wstring result = ConvertToWString(value, std::wcslen(const_cast<wchar_t*>(value)));
487+
std::wstring result = ConvertToWString(value);
488488
EXPECT_EQ(std::wstring(L"N"), result);
489489
}
490490

@@ -499,31 +499,31 @@ TYPED_TEST(ConnectionInfoTest, TestSQLGetInfoDescribeParameter) {
499499
SQLWCHAR value[kOdbcBufferSize] = {};
500500
GetInfoSQLWCHAR(conn, SQL_DESCRIBE_PARAMETER, value);
501501

502-
std::wstring result = ConvertToWString(value, std::wcslen(const_cast<wchar_t*>(value)));
502+
std::wstring result = ConvertToWString(value);
503503
EXPECT_EQ(std::wstring(L"N"), result);
504504
}
505505

506506
TYPED_TEST(ConnectionInfoTest, TestSQLGetInfoMultResultSets) {
507507
SQLWCHAR value[kOdbcBufferSize] = {};
508508
GetInfoSQLWCHAR(conn, SQL_MULT_RESULT_SETS, value);
509509

510-
std::wstring result = ConvertToWString(value, std::wcslen(const_cast<wchar_t*>(value)));
510+
std::wstring result = ConvertToWString(value);
511511
EXPECT_EQ(std::wstring(L"N"), result);
512512
}
513513

514514
TYPED_TEST(ConnectionInfoTest, TestSQLGetInfoMultipleActiveTxn) {
515515
SQLWCHAR value[kOdbcBufferSize] = {};
516516
GetInfoSQLWCHAR(conn, SQL_MULTIPLE_ACTIVE_TXN, value);
517517

518-
std::wstring result = ConvertToWString(value, std::wcslen(const_cast<wchar_t*>(value)));
518+
std::wstring result = ConvertToWString(value);
519519
EXPECT_EQ(std::wstring(L"N"), result);
520520
}
521521

522522
TYPED_TEST(ConnectionInfoTest, TestSQLGetInfoNeedLongDataLen) {
523523
SQLWCHAR value[kOdbcBufferSize] = {};
524524
GetInfoSQLWCHAR(conn, SQL_NEED_LONG_DATA_LEN, value);
525525

526-
std::wstring result = ConvertToWString(value, std::wcslen(const_cast<wchar_t*>(value)));
526+
std::wstring result = ConvertToWString(value);
527527
EXPECT_EQ(std::wstring(L"N"), result);
528528
}
529529

@@ -537,15 +537,15 @@ TEST_F(ConnectionInfoMockTest, TestSQLGetInfoProcedureTerm) {
537537
SQLWCHAR value[kOdbcBufferSize] = {};
538538
GetInfoSQLWCHAR(conn, SQL_PROCEDURE_TERM, value);
539539

540-
std::wstring result = ConvertToWString(value, std::wcslen(const_cast<wchar_t*>(value)));
540+
std::wstring result = ConvertToWString(value);
541541
EXPECT_EQ(std::wstring(L""), result);
542542
}
543543

544544
TYPED_TEST(ConnectionInfoTest, TestSQLGetInfoSchemaTerm) {
545545
SQLWCHAR value[kOdbcBufferSize] = {};
546546
GetInfoSQLWCHAR(conn, SQL_SCHEMA_TERM, value);
547547

548-
std::wstring result = ConvertToWString(value, std::wcslen(const_cast<wchar_t*>(value)));
548+
std::wstring result = ConvertToWString(value);
549549
EXPECT_EQ(std::wstring(L"schema"), result);
550550
}
551551

@@ -560,7 +560,7 @@ TYPED_TEST(ConnectionInfoTest, TestSQLGetInfoTableTerm) {
560560
SQLWCHAR value[kOdbcBufferSize] = {};
561561
GetInfoSQLWCHAR(conn, SQL_TABLE_TERM, value);
562562

563-
std::wstring result = ConvertToWString(value, std::wcslen(const_cast<wchar_t*>(value)));
563+
std::wstring result = ConvertToWString(value);
564564
EXPECT_EQ(std::wstring(L"table"), result);
565565
}
566566

@@ -582,7 +582,7 @@ TEST_F(ConnectionInfoMockTest, TestSQLGetInfoUserName) {
582582
SQLWCHAR value[kOdbcBufferSize] = {};
583583
GetInfoSQLWCHAR(conn, SQL_USER_NAME, value);
584584

585-
std::wstring result = ConvertToWString(value, std::wcslen(const_cast<wchar_t*>(value)));
585+
std::wstring result = ConvertToWString(value);
586586
EXPECT_EQ(std::wstring(L""), result);
587587
}
588588

@@ -629,15 +629,15 @@ TYPED_TEST(ConnectionInfoTest, TestSQLGetInfoCatalogName) {
629629
SQLWCHAR value[kOdbcBufferSize] = {};
630630
GetInfoSQLWCHAR(conn, SQL_CATALOG_NAME, value);
631631

632-
std::wstring result = ConvertToWString(value, std::wcslen(const_cast<wchar_t*>(value)));
632+
std::wstring result = ConvertToWString(value);
633633
EXPECT_EQ(std::wstring(L"N"), result);
634634
}
635635

636636
TYPED_TEST(ConnectionInfoTest, TestSQLGetInfoCatalogNameSeparator) {
637637
SQLWCHAR value[kOdbcBufferSize] = {};
638638
GetInfoSQLWCHAR(conn, SQL_CATALOG_NAME_SEPARATOR, value);
639639

640-
std::wstring result = ConvertToWString(value, std::wcslen(const_cast<wchar_t*>(value)));
640+
std::wstring result = ConvertToWString(value);
641641
EXPECT_EQ(std::wstring(L""), result);
642642
}
643643

@@ -652,7 +652,7 @@ TYPED_TEST(ConnectionInfoTest, TestSQLGetInfoColumnAlias) {
652652
SQLWCHAR value[kOdbcBufferSize] = {};
653653
GetInfoSQLWCHAR(conn, SQL_COLUMN_ALIAS, value);
654654

655-
std::wstring result = ConvertToWString(value, std::wcslen(const_cast<wchar_t*>(value)));
655+
std::wstring result = ConvertToWString(value);
656656
EXPECT_EQ(std::wstring(L"Y"), result);
657657
}
658658

@@ -793,7 +793,7 @@ TEST_F(ConnectionInfoMockTest, TestSQLGetInfoExpressionsInOrderby) {
793793
SQLWCHAR value[kOdbcBufferSize] = {};
794794
GetInfoSQLWCHAR(conn, SQL_EXPRESSIONS_IN_ORDERBY, value);
795795

796-
std::wstring result = ConvertToWString(value, std::wcslen(const_cast<wchar_t*>(value)));
796+
std::wstring result = ConvertToWString(value);
797797
EXPECT_EQ(std::wstring(L"N"), result);
798798
}
799799

@@ -815,7 +815,7 @@ TYPED_TEST(ConnectionInfoTest, TestSQLGetInfoIdentifierQuoteChar) {
815815
SQLWCHAR value[kOdbcBufferSize] = {};
816816
GetInfoSQLWCHAR(conn, SQL_IDENTIFIER_QUOTE_CHAR, value);
817817

818-
std::wstring result = ConvertToWString(value, std::wcslen(const_cast<wchar_t*>(value)));
818+
std::wstring result = ConvertToWString(value);
819819
EXPECT_EQ(std::wstring(L"\""), result);
820820
}
821821

@@ -838,7 +838,7 @@ TYPED_TEST(ConnectionInfoTest, TestSQLGetInfoIntegrity) {
838838
SQLWCHAR value[kOdbcBufferSize] = {};
839839
GetInfoSQLWCHAR(conn, SQL_INTEGRITY, value);
840840

841-
std::wstring result = ConvertToWString(value, std::wcslen(const_cast<wchar_t*>(value)));
841+
std::wstring result = ConvertToWString(value);
842842
EXPECT_EQ(std::wstring(L"N"), result);
843843
}
844844

@@ -848,14 +848,14 @@ TYPED_TEST(ConnectionInfoTest, TestSQLGetInfoKeywords) {
848848
SQLWCHAR value[info_len] = {};
849849
GetInfoSQLWCHAR(conn, SQL_KEYWORDS, value, info_len);
850850

851-
EXPECT_GT(wcslen(const_cast<wchar_t*>(value)), 0);
851+
EXPECT_GT(wcslen(reinterpret_cast<wchar_t*>(value)), 0);
852852
}
853853

854854
TYPED_TEST(ConnectionInfoTest, TestSQLGetInfoLikeEscapeClause) {
855855
SQLWCHAR value[kOdbcBufferSize] = {};
856856
GetInfoSQLWCHAR(conn, SQL_LIKE_ESCAPE_CLAUSE, value);
857857

858-
std::wstring result = ConvertToWString(value, std::wcslen(const_cast<wchar_t*>(value)));
858+
std::wstring result = ConvertToWString(value);
859859
EXPECT_EQ(std::wstring(L"Y"), result);
860860
}
861861

@@ -877,23 +877,23 @@ TEST_F(ConnectionInfoMockTest, TestSQLGetInfoOrderByColumnsInSelect) {
877877
SQLWCHAR value[kOdbcBufferSize] = {};
878878
GetInfoSQLWCHAR(conn, SQL_ORDER_BY_COLUMNS_IN_SELECT, value);
879879

880-
std::wstring result = ConvertToWString(value, std::wcslen(const_cast<wchar_t*>(value)));
880+
std::wstring result = ConvertToWString(value);
881881
EXPECT_EQ(std::wstring(L"Y"), result);
882882
}
883883

884884
TEST_F(ConnectionInfoMockTest, TestSQLGetInfoOuterJoins) {
885885
SQLWCHAR value[kOdbcBufferSize] = {};
886886
GetInfoSQLWCHAR(conn, SQL_OUTER_JOINS, value);
887887

888-
std::wstring result = ConvertToWString(value, std::wcslen(const_cast<wchar_t*>(value)));
888+
std::wstring result = ConvertToWString(value);
889889
EXPECT_EQ(std::wstring(L"N"), result);
890890
}
891891

892892
TYPED_TEST(ConnectionInfoTest, TestSQLGetInfoProcedures) {
893893
SQLWCHAR value[kOdbcBufferSize] = {};
894894
GetInfoSQLWCHAR(conn, SQL_PROCEDURES, value);
895895

896-
std::wstring result = ConvertToWString(value, std::wcslen(const_cast<wchar_t*>(value)));
896+
std::wstring result = ConvertToWString(value);
897897
EXPECT_EQ(std::wstring(L"N"), result);
898898
}
899899

@@ -915,7 +915,7 @@ TYPED_TEST(ConnectionInfoTest, TestSQLGetInfoSpecialCharacters) {
915915
SQLWCHAR value[kOdbcBufferSize] = {};
916916
GetInfoSQLWCHAR(conn, SQL_SPECIAL_CHARACTERS, value);
917917

918-
std::wstring result = ConvertToWString(value, std::wcslen(const_cast<wchar_t*>(value)));
918+
std::wstring result = ConvertToWString(value);
919919
EXPECT_EQ(std::wstring(L""), result);
920920
}
921921

@@ -1039,15 +1039,15 @@ TYPED_TEST(ConnectionInfoTest, TestSQLGetInfoMaxRowSize) {
10391039
SQLWCHAR value[kOdbcBufferSize] = {};
10401040
GetInfoSQLWCHAR(conn, SQL_MAX_ROW_SIZE, value);
10411041

1042-
std::wstring result = ConvertToWString(value, std::wcslen(const_cast<wchar_t*>(value)));
1042+
std::wstring result = ConvertToWString(value);
10431043
EXPECT_EQ(std::wstring(L""), result);
10441044
}
10451045

10461046
TEST_F(ConnectionInfoMockTest, TestSQLGetInfoMaxRowSizeIncludesLong) {
10471047
SQLWCHAR value[kOdbcBufferSize] = {};
10481048
GetInfoSQLWCHAR(conn, SQL_MAX_ROW_SIZE_INCLUDES_LONG, value);
10491049

1050-
std::wstring result = ConvertToWString(value, std::wcslen(const_cast<wchar_t*>(value)));
1050+
std::wstring result = ConvertToWString(value);
10511051
EXPECT_EQ(std::wstring(L"N"), result);
10521052
}
10531053

cpp/src/arrow/flight/sql/odbc/tests/odbc_test_suite.cc

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -510,7 +510,12 @@ std::wstring GetStringColumnW(SQLHSTMT stmt, int col_id) {
510510
return std::wstring(buf, buf + char_count);
511511
}
512512

513-
std::wstring ConvertToWString(const SQLWCHAR* str_val, size_t str_len) {
513+
std::wstring ConvertToWString(const SQLWCHAR* str_val) {
514+
#ifdef __linux__
515+
size_t str_len = std::wcslen(reinterpret_cast<const wchar_t*>(str_val));
516+
#else
517+
size_t str_len = std::wcslen(str_val);
518+
#endif
514519
std::wstring attr_str;
515520
if (str_len == 0) {
516521
attr_str = L"";

0 commit comments

Comments
 (0)