SQLite Forum

Test failures in version 3.37.0 on big endian architectures
Login
Note about identification of location:

These tests are in file [test/windowC.test](https://sqlite.org/src/file?name=test/windowC.test&ci=trunk), not [test/windowB.test](https://sqlite.org/src/file?name=test/windowB.test&ci=trunk).

`test/windowC.test` was probably created by copying some parts of `test/windowB.test`, and `test/windowC.test` still contains:
```
set testprefix windowB
```

This should be changed to:
```
set testprefix windowC
```

Failing test was added in [commit 38a1326b4bd11bbe2846990d099c28520d17ab4cace1af67248c2472f89df929](https://sqlite.org/src/info/38a1326b4bd11bbe2846990d099c28520d17ab4cace1af67248c2472f89df929).

This commit introduced call to function `sqlite3_value_text()` about which documentation says:
```
** ^The sqlite3_value_text16() interface extracts a UTF-16 string
** in the native byte-order of the host machine.  ^The
** sqlite3_value_text16be() and sqlite3_value_text16le() interfaces
** extract UTF-16 strings as big-endian and little-endian respectively.
```

This commit, in newly added test, included:
```
PRAGMA encoding=UTF16;
```

Some other syntactically valid values include:
```
PRAGMA encoding=UTF16LE;
PRAGMA encoding=UTF16BE;
```

On my little-endian system I get expected result `蕕郐䔓硑ᇍ䫎` with encoding `UTF16` or `UTF16LE`, and I get result `喅킐ፅ典촑칊` with encoding `UTF16BE`.

Maybe changing this test to have `PRAGMA encoding=UTF16LE;` would be sufficient solution...