mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-12 14:37:50 +00:00
e368dc9c85
This patch was generated by a script. Here's the source of the script for future reference: function convert() { echo "Converting $1 to $2..." find . ! -wholename "*nsprpub*" \ ! -wholename "*security/nss*" \ ! -wholename "*/.hg*" \ ! -wholename "obj-ff-dbg*" \ ! -name nsXPCOMCID.h \ ! -name prtypes.h \ -type f \ \( -iname "*.cpp" \ -o -iname "*.h" \ -o -iname "*.c" \ -o -iname "*.cc" \ -o -iname "*.idl" \ -o -iname "*.ipdl" \ -o -iname "*.ipdlh" \ -o -iname "*.mm" \) | \ xargs -n 1 sed -i -e "s/\b$1\b/$2/g" } convert PRInt8 int8_t convert PRUint8 uint8_t convert PRInt16 int16_t convert PRUint16 uint16_t convert PRInt32 int32_t convert PRUint32 uint32_t convert PRInt64 int64_t convert PRUint64 uint64_t convert PRIntn int convert PRUintn unsigned convert PRSize size_t convert PROffset32 int32_t convert PROffset64 int64_t convert PRPtrdiff ptrdiff_t convert PRFloat64 double
126 lines
3.2 KiB
C++
126 lines
3.2 KiB
C++
/*
|
|
*Any copyright is dedicated to the Public Domain.
|
|
* http://creativecommons.org/publicdomain/zero/1.0/
|
|
*/
|
|
|
|
#include "storage_test_harness.h"
|
|
#include "mozIStorageRow.h"
|
|
#include "mozIStorageResultSet.h"
|
|
|
|
/**
|
|
* This file tests AsXXX (AsInt32, AsInt64, ...) helpers.
|
|
*/
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
//// Event Loop Spinning
|
|
|
|
class Spinner : public AsyncStatementSpinner
|
|
{
|
|
public:
|
|
NS_DECL_ISUPPORTS
|
|
NS_DECL_ASYNCSTATEMENTSPINNER
|
|
Spinner() {}
|
|
};
|
|
|
|
NS_IMPL_ISUPPORTS_INHERITED0(Spinner,
|
|
AsyncStatementSpinner)
|
|
|
|
NS_IMETHODIMP
|
|
Spinner::HandleResult(mozIStorageResultSet *aResultSet)
|
|
{
|
|
nsCOMPtr<mozIStorageRow> row;
|
|
do_check_true(NS_SUCCEEDED(aResultSet->GetNextRow(getter_AddRefs(row))) && row);
|
|
|
|
do_check_eq(row->AsInt32(0), 0);
|
|
do_check_eq(row->AsInt64(0), 0);
|
|
do_check_eq(row->AsDouble(0), 0.0);
|
|
|
|
uint32_t len = 100;
|
|
do_check_eq(row->AsSharedUTF8String(0, &len), NULL);
|
|
do_check_eq(len, 0);
|
|
len = 100;
|
|
do_check_eq(row->AsSharedWString(0, &len), NULL);
|
|
do_check_eq(len, 0);
|
|
len = 100;
|
|
do_check_eq(row->AsSharedBlob(0, &len), NULL);
|
|
do_check_eq(len, 0);
|
|
|
|
do_check_eq(row->IsNull(0), true);
|
|
return NS_OK;
|
|
}
|
|
|
|
void
|
|
test_NULLFallback()
|
|
{
|
|
nsCOMPtr<mozIStorageConnection> db(getMemoryDatabase());
|
|
|
|
nsCOMPtr<mozIStorageStatement> stmt;
|
|
(void)db->CreateStatement(NS_LITERAL_CSTRING(
|
|
"SELECT NULL"
|
|
), getter_AddRefs(stmt));
|
|
|
|
nsCOMPtr<mozIStorageValueArray> valueArray = do_QueryInterface(stmt);
|
|
do_check_true(valueArray);
|
|
|
|
bool hasMore;
|
|
do_check_true(NS_SUCCEEDED(stmt->ExecuteStep(&hasMore)) && hasMore);
|
|
|
|
do_check_eq(stmt->AsInt32(0), 0);
|
|
do_check_eq(stmt->AsInt64(0), 0);
|
|
do_check_eq(stmt->AsDouble(0), 0.0);
|
|
uint32_t len = 100;
|
|
do_check_eq(stmt->AsSharedUTF8String(0, &len), NULL);
|
|
do_check_eq(len, 0);
|
|
len = 100;
|
|
do_check_eq(stmt->AsSharedWString(0, &len), NULL);
|
|
do_check_eq(len, 0);
|
|
len = 100;
|
|
do_check_eq(stmt->AsSharedBlob(0, &len), NULL);
|
|
do_check_eq(len, 0);
|
|
do_check_eq(stmt->IsNull(0), true);
|
|
|
|
do_check_eq(valueArray->AsInt32(0), 0);
|
|
do_check_eq(valueArray->AsInt64(0), 0);
|
|
do_check_eq(valueArray->AsDouble(0), 0.0);
|
|
len = 100;
|
|
do_check_eq(valueArray->AsSharedUTF8String(0, &len), NULL);
|
|
do_check_eq(len, 0);
|
|
len = 100;
|
|
do_check_eq(valueArray->AsSharedWString(0, &len), NULL);
|
|
do_check_eq(len, 0);
|
|
len = 100;
|
|
do_check_eq(valueArray->AsSharedBlob(0, &len), NULL);
|
|
do_check_eq(len, 0);
|
|
do_check_eq(valueArray->IsNull(0), true);
|
|
}
|
|
|
|
void
|
|
test_asyncNULLFallback()
|
|
{
|
|
nsCOMPtr<mozIStorageConnection> db(getMemoryDatabase());
|
|
|
|
nsCOMPtr<mozIStorageAsyncStatement> stmt;
|
|
(void)db->CreateAsyncStatement(NS_LITERAL_CSTRING(
|
|
"SELECT NULL"
|
|
), getter_AddRefs(stmt));
|
|
|
|
nsCOMPtr<mozIStoragePendingStatement> pendingStmt;
|
|
do_check_true(NS_SUCCEEDED(stmt->ExecuteAsync(nullptr, getter_AddRefs(pendingStmt))));
|
|
do_check_true(pendingStmt);
|
|
stmt->Finalize();
|
|
nsRefPtr<Spinner> asyncSpin(new Spinner());
|
|
db->AsyncClose(asyncSpin);
|
|
asyncSpin->SpinUntilCompleted();
|
|
|
|
}
|
|
|
|
void (*gTests[])(void) = {
|
|
test_NULLFallback
|
|
, test_asyncNULLFallback
|
|
};
|
|
|
|
const char *file = __FILE__;
|
|
#define TEST_NAME "AsXXX helpers"
|
|
#define TEST_FILE file
|
|
#include "storage_test_harness_tail.h"
|