strip down sequence and make the tests work

generate_api
Volker Birk 5 years ago
parent b67cd478bf
commit 2998054a52

@ -385,7 +385,7 @@ static const char *sql_sequence_value1 =
" where name = ?1), 1 ))); ";
static const char *sql_sequence_value2 =
"select value, own from sequences where name = ?1 ;";
"select value from sequences where name = ?1 ;";
// Revocation tracking
static const char *sql_set_revoked =
@ -3586,11 +3586,7 @@ static PEP_STATUS _get_sequence_value(PEP_SESSION session, const char *name,
case SQLITE_ROW: {
int32_t _value = (int32_t)
sqlite3_column_int(session->sequence_value2, 0);
int _own = (int)
sqlite3_column_int(session->sequence_value2, 1);
*value = _value;
if (_own)
status = PEP_OWN_SEQUENCE;
break;
}
case SQLITE_DONE:
@ -3624,7 +3620,7 @@ static PEP_STATUS _increment_sequence_value(PEP_SESSION session,
DYNAMIC_API PEP_STATUS sequence_value(
PEP_SESSION session,
char *name,
const char *name,
int32_t *value
)
{
@ -3640,10 +3636,10 @@ DYNAMIC_API PEP_STATUS sequence_value(
*value = 0;
sqlite3_exec(session->db, "BEGIN TRANSACTION ;", NULL, NULL, NULL);
status = _increment_sequence_value(session, name);
if (status == PEP_STATUS_OK) {
if (status == PEP_STATUS_OK)
status = _get_sequence_value(session, name, value);
}
if (status == PEP_STATUS_OK || status == PEP_OWN_SEQUENCE) {
if (status == PEP_STATUS_OK) {
result = sqlite3_exec(session->db, "COMMIT ;", NULL, NULL, NULL);
if (result == SQLITE_OK){
assert(*value < INT32_MAX);
@ -3658,6 +3654,7 @@ DYNAMIC_API PEP_STATUS sequence_value(
sqlite3_exec(session->db, "ROLLBACK ;", NULL, NULL, NULL);
return status;
}
return status;
}

@ -92,10 +92,7 @@ typedef enum {
PEP_SYNC_ILLEGAL_MESSAGE = 0x0902,
PEP_SYNC_NO_INJECT_CALLBACK = 0x0903,
PEP_SEQUENCE_VIOLATED = 0x0970,
PEP_CANNOT_INCREASE_SEQUENCE = 0x0971,
PEP_CANNOT_SET_SEQUENCE_VALUE = 0x0972,
PEP_OWN_SEQUENCE = 0x097f,
PEP_STATEMACHINE_ERROR = 0x0980,
PEP_NO_TRUST = 0x0981,
@ -1147,10 +1144,8 @@ DYNAMIC_API PEP_STATUS get_phrase(
//
// parameters:
// session (in) session handle
// name (inout) name of sequence or char[37] set to {0, }
// for new own sequence named as UUID
// value (inout) value of sequence value to test or 0 for
// getting next value
// name (in) name of sequence
// value (out) value of sequence
//
// returns:
// PEP_STATUS_OK no error, not own sequence
@ -1160,7 +1155,7 @@ DYNAMIC_API PEP_STATUS get_phrase(
DYNAMIC_API PEP_STATUS sequence_value(
PEP_SESSION session,
char *name,
const char *name,
int32_t *value
);

@ -24,42 +24,16 @@ void SequenceTests::check_sequences() {
// sequence test code
int32_t value1 = 0;
char *name1 = strdup("test");
assert(name1);
PEP_STATUS status2 = sequence_value(session, name1, &value1);
int32_t value1;
PEP_STATUS status2 = sequence_value(session, "test1", &value1);
assert(status2 == PEP_STATUS_OK);
cout << "test sequence: " << value1 << "\n";
int32_t value2 = 0;
PEP_STATUS status3 = sequence_value(session, name1, &value2);
int32_t value2;
PEP_STATUS status3 = sequence_value(session, "test1", &value2);
assert(status3 == PEP_STATUS_OK);
cout << "test sequence: " << value2 << "\n";
assert(value2 == value1 + 1);
// free(name1);
cout << "testing sequence violation\n";
int32_t value3 = value2;
PEP_STATUS status4 = sequence_value(session, name1, &value3);
assert(status4 == PEP_SEQUENCE_VIOLATED);
cout << "testing sequence non-violation\n";
int32_t value4 = value2 + 1;
PEP_STATUS status5 = sequence_value(session, name1, &value4);
assert(status5 == PEP_STATUS_OK);
cout << "testing UUID generation\n";
int32_t value5 = 0;
char name2[37] = { 0, };
PEP_STATUS status6 = sequence_value(session, name2, &value5);
assert(status6 == PEP_OWN_SEQUENCE);
cout << "UUID created: " << name2 << "\n";
cout << "set sequence value\n";
int32_t value6 = value2 + 10;
PEP_STATUS status7 = sequence_value(session, name1, &value6);
assert(status7 == PEP_STATUS_OK);
cout << "value set to " << value6 << "\n";
}

@ -178,14 +178,8 @@ const char* tl_status_string(PEP_STATUS status) {
return "PEP_SYNC_ILLEGAL_MESSAGE";
case PEP_SYNC_NO_INJECT_CALLBACK:
return "PEP_SYNC_NO_INJECT_CALLBACK";
case PEP_SEQUENCE_VIOLATED:
return "PEP_SEQUENCE_VIOLATED";
case PEP_CANNOT_INCREASE_SEQUENCE:
return "PEP_CANNOT_INCREASE_SEQUENCE";
case PEP_CANNOT_SET_SEQUENCE_VALUE:
return "PEP_CANNOT_SET_SEQUENCE_VALUE";
case PEP_OWN_SEQUENCE:
return "PEP_OWN_SEQUENCE";
case PEP_STATEMACHINE_ERROR:
return "PEP_STATEMACHINE_ERROR";
case PEP_NO_TRUST:

Loading…
Cancel
Save