Blob Blame History Raw
diff -up psqlodbc-16.00.0000/test/src/wchar-char-test.c.be psqlodbc-16.00.0000/test/src/wchar-char-test.c
--- psqlodbc-16.00.0000/test/src/wchar-char-test.c.be	2024-01-23 09:26:32.612651697 +0100
+++ psqlodbc-16.00.0000/test/src/wchar-char-test.c	2024-01-23 09:24:47.899833014 +0100
@@ -21,7 +21,7 @@
 #endif
 
 static void
-print_utf16_le(const SQLWCHAR *wdt)
+print_utf16_native(const SQLWCHAR *wdt)
 {
 	int	i;
 	unsigned char *ucdt;
@@ -29,7 +29,11 @@ print_utf16_le(const SQLWCHAR *wdt)
 	for (i = 0; wdt[i]; i++)
 	{
 		ucdt = (unsigned char *) &wdt[i];
+        #if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
 		printf("U+%02X%02X", ucdt[1], ucdt[0]);
+        #elif __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
+        printf("U+%02X%02X", ucdt[0], ucdt[1]);
+        #endif
 	}
 	printf("\n");
 	fflush(stdout);
diff -up psqlodbc-16.00.0000/test/src/wchar-char-test-eucjp.c.be psqlodbc-16.00.0000/test/src/wchar-char-test-eucjp.c
--- psqlodbc-16.00.0000/test/src/wchar-char-test-eucjp.c.be	2024-01-23 09:25:40.050239174 +0100
+++ psqlodbc-16.00.0000/test/src/wchar-char-test-eucjp.c	2024-01-23 09:27:35.705172406 +0100
@@ -50,7 +50,7 @@ static int eucjp_test(HSTMT hstmt)
 	CHECK_STMT_RESULT(rc, "SQLExecDirect failed to return SQL_C_WCHAR", hstmt);
 	while (SQL_SUCCEEDED(rc = SQLFetch(hstmt)))
 	{
-		print_utf16_le(wchar);
+		print_utf16_native(wchar);
 	}
 
 	return rc;
diff -up psqlodbc-16.00.0000/test/src/wchar-char-test-sjis.c.be psqlodbc-16.00.0000/test/src/wchar-char-test-sjis.c
--- psqlodbc-16.00.0000/test/src/wchar-char-test-sjis.c.be	2024-01-23 09:25:51.985332122 +0100
+++ psqlodbc-16.00.0000/test/src/wchar-char-test-sjis.c	2024-01-23 09:27:54.498327508 +0100
@@ -50,7 +50,7 @@ static int sjis_test(HSTMT hstmt)
 	CHECK_STMT_RESULT(rc, "SQLExecDirect failed to return SQL_C_WCHAR", hstmt);
 	while (SQL_SUCCEEDED(rc = SQLFetch(hstmt)))
 	{
-		print_utf16_le(wchar);
+		print_utf16_native(wchar);
 	}
 
 	return rc;
diff -up psqlodbc-16.00.0000/test/src/wchar-char-test-utf8.c.be psqlodbc-16.00.0000/test/src/wchar-char-test-utf8.c
--- psqlodbc-16.00.0000/test/src/wchar-char-test-utf8.c.be	2024-01-23 09:26:03.492421736 +0100
+++ psqlodbc-16.00.0000/test/src/wchar-char-test-utf8.c	2024-01-23 09:33:05.932011563 +0100
@@ -5,8 +5,15 @@ static int utf8_test_one(HSTMT hstmt)
 
 	SQLLEN		ind, cbParam, cbParam2;
 	SQLINTEGER	cbQueryLen;
+    // There doesn't seems to be a simple way to specify utf16 literal in the native endianity, this seems to be a best option.
+    // I expect the other encoding tests would need simillar treatment of the inline data.
+    #if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
 	unsigned char   lovedt[100] = {0x95, 0x4e, 0x0a, 0x4e, 0x5a, 0x53, 0xf2, 0x53, 0x0, 0x0};
 	unsigned char	lovedt2[100] = {0xf2, 0x53, 0x5a, 0x53, 0x0a, 0x4e, 0x95, 0x4e, 0x0, 0x0};
+    #elif __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
+    unsigned char   lovedt[100] = {0x4e, 0x95, 0x4e, 0x0a, 0x53, 0x5a, 0x53, 0xf2, 0x0, 0x0};
+    unsigned char   lovedt2[100] = {0x53, 0xf2, 0x53, 0x5a, 0x4e, 0x0a, 0x4e, 0x95, 0x0, 0x0};
+    #endif
 	SQLWCHAR	wchar[100];
 	SQLCHAR		str[100];
 	SQLCHAR		chardt[100];
@@ -51,7 +58,7 @@ static int utf8_test_one(HSTMT hstmt)
 	CHECK_STMT_RESULT(rc, "SQLExecDirect failed to return SQL_C_WCHAR", hstmt);
 	while (SQL_SUCCEEDED(rc = SQLFetch(hstmt)))
 	{
-		print_utf16_le(wchar);
+		print_utf16_native(wchar);
 	}
 	SQLFreeStmt(hstmt, SQL_CLOSE);