mirror of
https://github.com/sqlite/sqlite.git
synced 2025-12-07 20:22:20 +03:00
Add the SQLITE_TESTCTRL_RESULT_INTREAL test-control and use it to create
the intreal() SQL function in testfixture. Write a few simple tests to prove this all works. TH3 will hold most of the INTREAL tests, probably. FossilOrigin-Name: c9838731325e0ca73bd8784c10c74ae043fed7861e6de269fd90e29fa4a19955
This commit is contained in:
16
src/main.c
16
src/main.c
@@ -4104,6 +4104,22 @@ int sqlite3_test_control(int op, ...){
|
||||
break;
|
||||
}
|
||||
#endif /* defined(YYCOVERAGE) */
|
||||
|
||||
/* sqlite3_test_control(SQLITE_TESTCTRL_RESULT_INTREAL, sqlite3_context*);
|
||||
**
|
||||
** This test-control causes the most recent sqlite3_result_int64() value
|
||||
** to be interpreted as a MEM_IntReal instead of as an MEM_Int. Normally,
|
||||
** MEM_IntReal values only arise during an INSERT operation of integer
|
||||
** values into a REAL column, so they can be challenging to test. This
|
||||
** test-control enables us to write an intreal() SQL function that can
|
||||
** inject an intreal() value at arbitrary places in an SQL statement,
|
||||
** for testing purposes.
|
||||
*/
|
||||
case SQLITE_TESTCTRL_RESULT_INTREAL: {
|
||||
sqlite3_context *pCtx = va_arg(ap, sqlite3_context*);
|
||||
sqlite3ResultIntReal(pCtx);
|
||||
break;
|
||||
}
|
||||
}
|
||||
va_end(ap);
|
||||
#endif /* SQLITE_UNTESTABLE */
|
||||
|
||||
Reference in New Issue
Block a user